
    shh]                        S SK r S SKrS SKrS SKJrJrJrJr  S SK	J
r
JrJr  S SKJrJrJr  S SKr\ R$                  " SS5      r\ R$                  " SS5      r\ R$                  " S	S5      r\ R$                  " S
S5      rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S r)S r*S  r+S! r,S" r-S# r.S$ r/ " S% S&\R                  5      r0 " S' S(\R                  5      r1 " S) S*\5      r2 " S+ S,\5      r3 " S- S.\5      r4 " S/ S0\\5      r5 " S1 S2\\5      r6 " S3 S4\\5      r7 " S5 S6\5      r8 " S7 S8\5      r9 " S9 S:\5      r:\;S;:X  a  \Rx                  " 5         gg)<    N)njitjittypeof	literally)typeserrorsutils)TestCaseMemoryLeakMixintagRectwidthheightPoint)xyzPoint2Empty c                     X4$ Nr   abs     k/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_tuples.pytuple_return_usecaser      s	    4K    c                     U u  pU$ r   r   tupr   r   s      r   tuple_firstr#          DAHr   c                     U u  pU$ r   r   r!   s      r   tuple_secondr&      r$   r   c                 
    X   $ r   r   r"   idxs     r   tuple_indexr*      s	    8Or   c                     U S   $ )Nr   r"   s    r   tuple_index_staticr.   "   s    r7Nr   c                     U SS $ )N   r   r-   s    r   tuple_slice2r2   &   s    q9r   c                     U SS S2   $ )Nr0      r   r-   s    r   tuple_slice3r5   )   s    qt!t9r   c                     [        U 5      $ r   lenr-   s    r   len_usecaser9   ,   s    s8Or   c                 
    X-   $ r   r   r   s     r   add_usecaser;   /   	    5Lr   c                 
    X:H  $ r   r   r   s     r   
eq_usecaser>   2   	    6Mr   c                 
    X:g  $ r   r   r   s     r   
ne_usecaserA   5   r?   r   c                 
    X:  $ r   r   r   s     r   
gt_usecaserC   8   r<   r   c                 
    X:  $ r   r   r   s     r   
ge_usecaserE   ;   r?   r   c                 
    X:  $ r   r   r   s     r   
lt_usecaserG   >   r<   r   c                 
    X:*  $ r   r   r   s     r   
le_usecaserI   A   r?   r   c                 
    X;   $ r   r   r   s     r   
in_usecaserK   D   r?   r   c                 0    [        U 5      U (       a  S4$ S4$ )N   r4   )boolr-   s    r   bool_usecaserO   G   s    9Cq''Q''r   c                 H    U R                   U R                  U R                  4$ r   r   r   r   r-   s    r   getattr_usecaserR   J   s    55#%%r   c                     [        XU5      $ r   r   r   r   cs      r   
make_pointrW   M   s    q>r   c                     [        X!U S9$ )NrQ   rT   rU   s      r   make_point_kwsrY   P   s    1Qr   c                     [        [        [        U 5      5      [        R                  " U S-   5      5      n[        U[        UR                  5      [        UR                  5      5      nU$ Nr0   )	r   listrangenpzerosr   r8   r   r   )nrps      r   make_point_nrtrc   S   sE    T%(^RXXa!e_-AaQWWs188}-AHr   c                     [        U 5      " U6 $ r   )type)r"   argss     r   type_usecaserg   Y   s    9dr   c                     U $ r   r   r-   s    r   identityri   \   s    Jr   c                 $    U R                  U5      $ r   )index)r"   values     r   index_method_usecaserm   _   s    99Ur   c                  Z    / / / S4u  pp#U R                  S5        UR                  S5        g )Ng        r0   )append)r   r   rV   ds       r   tuple_unpack_static_getitem_errrq   b   s,    RSJA!HHQKHHQK
r   c                       \ rS rSrS rSrg)TestTupleLengthErrorj   c                    [         S 5       nU R                  [        R                  5       n[	        [        S5      5      nU" U5        S S S 5        SnU R                  U[        WR                  5      5        g ! , (       d  f       N6= f)Nc                     [        U 5      $ r   r7   r-   s    r   eattuple>TestTupleLengthError.test_tuple_length_error.<locals>.eattupleo   s    s8Or   i  z,Tuple 'tup' length must be smaller than 1000)	r   assertRaisesr   UnsupportedErrortupler]   assertInstr	exception)selfrw   raisesr"   expecteds        r   test_tuple_length_error,TestTupleLengthError.test_tuple_length_errorl   sr     
	 
	 v6676d$CSM 8 BhF$4$4 56 87s   A99
Br   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   rs   rs   j   s    7r   rs   c                   $    \ rS rSrSrS rS rSrg)TestTupleTypeNotIterablez   z5
issue 4369
raise an error if 'type' is not iterable
c                 
   U R                  [        R                  5       n[        R                  " [        R
                  S5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nrb    Argument 'types' is not iterable)	ry   r   TypingErrorr   
NamedTupleuint32r|   r}   r~   r   r   s     r   test_namedtuple_types_exception8TestTupleTypeNotIterable.test_namedtuple_types_exception   sW    v112fU\\3/ 3.  !	
 32s   &A44
Bc                    U R                  [        R                  5       n[        R                  " [        R
                  5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   )	ry   r   r   r   Tupler   r|   r}   r~   r   s     r   test_tuple_types_exception3TestTupleTypeNotIterable.test_tuple_types_exception   sS    v112fKK' 3.  !	
 32s   %A33
Br   N)r   r   r   r   __doc__r   r   r   r   r   r   r   r   z   s    

r   r   c                   &    \ rS rSrS rS rS rSrg)TestTupleReturn   c                 &   [         R                  " [         R                  SS5      n[        X45      " [        5      n[
        R                  " SSS9=p4U" X45      u  pVU R                  XS5        U R                  Xd5        AAU R                  XV5        g )Nr0   C   float64)dtype)r   Arrayr   r   r   r^   arangeassertPreciseEqual)r   arytycfuncr   r   rarbs          r   test_array_tuple TestTupleReturn.test_array_tuple   sw    EMM1c2e^$%9:		!9--q&&q'r   c                     [         R                  n[        X45      " [        5      nS=p4U" X45      u  pVU R	                  XS5        U R	                  Xd5        g r[   )r   float32r   r   assertEqual)r   scalartyr   r   r   r   r   s          r   test_scalar_tuple!TestTupleReturn.test_scalar_tuple   sL    ==h)*+?@	qr   c                 &   / n/ nUR                  [        R                  [        R                  45        UR                  S5        UR                  [        R                  [        R
                  45        UR                  S5        UR                  [        R                  [        R
                  45        UR                  S5        [        X5       H>  u  u  p4u  pV[        X445      " [        5      nU" XV5      u  pU R                  X4XV45        M@     g )Nr0   r4   )g      ?g      ?)i  g      ?)
ro   r   int32int64r   r   zipr   r   r   )
r   alltypes	allvaluestatbr   r   r   r   r   s
             r   test_hetero_tuple!TestTupleReturn.test_hetero_tuple   s    	ekk23 67&emm45$ #H 8HRfq"N#78E1[FB##RHqf5 !9r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r      s    ( 6r   r   c                   &    \ rS rSrS rS rS rSrg)TestTuplePassing   c                    [         R                  " [         R                  S5      n[        U45      " [        5      n[        U45      " [
        5      nU R                  U" S5      S5        U R                  U" S5      S5        g )Nr4      r   r   r   )r   UniTupler   r   r#   r&   r   r   
tuple_typecf_first	cf_seconds       r   test_unitupleTestTuplePassing.test_unituple   sb    ^^EKK3
&{3*'5	 0!4	& 115r   c                 $   [         R                  " [         R                  [         R                  45      n[	        U45      " [
        5      n[	        U45      " [        5      nU R                  U" S5      S5        U R                  U" S5      S5        g )N)                  ?r   r   )r   r   r   r   r   r#   r&   r   r   s       r   r   "TestTuplePassing.test_hetero_tuple   si    [[%++u}}!=>
&{3*'5	 6>	, 7=r   c                 ~   [         R                  " [         R                  S5      n[        U45      " [        5      nUR
                  UR                  S      R                  nU R                  [        5       nU" S5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nr4   r   r   r      z8size mismatch for tuple, expected 2 element(s) but got 3)r   r   r   r   r#   	overloads
signaturesentry_pointry   
ValueErrorr   r}   r~   )r   r   r   r   r   s        r   test_size_mismatch#TestTuplePassing.test_size_mismatch   s    ^^EKK3
j]#K0ooe&6&6q&9:FFz*f	" +V--.<	> +*s   7	B..
B<r   N)r   r   r   r   r   r   r   r   r   r   r   r   r      s    6>	>r   r   c                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)TestOperations   c                 b   [         n[        [        R                  " [        R                  [        R
                  45      45      " U5      nU R                  U" S5      S5        [        [        R                  " [        R                  S5      45      " U5      nU R                  U" S5      S5        g )Nr   r4   rM   r   )r9   r   r   r   r   r   r   r   )r   pyfuncr   s      r   test_lenTestOperations.test_len   sy    ekk5;;">?AB6Jfq1ennU[[!467?i 0!4r   c                     S n[        U5      nSn[        [        U5      5       H  nU R                  U" X45      X4   5        M     g )Nc                      [        U5      nX   $ r   )r   r(   s     r   r   1TestOperations.test_index_literal.<locals>.pyfunc   s    C.C8Or   )r   g@sss)r   r]   r8   r   r   r   r   r"   is        r   test_index_literal!TestOperations.test_index_literal   s?    	 Vs3xA##E#M36: !r   c           	         [         n[        [        R                  " [        R                  S5      [        R                  45      " U5      nSn[        [        U5      5       H  nU R                  U" X45      X4   5        M     [        [        U5      S-   5       H  nU R                  U" X4* 5      X4*    5        M!     U R                  [        5       nU" U[        U5      5        S S S 5        U R                  S[        WR                  5      5        U R                  [        5       nU" U[        U5      S-   * 5        S S S 5        U R                  S[        UR                  5      5        [        R                  " [        R                  S5      [        R                  4n[        U5      " U5      R                  U   nU R                  [        5       nUR                  SS5        S S S 5        U R                  S[        UR                  5      5        [        [        R                  " [        R                  S5      [        R                  45      " U5      n[        [        U5      5       H2  nU R                  U" U[        R                  " U5      5      X4   5        M4     [         n[        R                  " [        R                  S5      [        R"                  " [        R                  [        R$                  [        R                  [        R$                  45      4 H5  n[        U45      " U5      nSnU R                  U" U5      U" U5      5        M7     [        R                  " [        R                  S5      nU R'                  5          [        U45      " U5        S S S 5        [(        nU R'                  5        n[        S5      " U5        S S S 5        S	n	U R+                  U	[        UR                  5      5        g ! , (       d  f       GN!= f! , (       d  f       GN= f! , (       d  f       GND= f! , (       d  f       N= f! , (       d  f       N}= f)
NrM   )r   rM   r   r0   ztuple index out of ranger   r   r   )r   rM   *   r   zUCannot infer the type of variable 'c', have imprecise type: list(undefined)<iv=None>.)r*   r   r   r   r   r]   r8   r   ry   
IndexErrorr   r}   r~   r   r   uintpr.   r   r   assertTypingErrorrq   r|   )
r   r   r   r"   r   r   rf   crtypmsgs
             r   
test_indexTestOperations.test_index   s	   ennU[[!4ekkBDVLs3xA##E#M36: ! s3x!|$A##E#rNCG< % z*f#s3x  +3S9I9I5JKz*f#SA' +3S9I9I5JK u{{A.=$Z))$/z*fNN2q! +3S9I9I5JK ennU[[!4ekkCEfMs3xA##E#u{{1~$>G !
 $NN5;;2KKekk5;; TUWC#L(EC##E#Js<	W nnU[[!,##%#L  & 1##%If &+c3v//01S +* +* +*& &%
 &%s<   O>&PP"P4<Q>
P
P"
P14
Q
Qc                    [         n[        [        R                  [        R                  " [        R                  S5      45      " U5      nSn[        S5       H!  nU R                  U" XC5      U" XC5      5        M#     [        [        R                  [        R                  " / 5      45      " U5      nU R                  U" SS5      U" SS5      5        g )NrM   )r   r0   r   r   r0   r   )rK   r   r   r   r   r]   r   r   r   s        r   test_inTestOperations.test_in  s    ekk5>>%++q#ACEfMqA##E!M6!>B  ekk5;;r?46v>afQm<r   c                    Sn[        [        R                  " [        R                  S5      45      " U5      nU R	                  U" U5      U" U5      5        [        R
                  " [        R                  [        R                  [        R                  [        R                  45      n[        U45      " U5      nU R	                  U" U5      U" U5      5        g )N)r   r   r      r   )r   r   r   r   r   r   r   )r   r   r"   r   rf   s        r   check_sliceTestOperations.check_slice)  s    ennU[[!468@c
F3K8{{EKKekk5;;OPdWf%c
F3K8r   c                 .    U R                  [        5        g r   )r   r2   r   s    r   test_slice2TestOperations.test_slice21      &r   c                 .    U R                  [        5        g r   )r   r5   r   s    r   test_slice3TestOperations.test_slice34  r   r   c                    [         n[        [        R                  " [        R                  [        R
                  45      45      " U5      nSnU R                  U" U6 U" U6 5        [        [        R                  " [        R                  S5      45      " U5      nSnU R                  U" U6 U" U6 5        [        [        R                  " S5      45      " U5      nU R                  U" S5      U" S5      5        g )N)r   rM   )r   r   )rO   r   r   r   r   r   r   r   )r   r   r   rf   s       r   	test_boolTestOperations.test_bool7  s    ekk5;;"<=?A&Itfdm<ennU[[!468@tfdm<ekk"o')&1b	6":6r   c                    [         n[        R                  " S5      S4[        R                  " [        R                  S5      S4[        R                  " [        R                  S5      S4[        R                  " [        R
                  [        R                  45      S4/n[        R                  " X"5       H=  u  u  p4u  pV[        X545      " U5      nU" XF5      nU" XF5      n	U R                  XX54S9  M?     g )Nr   r   r0   )r   )rM   g      @)r   )r;   r   r   r   r   r   r   	itertoolsproductr   r   )
r   r   samplesr   r   r   r   r   r   gots
             r   test_addTestOperations.test_addB  s    KKOR(NN5;;2B7NN5;;2E:KKemm <=xH
 !* 1 1' CGRWb"OF+Ea|H+C##Cx#@	 !Dr   c                 T  ^  U 4S jn[         R                  " [         R                  [         R                  45      [         R                  " [         R
                  S5      /n[        R                  " X35       H)  u  pE[        XE45      " U5      nS H  nU" XU5        M     M+     [         R                  " [         R                  [         R                  45      [         R                  " [         R
                  S5      /n[        [        U5      5      " U5      nS H  nU" XU5        M     g )Nc                 @   > TR                  U" U6 U " U6 SU< 35        g Nzmismatch for arguments assertIsr   r   rf   r   s      r   eq(TestOperations._test_compare.<locals>.eqP  "    MM%,9=?Ar   r4   )r   r   )r   r   r   )r  r   )r   )r   r   rM   )r   r   )r   )r   r   r   )r   )r   r   r   )
r   r   r   r   r   r   r  r  r   r{   )r   r   r  argtypesr   r   r   rf   s   `       r   _test_compareTestOperations._test_compareO  s    	A
 KKemm <=NN5;;24'';FB"OF+E+ 6$'	+ < KKemm <=NN5;;24U8_&v.*D vd#*r   c                 .    U R                  [        5        g r   r  r>   r   s    r   test_eqTestOperations.test_eqg      :&r   c                 .    U R                  [        5        g r   r  rA   r   s    r   test_neTestOperations.test_nej  r  r   c                 .    U R                  [        5        g r   r  rC   r   s    r   test_gtTestOperations.test_gtm  r  r   c                 .    U R                  [        5        g r   r  rE   r   s    r   test_geTestOperations.test_gep  r  r   c                 .    U R                  [        5        g r   r  rG   r   s    r   test_ltTestOperations.test_lts  r  r   c                 .    U R                  [        5        g r   r  rI   r   s    r   test_leTestOperations.test_lev  r  r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r!  r%  r)  r-  r   r   r   r   r   r      sT    5	;52n	=9''	7A$0''''''r   r   c                   z    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rSrg)TestNamedTupleiz  c                 Z   ^  U 4S jnU" [        SS5      5        U" [        SS5      5        g )Nc                    > [         [        4 H0  n[        SS9" U5      nTR                  U" U 5      U" U 5      5        M2     g NTnopython)r#   r&   r   r   rb   r   r   r   s      r   check)TestNamedTuple.test_unpack.<locals>.check}  s9    %|3T*62''a&)< 4r   r   r         @r   r   r7  s   ` r   test_unpackTestNamedTuple.test_unpack|  s&    	= 	d1ajd1clr   c                    ^  U 4S jnU" [        SS5      5        U" [        SSS5      5        U" [        SS5      5        U" [        SSS5      5        g )Nc                 l   > [         n[        SS9" U5      nTR                  U" U 5      U" U 5      5        g r3  )r9   r   r   r6  s      r   r7  &TestNamedTuple.test_len.<locals>.check  s/     F&v.E##E!HfQi8r   r   r   r   r9                @)r   r   r;  s   ` r   r   TestNamedTuple.test_len  sG    	9 	d1ajeAq!nd1cleAsB r   c           	      V   [         n[        SS9" U5      n[        SSS5      n[        [	        U5      5       H!  nU R                  U" X45      U" X45      5        M#     [        [	        U5      5       H6  nU R                  U" U[        R                  " U5      5      U" X45      5        M8     g )NTr4  r   r   r   )r*   r   r   r]   r8   r   r   r   )r   r   r   rb   r   s        r   r   TestNamedTuple.test_index  s    T"6*!QNs1vA##E!K>  s1vA##E!U[[^$<fQlK r   c                 z   ^  U 4S jnU" [        SS5      5        U" [        SS5      5        U" [        5       5        g )Nc                 l   > [         n[        SS9" U5      nTR                  U" U 5      U" U 5      5        g r3  )rO   r   r   r6  s      r   r7  'TestNamedTuple.test_bool.<locals>.check  s/    !F&v.E##E!HfQi8r   r   r   r9  )r   r   r;  s   ` r   r   TestNamedTuple.test_bool  s/    	9 	d1ajd1clegr   c           	         ^  U 4S jn[        SS9" U5      nS H  u  pEU" X[        U6 [        U6 45        M     S H  u  pEU" X[        U6 [        U6 45        M     g )Nc                 @   > TR                  U" U6 U " U6 SU< 35        g r	  r
  r  s      r   r  (TestNamedTuple._test_compare.<locals>.eq  r  r   Tr4  r  r  )r   r   r   )r   r   r  r   r   r   s   `     r   r  TestNamedTuple._test_compare  sh    	A T"6*'DA vtQxq23	'*DA vtQx34*r   c                 .    U R                  [        5        g r   r  r   s    r   r  TestNamedTuple.test_eq  r  r   c                 .    U R                  [        5        g r   r  r   s    r   r  TestNamedTuple.test_ne  r  r   c                 .    U R                  [        5        g r   r   r   s    r   r!  TestNamedTuple.test_gt  r  r   c                 .    U R                  [        5        g r   r$  r   s    r   r%  TestNamedTuple.test_ge  r  r   c                 .    U R                  [        5        g r   r(  r   s    r   r)  TestNamedTuple.test_lt  r  r   c                 .    U R                  [        5        g r   r,  r   s    r   r-  TestNamedTuple.test_le  r  r   c                     [         n[        SS9" U5      nS H)  n[        U6 nU R                  U" U5      U" U5      5        M+     g NTr4  )r   r   r9  rA  )rR   r   r   r   )r   r   r   rf   rb   s        r   test_getattrTestNamedTuple.test_getattr  sA     T"6*+DtA##E!HfQi8 ,r   c                 B   ^  U 4S jnU" [         5        U" [        5        g )Nc                    > [        SS9" U 5      nS HB  nU " U6 nU" U6 nTR                  [        U5      [        U5      5        TR                  XC5        MD     g rZ  )r   r  re   r   )r   r   rf   r   r  r   s        r   r7  ,TestNamedTuple.test_construct.<locals>.check  sR    &v.E/!4=Tld3ih8''6	 0r   )rW   rY   r;  s   ` r   test_constructTestNamedTuple.test_construct  s    	7 	jnr   c                    [         n[        SS9" U5      nSS/n[        R                  " X35       HT  u  pE[	        U6 nU" U/UQ76 nU" U/UQ76 nU R                  [        U5      [        U5      5        U R                  X5        MV     g )NTr4  r   r[  )rg   r   r  r  r   r  re   r   )	r   r   r   
arg_tuplestup_argsrf   r"   r   r  s	            r   	test_typeTestNamedTuple.test_type  s    T"6*.
'//
GNH"Cc)D)H#d#CMM$s)T(^4##C2 Hr   c                    ^ [        SS9S 5       m[        SS9U4S j5       nU" SS5      nU R                  U[        SSS95        U" SS5      nU R                  U[        SS	S95        g )
NTr4  c                     [        U S5      $ )Nr:  )rl   s    r   Data16TestNamedTuple.test_literal_unification.<locals>.Data1  s    t$$r   c                 >   > US:X  a
  T" U 5      nU$ [        X5      nU$ )Nr   r:  )r   jresultrk  s      r   call5TestNamedTuple.test_literal_unification.<locals>.call  s,    Av q M aMr   {   i)  r   r   rj  r   r   r   )r   rp  ra   rk  s      @r   test_literal_unification'TestNamedTuple.test_literal_unification  sy    	d		% 
	% 
d			 
		 dODs489aLDs489r   c                 d    [        SS9S 5       nU" 5       nU R                  U[        SSS95        g )NTr4  c                      [        SS5      $ )N
   
somestringr:  r   r   r   foo7TestNamedTuple.test_string_literal_in_ctor.<locals>.foo  s    L))r   rx  ry  r   rs  )r   rz  ra   s      r   test_string_literal_in_ctor*TestNamedTuple.test_string_literal_in_ctor
  s;     
d		* 
	* EDr,?@r   c                    [        SS9S 5       nSnU" U5      nU R                  X#5        [        SSS5      nU" U5      nU R                  XE5        U R                  [        UR                  5      S5        U R                  UR                  S   R
                  S   [        U5      5        U R                  UR                  S   R
                  S   [        U5      5        [        SSS5      nU" U5      nU R                  Xg5        U R                  [        UR                  5      S5        U R                  UR                  S   R
                  S   [        U5      5        g )	NTr4  c                     U $ r   r   )r   s    r   rz  4TestNamedTuple.test_dispatcher_mistreat.<locals>.foo  s    Hr   r0   r4   rM   r0   r4   rM   r   )r   r   r   r8   nopython_signaturesrf   r   r   )r   rz  in1out1in2out2in3out3s           r   test_dispatcher_mistreat'TestNamedTuple.test_dispatcher_mistreat  s7   	d		 
	 3x#Aq!n3x# 	S445q900388;VC[I00388;VC[I Q1o3x#S445q900388;VC[Ir   r   N)r   r   r   r   r<  r   r   r   r  r  r  r!  r%  r)  r-  r\  ra  rf  rt  r|  r  r   r   r   r   r0  r0  z  sZ    	!
L
5(''''''9
3:.AJr   r0  c                       \ rS rSrS rSrg)TestTupleNRTi/  c                     S n[        SS9" U5      nSnU" U5      u  pEU" U5      u  pg[        R                  R                  Xd5        U R	                  Xu5        g )Nc                 <    [         R                  " S5      nU4U 4-   $ )NrM   )r^   r   )r   r   s     r   r   +TestTupleNRT.test_tuple_add.<locals>.pyfunc1  s    		!A41$;r   Tr4  rr  )r   r^   testingassert_equalr   )r   r   r   r   expect_aexpect_xgot_agot_xs           r   test_tuple_addTestTupleNRT.test_tuple_add0  sT    	 T"6*#AYQx


0)r   r   N)r   r   r   r   r  r   r   r   r   r  r  /  s    
*r   r  c                       \ rS rSrS rSrg)TestNamedTupleNRTi=  c                     [         n[        SS9" U5      nS HH  nU" U5      nU" U5      nU R                  [        U5      [        U5      5        U R	                  XT5        MJ     g )NTr4  )rM   r   )rc   r   r  re   r   )r   r   r   argr   r  s         r   test_returnTestNamedTupleNRT.test_return?  sV    T"6*Cc{H*CMM$s)T(^4##C2	 r   r   N)r   r   r   r   r  r   r   r   r   r  r  =  s    	3r   r  c                   $    \ rS rSrSrS rS rSrg)TestConversionsiK  z0
Test implicit conversions between tuple types.
c                 p    [         n[        U" U5      5      " U5      nU" U5      nU R                  Xc5        g r   )ri   r   r   )r   fromtytotyvalr   r   ress          r   check_conversion TestConversions.check_conversionP  s1    T&\"6*Cj"r   c                    U R                   n[        R                  " [        R                  S5      nU" U[        R                  " [        R                  S5      S5        U" U[        R
                  " [        R                  [        R                  45      S5        [        R                  " [        R                  S5      n[        R
                  " S5      nU" X4S5        U" XCS5        U R                  [        R                  5       nU" U[        R
                  " [        R                  45      S5        S S S 5        SnU R                  U[        WR                  5      5        g ! , (       d  f       N6= f)Nr4   r   r   r   z?No conversion from UniTuple(int32 x 2) to UniTuple(float32 x 1))r  r   r   r   r   r   int16ry   r   r   r|   r}   r~   )r   r7  r  atybtyr   r   s          r   test_conversions TestConversions.test_conversionsV  s    %%Q/fennU]]A6?fekk5==%++">?HnnU[[!,kk"occv112f&%++u}}&67@ 3Oc3v//01 32s   .E%%
E3r   N)r   r   r   r   r   r  r  r   r   r   r   r  r  K  s    #2r   r  c                       \ rS rSrS rSrg)TestMethodsif  c                    [         n[        SS9" U5      nU R                  U" SS5      S5        U R                  [        5       nU" SS5        S S S 5        SnU R                  U[        WR                  5      5        g ! , (       d  f       N6= f)NTr4  r  r4   r0   r   ztuple.index(x): x not in tuple)rm   r   r   ry   r   r}   r~   )r   r   r   r   r   s        r   r   TestMethods.test_indexh  su    %T"6*y!,a0z*f)Q +.c&"2"234 +*s   
A>>
Br   N)r   r   r   r   r   r   r   r   r   r  r  f  s    5r   r  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestTupleBuildis  c                 2   ^  U 4S jnU" S5        U" S5        g )Nc                 f   > S n[        SS9" U5      nTR                  U" U 5      U" U 5      5        g )Nc                     S/U Q7$ r[   r   r   s    r   <lambda>ATestTupleBuild.test_build_unpack.<locals>.check.<locals>.<lambda>w  s
    wAwr   Tr4  r   r   r6  s      r   r7  /TestTupleBuild.test_build_unpack.<locals>.checkv  s/    &F&v.E##E!HfQi8r   r   r   r9  r   r;  s   ` r   test_build_unpack TestTupleBuild.test_build_unpacku      	9 	fhr   c                 2   ^  U 4S jnU" S5        U" S5        g )Nc                 f   > S n[        SS9" U5      nTR                  U" U 5      U" U 5      5        g )Nc                     / U Q7$ r   r   r  s    r   r  MTestTupleBuild.test_build_unpack_assign_like.<locals>.check.<locals>.<lambda>      uur   Tr4  r  r6  s      r   r7  ;TestTupleBuild.test_build_unpack_assign_like.<locals>.check  /    $F&v.E##E!HfQi8r   r   r  r   r;  s   ` r   test_build_unpack_assign_like,TestTupleBuild.test_build_unpack_assign_like  s    	9 	fhr   c                 4  ^  U 4S jnT R                  [        R                  5       nU" SS/5        S S S 5        SnT R                  U[	        WR
                  5      5        SnT R                  U[	        UR
                  5      5        g ! , (       d  f       N]= f)Nc                 f   > S n[        SS9" U5      nTR                  U" U 5      U" U 5      5        g )Nc                     / U Q7$ r   r   r  s    r   r  ZTestTupleBuild.test_build_unpack_fail_on_list_assign_like.<locals>.check.<locals>.<lambda>  r  r   Tr4  r  r6  s      r   r7  HTestTupleBuild.test_build_unpack_fail_on_list_assign_like.<locals>.check  r  r   r   r   zNo implementation of functionztuple(reflected list()ry   r   r   r|   r}   r~   )r   r7  r   msg1msg2s   `    r   *test_build_unpack_fail_on_list_assign_like9TestTupleBuild.test_build_unpack_fail_on_list_assign_like  sw    	9
 v112f1a&M 3 /dC 0 012&dC 0 012 32s   B		
Bc                 2   ^  U 4S jnU" S5        U" S5        g )Nc                 f   > S n[        SS9" U5      nTR                  U" U 5      U" U 5      5        g )Nc                     S/U QSPU Q7$ Nr0   r   r   r  s    r   r  FTestTupleBuild.test_build_unpack_more.<locals>.check.<locals>.<lambda>  s    2A2v22r   Tr4  r  r6  s      r   r7  4TestTupleBuild.test_build_unpack_more.<locals>.check  s/    2F&v.E##E!HfQi8r   r   r  r   r;  s   ` r   test_build_unpack_more%TestTupleBuild.test_build_unpack_more  r  r   c                 2   ^  U 4S jnU" S5        U" S5        g )Nc                    >^ [         S 5       mU4S jn[        SS9" U5      nTR                  U" U 5      U" U 5      5        g )Nc                      U $ r   r   rf   s    r   innerCTestTupleBuild.test_build_unpack_call.<locals>.check.<locals>.inner      r   c                    > T" S/U Q76 $ r[   r   r   r  s    r   r  FTestTupleBuild.test_build_unpack_call.<locals>.check.<locals>.<lambda>  s    uQ||r   Tr4  r  rb   r   r   r  r   s      @r   r7  4TestTupleBuild.test_build_unpack_call.<locals>.check  sA     +F&v.E##E!HfQi8r   r   r  r   r;  s   ` r   test_build_unpack_call%TestTupleBuild.test_build_unpack_call      	9 	fhr   c                 2   ^  U 4S jnU" S5        U" S5        g )Nc                    >^ [         S 5       mU4S jn[        SS9" U5      nTR                  U" U 5      U" U 5      5        g )Nc                      U $ r   r   r  s    r   r  HTestTupleBuild.test_build_unpack_call_more.<locals>.check.<locals>.inner  r  r   c                    > T" S/U QSQU Q76 $ r  r   r  s    r   r  KTestTupleBuild.test_build_unpack_call_more.<locals>.check.<locals>.<lambda>  s    uQ88V8a8r   Tr4  r  r  s      @r   r7  9TestTupleBuild.test_build_unpack_call_more.<locals>.check  sA     8F&v.E##E!HfQi8r   r   r  r   r;  s   ` r   test_build_unpack_call_more*TestTupleBuild.test_build_unpack_call_more  r  r   c                 N   ^  U 4S jnU" S S5        U" S S5        U" S S5        g )Nc                 `   > [        SS9" U 5      nTR                  U" U5      U " U5      5        g r3  r  )r   r  r   r   s      r   r7  4TestTupleBuild.test_tuple_constructor.<locals>.check  s*    &v.E##E#Js<r   c                     [        5       $ r   r{   )_s    r   r  7TestTupleBuild.test_tuple_constructor.<locals>.<lambda>  s    r   r   c                     [        U 5      $ r   r  r  s    r   r  r        ar   r   c                     [        U 5      $ r   r  r  s    r   r  r    r  r   r  r   r;  s   ` r   test_tuple_constructor%TestTupleBuild.test_tuple_constructor  s+    	=
 	$ &) (+r   c                     [         S 5       nU R                  [        R                  5       nU" 5         S S S 5        SnU R	                  U[        WR                  5      5        g ! , (       d  f       N6= f)Nc                  0    Sn Sn/ U S   (       a  UQ7$ SQ7$ )Nr0   )rM   r4   r   r   )r   r   r   r   s     r   rz  <TestTupleBuild.test_unpack_with_predicate_fails.<locals>.foo  s%    AA.1Q4a..V..r   z&op_LIST_EXTEND at the start of a block)r   ry   r   UnsupportedBytecodeErrorr|   r}   r~   )r   rz  r   r   s       r    test_unpack_with_predicate_fails/TestTupleBuild.test_unpack_with_predicate_fails  sa     
	/ 
	/
 v>>?6E @6c3v//01 @?s   A$$
A2c                 "   ^  U 4S jnU" S5        g )Nc                 f   > S n[        SS9" U5      nTR                  U" U 5      U" U 5      5        g )Nc                     SS/n/ U QUR                  S5      PUR                  U 5      P[        R                  " S5      P7U4$ )Nr0   r4   rM   )ro   extendr^   onesr   r   s     r   r   TTestTupleBuild.test_build_unpack_with_calls_in_unpack.<locals>.check.<locals>.pyfunc  sB    FAAAHHQKA!AbggajA1DDr   Tr4  r  r6  s      r   r7  DTestTupleBuild.test_build_unpack_with_calls_in_unpack.<locals>.check  s2    E &v.E##E!HfQi8r   r   r   r;  s   ` r   &test_build_unpack_with_calls_in_unpack5TestTupleBuild.test_build_unpack_with_calls_in_unpack  s    	9 	fr   c                 "   ^  U 4S jnU" S5        g )Nc                 f   > S n[        SS9" U5      nTR                  U" U 5      U" U 5      5        g )Nc                     SS/n/ U Q/ U QU P7QU / U S/SQU Q7QU SS/U QSP7PSP74QUR                  S5      UR                  U 5      4Q7U4$ )Nr0   r4   r   )rM   )r4   rM   r  r   )ro   r  r	  s     r   r   KTestTupleBuild.test_build_unpack_complicated.<locals>.check.<locals>.pyfunc  s    F5 5WqW!W 5 ,5a-C$-C-C ,5Av--1-,5/3,5 (6 5((1+qxx{35678 8r   Tr4  r  r6  s      r   r7  ;TestTupleBuild.test_build_unpack_complicated.<locals>.check  s1    8 &v.E##E!HfQi8r   )rx     r   r;  s   ` r   test_build_unpack_complicated,TestTupleBuild.test_build_unpack_complicated  s    	9 	hr   r   N)r   r   r   r   r  r  r  r  r  r  r  r  r  r  r   r   r   r   r  r  s  s4    	
3*	
,2	r   r  __main__)=collectionsr  numpyr^   numbar   r   r   r   
numba.corer   r   r	   numba.tests.supportr
   r   r   unittest
namedtupler   r   r   r   r   r#   r&   r*   r.   r2   r5   r9   r;   r>   rA   rC   rE   rG   rI   rK   rO   rR   rW   rY   rc   rg   ri   rm   rq   rs   r   r   r   r   r0  r  r  r  r  r  r   mainr   r   r   <module>r     s      . . + + > >  f&9:w8			/	:w+( 78,, 7 
x00 
,$6h $6N>x >8d'X d'NrJX rJj*8_ *3/ 32h 26
5( 
5EX EP zMMO r   