§
    2@Äjz  ã                   óB  — 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j        dej        fdej        fg¦  «        Z G d„ dee
¦  «        Z G d„ dee
¦  «        Zedk    r e j         ¦   «          dS dS )é    N)ÚjitÚnjit)ÚtypesÚerrors)ÚTestCaseÚMemoryLeakMixin)Únumpy_supportÚforceobjTÚnopythonc                  ó   — d} dD ]}| |z  } Œ| S )Nr   )é   é   éc   é   © ©ÚresÚis     úKC:\Projects\Historical\venv\Lib\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                  ó2   — 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"      s@   € à
€CØ2ð ð ˆØð 	ð 	ˆAØ�1‰HˆCˆCØ�A‰gˆˆØ€Jr   c                  óX   — d} t          d¦  «        D ]\  }}|D ]
}| ||z  z  } Œ| dz  } Œ| S r    ©Ú	enumerate)r   r   r!   Úls       r   Úenumerate_nested_tuple_usecaser'   #   sQ   € Ø
€CÝÐ?Ñ@Ô@ð ð ‰ˆˆ1Øð 	ð 	ˆAØ�1�q‘5‰LˆCˆCØ�A‰gˆˆØ€Jr   c                  ó~   — d} t          t          d¦  «        ¦  «        D ]\  }\  }}|D ]}| ||z  |z  z  } Œ| dz  } Œ| S r    r$   )r   r   r!   Úkr&   s        r   Únested_enumerate_usecaser*   +   sb   € Ø
€CÝ�yÐ)NÑOÔOÑPÔPð ð ‰	ˆ‰6ˆAˆqØð 	ð 	ˆAØ�1�q‘5˜1‘9ÑˆCˆCØ�A‰gˆˆØ€Jr   c                  ó²   — d} t          j        d¦  «        t          j        d¦  «        f}t          |¦  «        D ]\  }}| |                     ¦   «         z  } Œ| S )Nr   é   é   )ÚnpÚonesr%   Úsum)r   Úarraysr   Úvs       r   Úenumerate_array_usecaser3   4   sT   € Ø
€CÝŒg�a‰jŒj�"œ' !™*œ*Ð%€FÝ˜&Ñ!Ô!ð ð ‰ˆˆ1Øˆq�uŠu‰wŒw‰ˆˆØ€Jr   c                 ó   — d}| D ]}||z  }Œ|S ©Nr   r   ©Úiterabler   Úxs      r   Úscalar_iter_usecaser9   <   s&   € Ø
€CØð ð ˆØˆq‰ˆˆØ€Jr   c                 ó8   — d}| D ]}||j         |j        z  z  }Œ|S r5   ©ÚaÚbr6   s      r   Úrecord_iter_usecaser>   B   s/   € Ø
€CØð ð ˆØˆqŒs�Q”S‰yÑˆˆØ€Jr   c                 ó8   — | D ]}|j         |j        z   |_         Œd S ©Nr;   )r7   r8   s     r   Úrecord_iter_mutate_usecaserA   H   s,   € Øð ð ˆØŒc�A”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dS )ÚIterationTestc                 ó€   —  t          di |¤Ž|¦  «        } |¦   «         }|                       |¦   «         |¦  «         d S )Nr   )r   )r   ÚassertPreciseEqual)ÚselfÚpyfuncÚflagsÚcfuncÚexpecteds        r   Úrun_nullary_funczIterationTest.run_nullary_funcT   sL   € Ø •Ð Ð ˜%Ð Ð  Ñ(Ô(ˆØ�6‘8”8ˆØ×Ò  ¡¤¨Ñ2Ô2Ð2Ð2Ð2r   c                 ó<   — |                       t          |¦  «         d S r@   )rK   r   ©rF   rH   s     r   Útest_int_tuple_iterz!IterationTest.test_int_tuple_iterY   s   € Ø×ÒÕ4°eÑ<Ô<Ð<Ð<Ð<r   c                 ó<   — |                       t          ¬¦  «         d S ©N)rH   )rN   Úno_pyobj_flags©rF   s    r   Útest_int_tuple_iter_npmz%IterationTest.test_int_tuple_iter_npm\   s   € Ø× Ò ¥~Ð Ñ6Ô6Ð6Ð6Ð6r   c                 ó<   — |                       t          |¦  «         d S r@   )rK   r   rM   s     r   Útest_float_tuple_iterz#IterationTest.test_float_tuple_iterb   ó   € Ø×ÒÕ6¸Ñ>Ô>Ð>Ð>Ð>r   c                 ó<   — |                       t          ¬¦  «         d S rP   )rU   rQ   rR   s    r   Útest_float_tuple_iter_npmz'IterationTest.test_float_tuple_iter_npme   ó   € Ø×"Ò"­Ð"Ñ8Ô8Ð8Ð8Ð8r   c                 ó<   — |                       t          |¦  «         d S r@   )rK   r"   rM   s     r   Útest_tuple_tuple_iterz#IterationTest.test_tuple_tuple_iterh   rV   r   c                 ó<   — |                       t          ¬¦  «         d S rP   )r[   rQ   rR   s    r   Útest_tuple_tuple_iter_npmz'IterationTest.test_tuple_tuple_iter_npmk   rY   r   c                 ó<   — |                       t          |¦  «         d S r@   )rK   r'   rM   s     r   Útest_enumerate_nested_tuplez)IterationTest.test_enumerate_nested_tuplen   s   € Ø×ÒÕ<¸eÑDÔDÐDÐDÐDr   c                 ó<   — |                       t          ¬¦  «         d S rP   )r_   rQ   rR   s    r   Útest_enumerate_nested_tuple_npmz-IterationTest.test_enumerate_nested_tuple_npmq   s   € Ø×(Ò(­~Ð(Ñ>Ô>Ð>Ð>Ð>r   c                 ó<   — |                       t          |¦  «         d S r@   )rK   r*   rM   s     r   Útest_nested_enumeratez#IterationTest.test_nested_enumeratet   rV   r   c                 ó<   — |                       t          ¬¦  «         d S rP   )rc   rQ   rR   s    r   Útest_nested_enumerate_npmz'IterationTest.test_nested_enumerate_npmw   rY   r   c                 ó”   — t           } t          d¦  «        |¦  «        } |¦   «         }|                       |¦   «         |¦  «         d S )Nr   )r3   r   rE   )rF   rG   rI   rJ   s       r   Útest_enumerate_refctz"IterationTest.test_enumerate_refctz   sI   € å(ˆØ•�R‘	”	˜&Ñ!Ô!ˆØ�6‘8”8ˆØ×Ò  ¡¤¨Ñ2Ô2Ð2Ð2Ð2r   c           
      óÊ   — t           } t           |t          j        |dd¦  «        ¦  «        fi |¤Ž|¦  «        }|                       ||¦  «         ||¦  «        ¦  «         d S )Nr   ÚA)r9   r   r   ÚArrayrE   )rF   Ú	item_typeÚargrH   rG   rI   s         r   Úrun_array_1dzIterationTest.run_array_1d�   sj   € å$ˆØH•�I�I�eœk¨)°Q¸Ñ<Ô<Ñ>Ô>ÐHÐHÀ%ÐHÐHÈÑPÔPˆØ×Ò   c¡
¤
¨F¨F°3©K¬KÑ8Ô8Ð8Ð8Ð8r   c                 ól   — |                       t          j        t          j        d¦  «        |¦  «         d S )Nç      @)rm   r   Úfloat64r.   ÚarangerM   s     r   Útest_array_1d_floatz!IterationTest.test_array_1d_float‡   s*   € Ø×Ò�%œ-­¬°3©¬¸Ñ?Ô?Ð?Ð?Ð?r   c                 ó:   — |                       t          ¦  «         d S r@   )rr   rQ   rR   s    r   Útest_array_1d_float_npmz%IterationTest.test_array_1d_float_npmŠ   s   € Ø× Ò ¥Ñ0Ô0Ð0Ð0Ð0r   c                 ór   — |                       t          j        t          j        d¦  «        dz  |¦  «         d S )Nro   y              ð?)rm   r   Ú
complex128r.   rq   rM   s     r   Útest_array_1d_complexz#IterationTest.test_array_1d_complex�   s0   € Ø×Ò�%Ô*­B¬I°c©N¬N¸TÑ,AÀ5ÑIÔIÐIÐIÐIr   c                 ó:   — |                       t          ¦  «         d S r@   )rw   rQ   rR   s    r   Útest_array_1d_complex_npmz'IterationTest.test_array_1d_complex_npm�   s   € Ø×"Ò"¥>Ñ2Ô2Ð2Ð2Ð2r   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   ||         _        Œ0 ||¦  «        }|                       ||¦  «        |¦  «         d S ©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Ô3Ð5Ð?Ð?¸Ð?Ð?ÀÑGÔGˆÝŒk˜!¥<Ð0Ñ0Ô0ˆÝ�q‘”ð 	ð 	ˆAÝ˜Q ™U‘|”|ˆC�ŒFŒHØ˜1‘uˆC�ŒFŒHˆHØˆf�S‰kŒkˆØ×Ò   c¡
¤
¨CÑ0Ô0Ð0Ð0Ð0r   c                 ó:   — |                       t          ¦  «         d S r@   )r…   rQ   rR   s    r   Útest_array_1d_record_npmz&IterationTest.test_array_1d_record_npmž   s   € Ø×!Ò!¥.Ñ1Ô1Ð1Ð1Ð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   ||         _        Œ0|                     ¦   «         } ||¦  «         |                     ¦   «         } ||¦  «         |                      ||¦  «         d S 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Ô3Ð5Ð?Ð?¸Ð?Ð?ÀÑGÔGˆÝŒk˜!¥<Ð0Ñ0Ô0ˆÝ�q‘”ð 	ð 	ˆAÝ˜Q ™U‘|”|ˆC�ŒFŒHØ˜1‘uˆC�ŒFŒHˆHØ—8’8‘:”:ˆØˆˆxÑÔÐØ�hŠh‰jŒjˆØˆˆc‰
Œ
ˆ
Ø×Ò ¨#Ñ.Ô.Ð.Ð.Ð.r   c                 ó<   — |                       t          ¬¦  «         d S rP   )rŠ   Úforce_pyobj_flagsrR   s    r   Útest_array_1d_record_mutatez)IterationTest.test_array_1d_record_mutate¯   s    € Ø×,Ò,Õ3DÐ,ÑEÔEÐEÐEÐEr   c                 ó<  — d„ }|                       t          j        ¦  «        5 }t          j        t          j        dd¦  «        } t          |f¦  «        |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j	        ¦  «        ¦  «         d S )Nc                 ó   — | D ]}Œd S 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²   sÐ   € ð	ð 	ð 	ð
 ×Ò�vÔ1Ñ2Ô2ð 	 °fÝ”K¥¤¨Q°Ñ4Ô4ˆEØ�D�%�‰NŒN˜3ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	�Š�k¥3 vÔ'7Ñ#8Ô#8Ñ9Ô9Ð9Ð9Ð9s   £:A)Á)A-Á0A-c                 ó   — d„ }t          j        dt           j        ¬¦  «        x}}t          j        t          j        dd¦  «        } t          ||f¦  «        |¦  «        } |||¦  «        } |||¦  «        }|                      ||¦  «         d S )Nc                 óX   — d}t          | |¦  «        D ]}||d         |d         z   z  }Œ|S ©Nr   r   )Úzip)r8   ÚyÚtotalÚrows       r   Úbarz4IterationTest.test_tuple_iter_issue1504.<locals>.barÁ   s;   € ØˆEÝ˜1˜a‘y”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¿   s˜   € ð	ð 	ð 	õ ”	˜!¥2¤8Ð,Ñ,Ô,Ð,ˆˆAÝ”�EœK¨¨CÑ0Ô0ˆØ$•�e˜U�^Ñ$Ô$ SÑ)Ô)ˆà��Q˜‘”ˆØˆe�A�q‰kŒkˆØ×Ò˜ Ñ%Ô%Ð%Ð%Ð%r   c                 ó^  — d„ }t          j        dt           j        ¬¦  «        x}}t          j        t          j        dd¦  «        } t          t          j                             |d¦  «        f¦  «        |¦  «        } |||f¦  «        } |||f¦  «        }|                      ||¦  «         d S )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Ð,Ñ,Ô,Ð,ˆˆAÝ”�EœK¨¨CÑ0Ô0ˆØ<••eÔ&×/Ò/°°qÑ9Ô9Ð;Ñ<Ô<¸SÑAÔAˆà��a˜�V‘”ˆØˆe�Q˜�F‰mŒ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ð 3ð 3ð
 ):ð =ð =ð =ð =ð7ð 7ð 7ð +<ð ?ð ?ð ?ð ?ð9ð 9ð 9ð +<ð ?ð ?ð ?ð ?ð9ð 9ð 9ð 1Bð Eð Eð Eð Eð?ð ?ð ?ð +<ð ?ð ?ð ?ð ?ð9ð 9ð 9ð3ð 3ð 3ð9ð 9ð 9ð ):ð @ð @ð @ð @ð1ð 1ð 1ð +<ð Jð Jð Jð Jð3ð 3ð 3ð *;ð 	1ð 	1ð 	1ð 	1ð2ð 2ð 2ð 5Cð /ð /ð /ð /ðFð Fð Fð:ð :ð :ð&ð &ð &ð"&ð &ð &ð &ð &r   rC   c                   ó   — e Zd Zd„ ZdS )ÚTestIterationRefctc                 ó¼   — t           d„ ¦   «         }d„ t          d¦  «        D ¦   «         }|                       ||¦  «        |                     |¦  «        ¦  «         d S )Nc                 ó¤   — d}t          t          t          | ¦  «        ¦  «        | ¦  «        D ]"\  }}||dz   |                     ¦   «         z  z  }Œ#d S r�   )rž   r�   Úlenr0   )ÚsequenceÚcr<   r=   s       r   r�   z4TestIterationRefct.test_zip_with_arrays.<locals>.fooå   sT   € àˆAÝ�E¥# h¡-¤-Ñ0Ô0°(Ñ;Ô;ð 'ð '‘��1Ø�a˜!‘e˜qŸušu™wœwÑ&Ñ&��ØˆFr   c                 ó<   — g | ]}t          j        d |z   ¦  «        ‘ŒS )r   )r.   rq   )Ú.0r   s     r   ú
<listcomp>z;TestIterationRefct.test_zip_with_arrays.<locals>.<listcomp>ì   s&   € Ð8Ð8Ð8¨•B”I˜a !™eÑ$Ô$Ð8Ð8Ð8r   é
   )r   r�   r£   Úpy_func)rF   r�   rµ   s      r   Útest_zip_with_arraysz'TestIterationRefct.test_zip_with_arraysä   sf   € Ý	ð	ð 	ñ 
Œð	ð 9Ð8­e°B©i¬iÐ8Ñ8Ô8ˆØ×Ò˜˜˜X™œ¨¯ª°HÑ(=Ô(=Ñ>Ô>Ð>Ð>Ð>r   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Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø "Ð "Ð "Ð "Ð "Ð "ð   Ð&Ð Ø˜dÐ#€ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð
 ˆrŒx˜#˜rœzÐ*Ø˜rœx˜ðñ ô €ð
M&ð M&ð M&ð M&ð M&�O Xñ M&ô M&ð M&ðb
?ð 
?ð 
?ð 
?ð 
?˜¨(ñ 
?ô 
?ð 
?ð ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   