
    xKg                     L   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
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 ej2                  dej4                  fdej6                  fg      Z G d dee
      Z G d dee
      Zedk(  r e j@                          yy)    N)jitnjit)typeserrors)TestCaseMemoryLeakMixin)numpy_supportforceobjTnopythonc                  "    d} dD ]  }| |z  } 	 | S )Nr   )      c       resis     ^/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_iteration.pyint_tuple_iter_usecaser      s    
Cq J    c                  "    d} dD ]  }| |z  } 	 | S )N        )      ?       @33333X@333333@r   r   s     r   float_tuple_iter_usecaser      s    
C"q #Jr   c                  :    d} dD ]  }|D ]  }| |z  } 	 | dz  }  | S Nr   ))r   r   )r   r   )g?g      @r   r   )r   r   js      r   tuple_tuple_iter_usecaser"      s4    
C2A1HC Ag 3 Jr   c                  X    d} t        d      D ]  \  }}|D ]
  }| ||z  z  }  | dz  }  | S r    	enumerate)r   r   r!   ls       r   enumerate_nested_tuple_usecaser'   #   sC    
C?@1A1q5LC Ag A Jr   c                  v    d} t        t        d            D ]  \  }\  }}|D ]  }| ||z  |z  z  }  | dz  } ! | S r    r$   )r   r   r!   kr&   s        r   nested_enumerate_usecaser*   +   sQ    
Cy)NOP	6AqA1q519C Ag Q Jr   c                      d} t        j                  d      t        j                  d      f}t        |      D ]  \  }}| |j                         z  }  | S )Nr         )nponesr%   sum)r   arraysr   vs       r   enumerate_array_usecaser3   4   sH    
Cggaj"''!*%F&!1quuw "Jr   c                 "    d}| D ]  }||z  }	 |S Nr   r   iterabler   xs      r   scalar_iter_usecaser9   <   s    
Cq Jr   c                 P    d}| D ]  }||j                   |j                  z  z  }  |S r5   abr6   s      r   record_iter_usecaser>   B   s,    
CqssQSSy Jr   c                 N    | D ]   }|j                   |j                  z   |_         " y Nr;   )r7   r8   s     r   record_iter_mutate_usecaserA   H   s    ccACCi r   r<   r=   c                       e Zd Zd ZefdZd ZefdZd ZefdZ	d Z
efdZd	 Zefd
Zd Zd Zd ZefdZd ZefdZd ZefdZd ZefdZd Zd Zd Zd Zy)IterationTestc                 b     t        di ||      } |       }| j                   |       |       y )N)r   )r   assertPreciseEqual)selfpyfuncflagscfuncexpecteds        r   run_nullary_funczIterationTest.run_nullary_funcT   s/      % (82r   c                 0    | j                  t        |       y r@   )rK   r   rF   rH   s     r   test_int_tuple_iterz!IterationTest.test_int_tuple_iterY   s    4e<r   c                 0    | j                  t               y N)rH   )rN   no_pyobj_flagsrF   s    r   test_int_tuple_iter_npmz%IterationTest.test_int_tuple_iter_npm\   s      ~ 6r   c                 0    | j                  t        |       y r@   )rK   r   rM   s     r   test_float_tuple_iterz#IterationTest.test_float_tuple_iterb       6>r   c                 0    | j                  t               y rP   )rU   rQ   rR   s    r   test_float_tuple_iter_npmz'IterationTest.test_float_tuple_iter_npme       """8r   c                 0    | j                  t        |       y r@   )rK   r"   rM   s     r   test_tuple_tuple_iterz#IterationTest.test_tuple_tuple_iterh   rV   r   c                 0    | j                  t               y rP   )r[   rQ   rR   s    r   test_tuple_tuple_iter_npmz'IterationTest.test_tuple_tuple_iter_npmk   rY   r   c                 0    | j                  t        |       y r@   )rK   r'   rM   s     r   test_enumerate_nested_tuplez)IterationTest.test_enumerate_nested_tuplen   s    <eDr   c                 0    | j                  t               y rP   )r_   rQ   rR   s    r   test_enumerate_nested_tuple_npmz-IterationTest.test_enumerate_nested_tuple_npmq   s    ((~(>r   c                 0    | j                  t        |       y r@   )rK   r*   rM   s     r   test_nested_enumeratez#IterationTest.test_nested_enumeratet   rV   r   c                 0    | j                  t               y rP   )rc   rQ   rR   s    r   test_nested_enumerate_npmz'IterationTest.test_nested_enumerate_npmw   rY   r   c                 n    t         } t        d      |      } |       }| j                   |       |       y )Nr   )r3   r   rE   )rF   rG   rI   rJ   s       r   test_enumerate_refctz"IterationTest.test_enumerate_refctz   s0    (R	&!82r   c           
          t         } t         |t        j                  |dd            fi ||      }| j	                   ||       ||             y )Nr   A)r9   r   r   ArrayrE   )rF   	item_typeargrH   rG   rI   s         r   run_array_1dzIterationTest.run_array_1d   sG    $HIekk)Q<>H%HPc
F3K8r   c                 l    | j                  t        j                  t        j                  d      |       y )N      @)rm   r   float64r.   arangerM   s     r   test_array_1d_floatz!IterationTest.test_array_1d_float   s     %--3?r   c                 .    | j                  t               y r@   )rr   rQ   rR   s    r   test_array_1d_float_npmz%IterationTest.test_array_1d_float_npm   s      0r   c                 r    | j                  t        j                  t        j                  d      dz  |       y )Nro   y              ?)rm   r   
complex128r.   rq   rM   s     r   test_array_1d_complexz#IterationTest.test_array_1d_complex   s'    %**BIIcNT,A5Ir   c                 .    | j                  t               y r@   )rw   rQ   rR   s    r   test_array_1d_complex_npmz'IterationTest.test_array_1d_complex_npm   s    "">2r   c                 n   t         }t        j                  t              } t	        t        j                  |dd      ffi ||      }t        j                  dt              }t        d      D ]%  }t        |dz        ||   _        |dz   ||   _        '  ||      }| j                   ||      |       y Nr   ri   r   dtyper   )r>   r	   
from_dtyperecord_dtyper   r   rj   r.   recarrayrangefloatr<   r=   rE   )rF   rH   rG   rk   rI   arrr   gots           r   test_array_1d_recordz"IterationTest.test_array_1d_record   s    $!,,\:	?U[[As35??Gkk!<0qAQU|CFH1uCFH  Skc
C0r   c                 .    | j                  t               y r@   )r   rQ   rR   s    r   test_array_1d_record_npmz&IterationTest.test_array_1d_record_npm   s    !!.1r   c                    t         }t        j                  t              } t	        t        j                  |dd      ffi ||      }t        j                  dt              }t        d      D ]%  }t        |dz        ||   _        |dz   ||   _        ' |j                         } ||       |j                         } ||       | j                  ||       y r{   )rA   r	   r~   r   r   r   rj   r.   r   r   r   r<   r=   copyrE   )	rF   rH   rG   rk   rI   r   r   rJ   r   s	            r   test_array_1d_record_mutate_npmz-IterationTest.test_array_1d_record_mutate_npm   s    +!,,\:	?U[[As35??Gkk!<0qAQU|CFH1uCFH  88:xhhjc
#.r   c                 0    | j                  t               y rP   )r   force_pyobj_flagsrR   s    r   test_array_1d_record_mutatez)IterationTest.test_array_1d_record_mutate   s    ,,3D,Er   c                 *   d }| j                  t        j                        5 }t        j                  t        j
                  dd      } t        |f      |       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)Nc                     | D ]  } y r@   r   )r8   r   s     r   fooz/IterationTest.test_array_0d_raises.<locals>.foo   s     r   r   Cz	0-d array)
assertRaisesr   TypingErrorr   rj   int32r   assertInstr	exception)rF   r   raisesarytys       r   test_array_0d_raisesz"IterationTest.test_array_0d_raises   sn    	
 v112fKKQ4ED%N3 3 	k3v'7'7#89	 32s   8B		Bc                    d }t        j                  dt         j                        x}}t        j                  t        j                  dd      } t        ||f      |      } |||      } |||      }| j                  ||       y )Nc                 H    d}t        | |      D ]  }||d   |d   z   z  } |S Nr   r   )zip)r8   ytotalrows       r   barz4IterationTest.test_tuple_iter_issue1504.<locals>.bar   s4    E1ayQ#a&( ! Lr   r   r|   r   r   )r.   rq   r   r   rj   r   assertEqualrF   r   r8   r   r   rI   expectr   s           r   test_tuple_iter_issue1504z'IterationTest.test_tuple_iter_issue1504   ss    	 		!288,,AEKKC0$eU^$S)QAqk%r   c                 N   d }t        j                  dt         j                        x}}t        j                  t        j                  dd      } t        t        j                  j                  |d      f      |      } |||f      } |||f      }| j                  ||       y )Nc                 (    d}| D ]
  }||d   z  } |S )Nr   r   )arrsr   r   s      r   r   z4IterationTest.test_tuple_of_arrays_iter.<locals>.bar   s%    EQ  Lr   r   r|   r   r   r   )	r.   rq   r   r   rj   r   
containersUniTupler   r   s           r   test_tuple_of_arrays_iterz'IterationTest.test_tuple_of_arrays_iter   s    	 		!288,,AEKKC0<e&&//q9;<SAaVQFm%r   N)__name__
__module____qualname__rK   r   rN   rS   rU   rX   r[   r]   r_   ra   rc   re   rg   rm   rr   rt   rw   ry   r   r   rQ   r   r   r   r   r   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                       e Zd Zd Zy)TestIterationRefctc                     t         d        }t        d      D cg c]  }t        j                  d|z          }}| j	                   ||      |j                  |             y c c}w )Nc                     d}t        t        t        |             |       D ]  \  }}||dz   |j                         z  z  }  y r   )r   r   lenr0   )sequencecr<   r=   s       r   r   z4TestIterationRefct.test_zip_with_arrays.<locals>.foo   sA    AE#h-0(;1a!equuw&& <r   
   r   )r   r   r.   rq   r   py_func)rF   r   r   r   s       r   test_zip_with_arraysz'TestIterationRefct.test_zip_with_arrays   s]    		 
	 /4Bi8iBIIa!e$i8XH(=> 9s   A#N)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   rQ   r   r   r"   r'   r*   r3   r9   r>   rA   r}   rp   r   r   rC   r   r   mainr   r   r   <module>r      s       $ 9 "  & d#
 rxx#rzz*rxx 
M&OX M&b
?( 
? zHMMO r   