Ë
    èÿæi‰  ã                   ó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     úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/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ç        )ç      ø?ç       @ç33333ÓX@ç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Ø�1‰H‰Cð à�A‰g‰ð 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Ø�1�q‘5‰L‰Cð à�A‰g‰ð 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‰	ˆ‰6ˆAˆqÛˆAØ�1�q‘5˜1‘9Ñ‰Cð à�A‰g‰ð 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Ü�g‰g�a‹jœ"Ÿ'™' !›*Ð%€FÜ˜&Ö!‰ˆˆ1Øˆq�u‰u‹w‰‰ð "à€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ÛˆØˆq�s‰s�Q—S‘S‰yÑ‰ð à€Jr   c                 óN   — | D ]   }|j                   |j                  z   |_         Œ" y ©Nr;   )r7   r8   s     r   Úrecord_iter_mutate_usecaserA   H   s   € ÛˆØ�c‰c�A—C‘C‰iˆ�ñ 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   € Ø×ÑÔ4°eÕ<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”‘IœeŸk™k¨)°Q¸Ó<Ó>ÑHÀ%ÑHÈÓPˆØ×Ñ¡ c£
©F°3«KÕ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'   € Ø×Ñœ%×*Ñ*¬B¯I©I°c«N¸TÑ,AÀ5Õ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—[‘[ ¨A¨sÓ3Ð5Ñ?¸Ñ?ÀÓGˆÜ�k‰k˜!¤<Ô0ˆÜ�q–ˆAÜ˜Q ™U“|ˆC�‰FŒHØ˜1‘uˆC�‰F�Hð ñ �S‹kˆØ×Ñ¡ 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—[‘[ ¨A¨sÓ3Ð5Ñ?¸Ñ?ÀÓGˆÜ�k‰k˜!¤<Ô0ˆÜ�q–ˆAÜ˜Q ™U“|ˆC�‰FŒHØ˜1‘uˆC�‰F�Hð ð —8‘8“:ˆÙˆxÔØ�h‰h‹jˆÙˆ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Ô2°fÜ—K‘K¤§¡¨Q°Ó4ˆEØŒD�%�‹N˜3Ô÷ 3ð 	�‰�k¤3 v×'7Ñ'7Ó#8Õ9÷	 3Ð2ús   £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Ü˜1˜a–y�Ø˜˜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   € ò	ô —	‘	˜!¤2§8¡8Ô,Ð,ˆˆAÜ—‘œEŸK™K¨¨CÓ0ˆØ$”�e˜U�^Ó$ SÓ)ˆá�Q˜“ˆÙ�A�q‹kˆØ×Ñ˜ Õ%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‰   € ò	ô —	‘	˜!¤2§8¡8Ô,Ð,ˆˆAÜ—‘œEŸK™K¨¨CÓ0ˆØ<””e×&Ñ&×/Ñ/°°qÓ9Ð;Ó<¸SÓAˆá�a˜�V“ˆÙ�Q˜�F‹mˆØ×Ñ˜ Õ%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˜!‘e˜qŸu™u›wÑ&Ñ&‘ð <à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]   € Ü	ñ	ó 
ð	ô /4°B¬iÓ8©i¨”B—I‘I˜a !™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Ð#€òòòòòòòòòð
 ˆr�x‰x˜#˜rŸz™zÐ*Ø˜rŸx™x˜ðó €ô
M&�O Xô M&ôb
?˜¨(ô 
?ð ˆzÒØ€H‡M�M…Oð r   