
    sh                     N   S SK r S SKrS SKJrJr  S SKJrJr  S SK	J
r
Jr  S SKJr  SS0rSS0rS	 rS
 rS rS rS rS rS rS rS r\R2                  " S\R4                  4S\R6                  4/5      r " S S\\
5      r " S S\\
5      r\S:X  a  \ R@                  " 5         gg)    N)jitnjit)typeserrors)TestCaseMemoryLeakMixin)numpy_supportforceobjTnopythonc                  $    Sn S H  nX-  n M	     U $ )Nr   )      c       resis     n/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_iteration.pyint_tuple_iter_usecaser      s    
C J    c                  $    Sn S H  nX-  n M	     U $ )N        )      ?       @33333X@333333@r   r   s     r   float_tuple_iter_usecaser      s    
C" #Jr   c                  @    Sn S H  nU H  nX-  n M	     U S-  n M     U $ Nr   ))r   r   )r   r   )g?g      @r   r   )r   r   js      r   tuple_tuple_iter_usecaser"      s2    
C2AHC Ag 3 Jr   c                  \    Sn [        S5       H  u  pU H
  nXU-  -  n M     U S-  n M     U $ r    	enumerate)r   r   r!   ls       r   enumerate_nested_tuple_usecaser'   #   s?    
C?@Aq5LC Ag A Jr   c                  z    Sn [        [        S5      5       H   u  nu  p#U H  nXU-  U-  -  n M     U S-  n M"     U $ r    r$   )r   r   r!   kr&   s        r   nested_enumerate_usecaser*   +   sM    
Cy)NOP	6AAq519C Ag Q Jr   c                      Sn [         R                  " S5      [         R                  " S5      4n[        U5       H  u  p#XR                  5       -  n M     U $ )Nr         )nponesr%   sum)r   arraysr   vs       r   enumerate_array_usecaser3   4   sD    
Cggaj"''!*%F&!uuw "Jr   c                 $    SnU  H  nX-  nM	     U$ Nr   r   iterabler   xs      r   scalar_iter_usecaser9   <   s    
C Jr   c                 R    SnU  H  nXR                   UR                  -  -  nM      U$ r5   abr6   s      r   record_iter_usecaser>   B   s*    
CssQSSy Jr   c                 R    U  H!  nUR                   UR                  -   Ul         M#     g Nr;   )r7   r8   s     r   record_iter_mutate_usecaserA   H   s    ccACCi r   r<   r=   c                       \ rS rSrS r\4S jrS r\4S jrS r	\4S jr
S r\4S	 jrS
 r\4S jrS rS rS r\4S jrS r\4S jrS r\4S jrS r\4S jrS rS rS rS rSrg)IterationTestR   c                 b    [        S0 UD6" U5      nU" 5       nU R                  U" 5       U5        g )N)r   )r   assertPreciseEqual)selfpyfuncflagscfuncexpecteds        r   run_nullary_funcIterationTest.run_nullary_funcT   s-     % (82r   c                 0    U R                  [        U5        g r@   )rL   r   rG   rI   s     r   test_int_tuple_iter!IterationTest.test_int_tuple_iterY   s    4e<r   c                 *    U R                  [        S9  g N)rI   )rP   no_pyobj_flagsrG   s    r   test_int_tuple_iter_npm%IterationTest.test_int_tuple_iter_npm\   s      ~ 6r   c                 0    U R                  [        U5        g r@   )rL   r   rO   s     r   test_float_tuple_iter#IterationTest.test_float_tuple_iterb       6>r   c                 *    U R                  [        S9  g rS   )rY   rT   rU   s    r   test_float_tuple_iter_npm'IterationTest.test_float_tuple_iter_npme       """8r   c                 0    U R                  [        U5        g r@   )rL   r"   rO   s     r   test_tuple_tuple_iter#IterationTest.test_tuple_tuple_iterh   r[   r   c                 *    U R                  [        S9  g rS   )ra   rT   rU   s    r   test_tuple_tuple_iter_npm'IterationTest.test_tuple_tuple_iter_npmk   r_   r   c                 0    U R                  [        U5        g r@   )rL   r'   rO   s     r   test_enumerate_nested_tuple)IterationTest.test_enumerate_nested_tuplen   s    <eDr   c                 *    U R                  [        S9  g rS   )rg   rT   rU   s    r   test_enumerate_nested_tuple_npm-IterationTest.test_enumerate_nested_tuple_npmq   s    ((~(>r   c                 0    U R                  [        U5        g r@   )rL   r*   rO   s     r   test_nested_enumerate#IterationTest.test_nested_enumeratet   r[   r   c                 *    U R                  [        S9  g rS   )rm   rT   rU   s    r   test_nested_enumerate_npm'IterationTest.test_nested_enumerate_npmw   r_   r   c                 n    [         n[        S5      " U5      nU" 5       nU R                  U" 5       U5        g )Nr   )r3   r   rF   )rG   rH   rJ   rK   s       r   test_enumerate_refct"IterationTest.test_enumerate_refctz   s.    (R	&!82r   c           	          [         n[        U" [        R                  " USS5      5      40 UD6" U5      nU R	                  U" U5      U" U5      5        g )Nr   A)r9   r   r   ArrayrF   )rG   	item_typeargrI   rH   rJ   s         r   run_array_1dIterationTest.run_array_1d   sE    $Iekk)Q<>H%HPc
F3K8r   c                 n    U R                  [        R                  [        R                  " S5      U5        g )N      @)rz   r   float64r.   arangerO   s     r   test_array_1d_float!IterationTest.test_array_1d_float   s     %--3?r   c                 .    U R                  [        5        g r@   )r   rT   rU   s    r   test_array_1d_float_npm%IterationTest.test_array_1d_float_npm   s      0r   c                 t    U R                  [        R                  [        R                  " S5      S-  U5        g )Nr}   y              ?)rz   r   
complex128r.   r   rO   s     r   test_array_1d_complex#IterationTest.test_array_1d_complex   s'    %**BIIcNT,A5Ir   c                 .    U R                  [        5        g r@   )r   rT   rU   s    r   test_array_1d_complex_npm'IterationTest.test_array_1d_complex_npm   s    "">2r   c                 n   [         n[        R                  " [        5      n[	        [
        R                  " USS5      440 UD6" U5      n[        R                  " S[        S9n[        S5       H$  n[        US-  5      XV   l        US-   XV   l        M&     U" U5      nU R                  U" U5      U5        g Nr   rv   r   dtyper   )r>   r	   
from_dtyperecord_dtyper   r   rw   r.   recarrayrangefloatr<   r=   rF   )rG   rI   rH   rx   rJ   arrr   gots           r   test_array_1d_record"IterationTest.test_array_1d_record   s    $!,,\:	U[[As35??Gkk!<0qAQU|CFH1uCFH  Skc
C0r   c                 .    U R                  [        5        g r@   )r   rT   rU   s    r   test_array_1d_record_npm&IterationTest.test_array_1d_record_npm   s    !!.1r   c                    [         n[        R                  " [        5      n[	        [
        R                  " USS5      440 UD6" U5      n[        R                  " S[        S9n[        S5       H$  n[        US-  5      XV   l        US-   XV   l        M&     UR                  5       nU" U5        UR                  5       nU" U5        U R                  Xx5        g r   )rA   r	   r   r   r   r   rw   r.   r   r   r   r<   r=   copyrF   )	rG   rI   rH   rx   rJ   r   r   rK   r   s	            r   test_array_1d_record_mutate_npm-IterationTest.test_array_1d_record_mutate_npm   s    +!,,\:	U[[As35??Gkk!<0qAQU|CFH1uCFH  88:xhhjc
.r   c                 *    U R                  [        S9  g rS   )r   force_pyobj_flagsrU   s    r   test_array_1d_record_mutate)IterationTest.test_array_1d_record_mutate   s    ,,3D,Er   c                 6   S nU R                  [        R                  5       n[        R                  " [        R
                  SS5      n[        U45      " U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                     U  H  nM     g r@   r   )r8   r   s     r   foo/IterationTest.test_array_0d_raises.<locals>.foo   s     r   r   Cz	0-d array)
assertRaisesr   TypingErrorr   rw   int32r   assertInstr	exception)rG   r   raisesarytys       r   test_array_0d_raises"IterationTest.test_array_0d_raises   sl    	
 v112fKKQ4E%N3 3 	k3v'7'7#89	 32s   9B


Bc                    S n[         R                  " S[         R                  S9=p#[        R                  " [        R                  SS5      n[        XD45      " U5      nU" X#5      nU" X#5      nU R                  Xg5        g )Nc                 H    Sn[        X5       H  nX#S   US   -   -  nM     U$ Nr   r   )zip)r8   ytotalrows       r   bar4IterationTest.test_tuple_iter_issue1504.<locals>.bar   s0    E1yQ#a&( ! Lr   r   r   r   r   )r.   r   r   r   rw   r   assertEqualrG   r   r8   r   r   rJ   expectr   s           r   test_tuple_iter_issue1504'IterationTest.test_tuple_iter_issue1504   sg    	 		!288,,EKKC0e^$S)QAk%r   c                 D   S n[         R                  " S[         R                  S9=p#[        R                  " [        R                  SS5      n[        [        R                  R                  US5      45      " U5      nU" X#45      nU" X#45      nU R                  Xg5        g )Nc                 *    SnU  H
  nXS   -  nM     U$ )Nr   r   )arrsr   r   s      r   r   4IterationTest.test_tuple_of_arrays_iter.<locals>.bar   s#    EQ  Lr   r   r   r   r   r   )	r.   r   r   r   rw   r   
containersUniTupler   r   s           r   test_tuple_of_arrays_iter'IterationTest.test_tuple_of_arrays_iter   s    	 		!288,,EKKC0e&&//q9;<SAaVQFm%r   r   N)__name__
__module____qualname____firstlineno__rL   r   rP   rV   rY   r]   ra   rd   rg   rj   rm   rp   rs   rz   r   r   r   r   r   r   rT   r   r   r   r   r   __static_attributes__r   r   r   rC   rC   R   s    3
 ): =7 +< ?9 +< ?9 1B E? +< ?939 ): @1 +< J3 *; 	12 5C /F:&"&r   rC   c                       \ rS rSrS rSrg)TestIterationRefct   c                     [         S 5       n[        S5       Vs/ s H  n[        R                  " SU-   5      PM     nnU R	                  U" U5      UR                  U5      5        g s  snf )Nc                     Sn[        [        [        U 5      5      U 5       H  u  p#XS-   UR                  5       -  -  nM     g r   )r   r   lenr0   )sequencecr<   r=   s       r   r   4TestIterationRefct.test_zip_with_arrays.<locals>.foo   s=    AE#h-0(;!equuw&& <r   
   r   )r   r   r.   r   r   py_func)rG   r   r   r   s       r   test_zip_with_arrays'TestIterationRefct.test_zip_with_arrays   s]    		 
	 /4Bi8iBIIa!e$i8XH(=> 9s   #A'r   N)r   r   r   r   r   r   r   r   r   r   r      s    	?r   r   __main__)!unittestnumpyr.   numbar   r   
numba.corer   r   numba.tests.supportr   r   numba.npr	   r   rT   r   r   r"   r'   r*   r3   r9   r>   rA   r   r~   r   r   rC   r   r   mainr   r   r   <module>r      s       $ 9 "  & d#
 xx#rzz*rxx 
M&OX M&b
?( 
? zMMO r   