
    J/PhY                     &   d dl Zd dlZd dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZmZ d dl
mZ d dl
mZ dd	iZd
d	iZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z  G d dee          Z!e"dk    r ej#                     dS dS )    N)jitnjit)errorstypes)typeof)TestCaseMemoryLeakMixin)no_pyobj_flags)force_pyobj_flagsforceobjTnopythonc                     | \  }}}|||fS N )labcs       `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_unpack_sequence.pyunpack_listr      s    GAq!q!9    c                 (    | j         \  }}}||z   |z   S r   shape)r   xyzs       r   unpack_shaper      s    gGAq!q519r   c                  8    t          d          \  } }}| |z   |z   S )N   ranger   r   r   s      r   unpack_ranger$      !    AhhGAq!q519r   c                  8    t          d          \  } }}| |z   |z   S )N   r!   r#   s      r   unpack_range_too_smallr(      r%   r   c                  8    t          d          \  } }}| |z   |z   S )N   r!   r#   s      r   unpack_range_too_larger+   #   r%   r   c                      d\  } }}| |z   |z   S )N   r'   r    r   r#   s      r   unpack_tupler/   (       GAq!q519r   c                      d\  } }}| |z   |z   S )N)r.   r'   r   r#   s      r   unpack_tuple_too_smallr2   -   s    GAq!q519r   c                      d\  } }}| |z   |z   S )N)r.   r'   r    r*   r   r#   s      r   unpack_tuple_too_larger4   2       GAq!q519r   c                      d\  } }}| |z   |z   S )N)r.   y              @r   r#   s      r   $unpack_heterogeneous_tuple_too_smallr7   7   r0   r   c                      d\  } }}| |z   |z   S )N)r.         @              @r*   r   r#   s      r   $unpack_heterogeneous_tuple_too_larger;   <   s    GAq!q519r   c                      d\  } }}| |z   |z   S )N)r.   r9   r:   r   r#   s      r   unpack_heterogeneous_tupler=   A   r5   r   c                  "    d\  } \  }}| |z   |z   S )N)r.   )r9   r:   r   r#   s      r   !unpack_nested_heterogeneous_tupler?   F   s    IAv1q519r   c                     | \  }}||fS r   r   )seqr   r   s      r   unpack_arbitraryrB   K   s    DAqa4Kr   c                  l    t          j        d          } t          j        d          }|| f}|\  }}||fS )Nr.   r'   npzeros)r   r   tupalphabetas        r   
unpack_nrtrJ   P   s8    
A
A
Q$CKE4$;r   c                 4    | |fx}\  }}|\  }}||z   |z   |z   S r   r   )r   r   r   r   r   des          r   chained_unpack_assign1rN   X   s/    QAAFQq519q=r   c                     | dk    r|| }} | |fS )Nr   r   )r   r   s     r   conditional_swaprP   _   s    1uu!1a4Kr   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZefdZd ZeefdZd Zd Zd Zd Zd Zd Zd Zd ZefdZd Zd Zd Z d Z!d Z"dS ) 
TestUnpackc                 p    t          |          }|                      |             |                       d S r   )r   assertPreciseEqualselfpyfunccfuncs      r   check_nullary_npmzTestUnpack.check_nullary_npmh   s5    V22222r   c                      t          d          |          }|                      |             |                       d S )NTr   )r   rT   rU   s      r   check_nullary_objmodez TestUnpack.check_nullary_objmodel   sD    "T"""6**22222r   c                     t           } t          d          |          }g d}|                      ||           ||                     d S )NTr[   r-   )r   r   assertEqual)rV   rW   rX   r   s       r   test_unpack_listzTestUnpack.test_unpack_listp   sV    "T"""6**IIq66!99-----r   c                 <   t           } t          t          j        t          j        dd          fd          |          }t          j        d                              t
          j                  }|                      ||           ||                     d S )Nr    CdtypendimlayoutTr[   r-   r   )	r   r   r   Arrayint32rE   rF   astyperT   rV   rW   rX   r   s       r   test_unpack_shapezTestUnpack.test_unpack_shapev   s    #U[u{3GGGI!# # ##)+ +H9%%%,,RX66a&&))44444r   c                 8   t           } t          t          j        t          j        dd          f          |          }t          j        d                              t
          j                  }|                      ||           ||                     d S )Nr    ra   rb   r-   r   )	r   r   r   rf   rg   rE   rF   rh   rT   ri   s       r   test_unpack_shape_npmz TestUnpack.test_unpack_shape_npm}   s    ek!CHHHJ   H9%%%,,RX66a&&))44444r   c                 :    |                      t                     d S r   )r\   r$   rV   s    r   test_unpack_rangezTestUnpack.test_unpack_range       ""<00000r   c                 :    |                      t                     d S r   )rY   r$   rn   s    r   test_unpack_range_npmz TestUnpack.test_unpack_range_npm       |,,,,,r   c                 :    |                      t                     d S r   )r\   r/   rn   s    r   test_unpack_tuplezTestUnpack.test_unpack_tuple   rp   r   c                 :    |                      t                     d S r   )rY   r/   rn   s    r   test_unpack_tuple_npmz TestUnpack.test_unpack_tuple_npm   rs   r   c                 :    |                      t                     d S r   )r\   r=   rn   s    r   test_unpack_heterogeneous_tuplez*TestUnpack.test_unpack_heterogeneous_tuple   s    ""#=>>>>>r   c                 :    |                      t                     d S r   )rY   r=   rn   s    r   #test_unpack_heterogeneous_tuple_npmz.TestUnpack.test_unpack_heterogeneous_tuple_npm   s    9:::::r   c                 :    |                      t                     d S r   )r\   r?   rn   s    r   &test_unpack_nested_heterogeneous_tuplez1TestUnpack.test_unpack_nested_heterogeneous_tuple   s    ""#DEEEEEr   c                 :    |                      t                     d S r   )rY   r?   rn   s    r   *test_unpack_nested_heterogeneous_tuple_npmz5TestUnpack.test_unpack_nested_heterogeneous_tuple_npm   s    @AAAAAr   c                     t           } t          t          j        t          j        ffi ||          }d}|                      ||  ||            d S )N)r*      )rN   r   r   rg   rT   )rV   flagsrW   rX   argss        r   test_chained_unpack_assignz%TestUnpack.test_chained_unpack_assign   s\    '8U[%+.88%88@@tffdm<<<<<r   c                 <    |                      t                     d S )N)r   )r   r
   rn   s    r   test_chained_unpack_assign_npmz)TestUnpack.test_chained_unpack_assign_npm   s    ''n'=====r   c                     |                      |          5   t          di ||          } |             d d d            d S # 1 swxY w Y   d S )Nr   )r   )assertRaisesr   )rV   rW   r   excrX   s        r   check_unpack_errorzTestUnpack.check_unpack_error   s    s## 	 	$C$$e$$V,,EEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s    AA
Ac                 n    |                      t                     |                      t                     d S r   )r   r2   r7   rn   s    r   test_unpack_tuple_too_smallz&TestUnpack.test_unpack_tuple_too_small   2     6777 DEEEEEr   c                     |                      t          t          t          j                   |                      t
          t          t          j                   d S r   )r   r2   r
   r   TypingErrorr7   rn   s    r   test_unpack_tuple_too_small_npmz*TestUnpack.test_unpack_tuple_too_small_npm   W     6 & 2	4 	4 	4 D .0B	D 	D 	D 	D 	Dr   c                 n    |                      t                     |                      t                     d S r   )r   r4   r;   rn   s    r   test_unpack_tuple_too_largez&TestUnpack.test_unpack_tuple_too_large   r   r   c                     |                      t          t          t          j                   |                      t
          t          t          j                   d S r   )r   r4   r
   r   r   r;   rn   s    r   test_unpack_tuple_too_large_npmz*TestUnpack.test_unpack_tuple_too_large_npm   r   r   c                 :    |                      t                     d S r   )r   r(   rn   s    r   test_unpack_range_too_smallz&TestUnpack.test_unpack_range_too_small        677777r   c                 F    |                      t          t                     d S r   )r   r(   r
   rn   s    r   test_unpack_range_too_small_npmz*TestUnpack.test_unpack_range_too_small_npm        6GGGGGr   c                 :    |                      t                     d S r   )r   r+   rn   s    r   test_unpack_range_too_largez&TestUnpack.test_unpack_range_too_large   r   r   c                 F    |                      t          t                     d S r   )r   r+   r
   rn   s    r   test_unpack_range_too_large_npmz*TestUnpack.test_unpack_range_too_large_npm   r   r   c                      t          t          j        t          j        ffi |t                    }|                      |dd          d           |                      |dd          d           d S )Nr*   r   )r   r*   r   )r   r   )r   r   rg   rP   rT   )rV   r   rX   s      r   check_conditional_swapz!TestUnpack.check_conditional_swap   sq    8U[%+.88%889IJJaV444aV44444r   c                 .    |                                   d S r   )r   rn   s    r   test_conditional_swapz TestUnpack.test_conditional_swap   s    ##%%%%%r   c                 :    |                      t                     d S r   )r   r
   rn   s    r   test_conditional_swap_npmz$TestUnpack.test_conditional_swap_npm   s    ##N33333r   c                     t          d t          d          D                       }t          |          }t          } t	          |f          |          }|                      ||           ||                     d S )Nc              3   D   K   | ]}t          j        |d z             V  dS )r.   NrD   ).0is     r   	<genexpr>z9TestUnpack.test_unpack_tuple_of_arrays.<locals>.<genexpr>   s.      66BHQUOO666666r   r'   )tupler"   r   rB   r   rT   )rV   rG   tuptyrW   rX   s        r   test_unpack_tuple_of_arraysz&TestUnpack.test_unpack_tuple_of_arrays   sw    66U1XX66666s!eXv&&c

FF3KK88888r   c                     t           } t          d          |          }|                      |             |                       d S )Nr   )rJ   r   rT   rU   s      r   test_unpack_nrtzTestUnpack.test_unpack_nrt   sD    R		&!!22222r   c                    t           }|                     t          j                  5 } t	          t
          j        f          |           d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )Nzfailed to unpack int32)
rB   r   r   r   r   r   rg   assertInstr	exception)rV   rW   raisess      r   test_invalid_unpackzTestUnpack.test_invalid_unpack   s    !v122 	)f D%+  (((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	).F4D0E0EFFFFFs   $AAAN)#__name__
__module____qualname__rY   r\   r_   rj   rl   ro   rr   ru   rw   ry   r{   r}   r   r   r   r   
ValueErrorr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rR   rR   f   s       3 3 33 3 3. . .5 5 55 5 51 1 1- - -1 1 1- - -? ? ?; ; ;F F FB B B 0A = = = => > > 0A)   F F FD D DF F FD D D8 8 8H H H8 8 8H H H ,= 5 5 5 5
& & &4 4 49 9 93 3 3
G G G G Gr   rR   __main__)$numpyrE   unittestnumbar   r   
numba.corer   r   r   numba.tests.supportr   r	   r
   nullary_no_pyobj_flagsr   nullary_force_pyobj_flagsr   r   r$   r(   r+   r/   r2   r4   r7   r;   r=   r?   rB   rJ   rN   rP   rR   r   mainr   r   r   <module>r      s                 $ $ $ $ $ $ $ $       9 9 9 9 9 9 9 9 H H H H H H N N N N N N& d#  
  
  
  
  
  
  
  
  
  
  
  
  
      @G @G @G @G @G( @G @G @GF zHMOOOOO r   