§
    2@ÄjÔ  ã                   ó  — d dl Z d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z G d„ de j	        ¦  «        Zed„ ¦   «         Z G d„ de	¦  «        Zedk    r e j        ¦   «          dS dS )é    N)ÚjitÚnjit)Útypes)ÚTestCase)Úlength_of_iteratorc                 ó8   — d}t          | ¦  «        D ]}||z  }Œ|S ©Nr   ©Úrange)ÚnÚsÚis      úGC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_range.pyÚloop1r      s,   € Ø	€AÝ�1‰XŒXð ð ˆØ	ˆQ‰ˆˆØ€Hó    c                 ó:   — d}t          | |¦  «        D ]}||z  }Œ|S r	   r
   )ÚaÚbr   r   s       r   Úloop2r      s.   € Ø	€AÝ�1�a‰[Œ[ð ð ˆØ	ˆQ‰ˆˆØ€Hr   c                 ó<   — d}t          | ||¦  «        D ]}||z  }Œ|S r	   r
   )r   r   Úcr   r   s        r   Úloop3r      s0   € Ø	€AÝ�1�a˜‰^Œ^ð ð ˆØ	ˆQ‰ˆˆØ€Hr   c                 ó:   — t          t          | ¦  «        ¦  «        S ©N©Úlenr   )r   s    r   Ú
range_len1r       s   € Ý�u�Q‰xŒx‰=Œ=Ðr   c                 ó<   — t          t          | |¦  «        ¦  «        S r   r   )r   r   s     r   Ú
range_len2r   #   s   € Ý�u�Q˜‰{Œ{ÑÔÐr   c                 ó>   — t          t          | ||¦  «        ¦  «        S r   r   )r   r   r   s      r   Ú
range_len3r!   &   s   € Ý�u�Q˜˜1‰~Œ~ÑÔÐr   c                 óT   — t          t          t          | ¦  «        ¦  «        ¦  «        S r   )r   Úiterr   ©r   s    r   Úrange_iter_len1r%   (   s   € Ý�d¥5¨¡8¤8™nœnÑ-Ô-Ð-r   c                 ó:   — t          t          | ¦  «        ¦  «        S r   )r   r#   r$   s    r   Úrange_iter_len2r'   +   s   € Ý�d 1™gœgÑ&Ô&Ð&r   c                 óÈ   — t          | ¦  «        }t          | |¦  «        }t          | ||¦  «        }g }|||fD ])}|                     |j        |j        |j        f¦  «         Œ*|S r   )r   ÚappendÚstartÚstopÚstep)r*   r+   r,   Úr1Úr2Úr3ÚtmpÚrs           r   Úrange_attrsr2   .   sn   € Ý	ˆu‰Œ€BÝ	ˆu�dÑ	Ô	€BÝ	ˆu�d˜DÑ	!Ô	!€BØ
€CØ�"�bˆ\ð .ð .ˆØ�
Š
�A”G˜QœV Q¤VÐ,Ñ-Ô-Ð-Ð-Ø€Jr   c                 ó†   ‡ — t          |¦  «        }t          ||¦  «        }t          |||¦  «        }ˆ fd„|||fD ¦   «         S )Nc                 ó   •— g | ]}‰|v ‘ŒS © r5   )Ú.0r1   Úvals     €r   ú
<listcomp>z"range_contains.<locals>.<listcomp>;   s   ø€ Ð+Ð+Ð+˜ˆC�1ˆHÐ+Ð+Ð+r   r
   )r7   r*   r+   r,   r-   r.   r/   s   `      r   Úrange_containsr9   7   sN   ø€ Ý	ˆu‰Œ€BÝ	ˆu�dÑ	Ô	€BÝ	ˆu�d˜DÑ	!Ô	!€BØ+Ð+Ð+Ð+˜r 2 r˜lÐ+Ñ+Ô+Ð+r   c                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )Ú	TestRangec                 óª   — t           } t          t          j        f¦  «        |¦  «        }|                       |d¦  «         |d¦  «        ¦  «         d S )Né   )r   r   r   Úint16Ú
assertTrue©ÚselfÚpyfuncÚcfuncs      r   Útest_loop1_int16zTestRange.test_loop1_int16@   sL   € ÝˆØ$••e”k�^Ñ$Ô$ VÑ,Ô,ˆØ�Š˜˜˜a™œ & &¨¡)¤)Ñ,Ô,Ð,Ð,Ð,r   c                 óÄ   — t           } t          t          j        t          j        f¦  «        |¦  «        }|                       |dd¦  «         |dd¦  «        ¦  «         d S )Né   é   )r   r   r   r>   r?   r@   s      r   Útest_loop2_int16zTestRange.test_loop2_int16E   sU   € ÝˆØ0••e”k¥5¤;Ð/Ñ0Ô0°Ñ8Ô8ˆØ�Š˜˜˜a ™œ V V¨A¨q¡\¤\Ñ2Ô2Ð2Ð2Ð2r   c                 óÐ   — t           } t          t          j        t          j        t          j        f¦  «        |¦  «        }g d¢}|D ]}|                       ||Ž  ||Ž ¦  «         Œd S )N©)rF   é   rF   )rK   é   é   )éöÿÿÿiõÿÿÿrN   )rN   rN   éþÿÿÿ)r   r   r   Úint32ÚassertEqual)rA   rB   rC   ÚarglistÚargss        r   Útest_loop3_int32zTestRange.test_loop3_int32J   s|   € ÝˆØ=••e”k¥5¤;µ´Ð<Ñ=Ô=¸fÑEÔEˆð
ð 
ð 
ˆð ð 	:ð 	:ˆDØ×Ò˜U˜U D˜\¨6¨6°4¨=Ñ9Ô9Ð9Ð9ð	:ð 	:r   c           
      ó  — t           }t          j        t          j        t          j        g}g d¢}|D ]Z} t          |f¦  «        |¦  «        }|D ]<}|                       | ||¦  «        ¦  «         | ||¦  «        ¦  «        ¦  «         Œ=Œ[d S ©N)r=   r   éûÿÿÿ)r   r   r>   rP   Úint64r   rQ   )rA   rB   ÚtypelistrR   ÚtyprC   Úargs          r   Útest_range_len1zTestRange.test_range_len1V   s¨   € ÝˆÝ”K¥¤­e¬kÐ:ˆØ�*�*ˆØð 	Dð 	DˆCØ •D˜#˜‘L”L Ñ(Ô(ˆEØð Dð D�Ø× Ò    s s¨3¡x¤x¡¤°&°&¸¸¸S¹¼Ñ2BÔ2BÑCÔCÐCÐCðDð	Dð 	Dr   c                 ó  ‡— t           }t          j        t          j        t          j        g}g d¢}|D ]XŠ t          ‰‰f¦  «        |¦  «        }|D ]9}t          ˆfd„|D ¦   «         ¦  «        }|                       ||Ž  ||Ž ¦  «         Œ:ŒYd S )N))rF   rG   )rG   rF   )rW   éÿÿÿÿc              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r   r5   ©r6   ÚxrZ   s     €r   ú	<genexpr>z,TestRange.test_range_len2.<locals>.<genexpr>f   ó+   øè è € Ð3Ð3¨˜c˜c !™fœfÐ3Ð3Ð3Ð3Ð3Ð3r   )r   r   r>   rP   rX   r   ÚtuplerQ   ©rA   rB   rY   rR   rC   rS   Úargs_rZ   s          @r   Útest_range_len2zTestRange.test_range_len2_   s»   ø€ ÝˆÝ”K¥¤­e¬kÐ:ˆØ*Ð*Ð*ˆØð 	@ð 	@ˆCØ$•D˜#˜s˜Ñ$Ô$ VÑ,Ô,ˆEØð @ð @�ÝÐ3Ð3Ð3Ð3¨dÐ3Ñ3Ô3Ñ3Ô3�Ø× Ò   ¨ °°¸°Ñ?Ô?Ð?Ð?ð@ð	@ð 	@r   c                 ó  ‡— t           }t          j        t          j        t          j        g}g d¢}|D ]YŠ t          ‰‰‰f¦  «        |¦  «        }|D ]9}t          ˆfd„|D ¦   «         ¦  «        }|                       ||Ž  ||Ž ¦  «         Œ:ŒZd S )NrJ   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r   r5   r`   s     €r   rb   z,TestRange.test_range_len3.<locals>.<genexpr>u   rc   r   )r!   r   r>   rP   rX   r   rd   rQ   re   s          @r   Útest_range_len3zTestRange.test_range_len3i   sÅ   ø€ ÝˆÝ”K¥¤­e¬kÐ:ˆð
ð 
ð 
ˆð ð 	@ð 	@ˆCØ)•D˜#˜s C˜Ñ)Ô)¨&Ñ1Ô1ˆEØð @ð @�ÝÐ3Ð3Ð3Ð3¨dÐ3Ñ3Ô3Ñ3Ô3�Ø× Ò   ¨ °°¸°Ñ?Ô?Ð?Ð?ð@ð	@ð 	@r   c           
      ó*  — t           }t          }t          j        t          j        t          j        g}g d¢}|D ]Z} t          |f¦  «        |¦  «        }|D ]<}|                       | ||¦  «        ¦  «         | ||¦  «        ¦  «        ¦  «         Œ=Œ[d S rV   )r   r%   r   r>   rP   rX   r   rQ   )rA   Ú
range_funcÚrange_iter_funcrY   rR   rZ   rC   r[   s           r   Útest_range_iter_len1zTestRange.test_range_iter_len1x   s­   € Ýˆ
Ý)ˆÝ”K¥¤­e¬kÐ:ˆØ�*�*ˆØð 	Hð 	HˆCØ •D˜#˜‘L”L Ñ1Ô1ˆEØð Hð H�Ø× Ò    s s¨3¡x¤x¡¤°*°*¸S¸SÀ¹X¼XÑ2FÔ2FÑGÔGÐGÐGðHð	Hð 	Hr   c                 óâ   — t           } t          t          j        t          j        d¬¦  «        f¦  «        |¦  «        }g d¢}|                       ||¦  «        t          |¦  «        ¦  «         d S )NT)Ú	reflected)rF   rK   rM   é   r=   )r'   r   r   ÚListÚintprQ   r   )rA   rm   rC   rR   s       r   Útest_range_iter_listzTestRange.test_range_iter_list‚   se   € Ý)ˆØ?••e”j¥¤°tÐ<Ñ<Ô<Ð>Ñ?Ô?ÀÑPÔPˆØ!�/�/ˆØ×Ò˜˜˜w™œ­¨W©¬Ñ6Ô6Ð6Ð6Ð6r   c                 óÐ   — t           }g d¢} t          t          j        t          j        t          j        f¦  «        |¦  «        }|D ]}|                       ||Ž  ||Ž ¦  «         Œd S )N)©r   r   rF   ©r   r^   rF   ©r^   rF   rF   ©r^   rq   rF   ©r^   rq   é
   ©r=   rW   rO   )r2   r   r   rX   rQ   )rA   rB   rR   rC   r[   s        r   Útest_range_attrszTestRange.test_range_attrsˆ   s|   € Ýˆð!ð !ð !ˆð ?••e”k¥5¤;µ´Ð<Ñ>Ô>¸vÑFÔFˆØð 	8ð 	8ˆCØ×Ò˜U˜U C˜[¨&¨&°#¨,Ñ7Ô7Ð7Ð7ð	8ð 	8r   c           	      ó\  — t           }g d¢}ddg}g d¢}g d¢}g d¢}||z   |z   |z   }t          |¦  «        }|D ]+}	|D ]&}
|                       ||
g|	¢R Ž  ||
g|	¢R Ž ¦  «         Œ'Œ,ddidgd	d
g}t          |d¬¦  «        }|D ]+}	|D ]&}
|                       ||
g|	¢R Ž  ||
g|	¢R Ž ¦  «         Œ'Œ,d S )N)	rv   )r^   r   rF   )rF   r   r^   rw   )r   rF   r^   rx   ry   rz   r|   TF)rN   iúÿÿÿrW   éüÿÿÿrO   r^   r   rF   rK   rq   r=   rG   r{   )gš™™™™™ñ¿g      ð¿g        g      ð?gš™™™™™ñ?)y      ð?        y      ð?      ð?yš™™™™™ñ?        y      ð?š™™™™™ñ?r   rF   Úabc)rF   )Úforceobj)r9   r   rQ   r   )rA   rB   rR   Ú	bool_valsÚint_valsÚ
float_valsÚcomplex_valsÚvallistrC   r[   r7   Únon_numeric_valsÚ	cfunc_objs                r   Útest_range_containszTestRange.test_range_contains•   sm  € Ýˆð!ð !ð !ˆð ˜5�Mˆ	ð(ð (ð (ˆà0Ð0Ð0ˆ
Ø=Ð=Ð=ˆà˜xÑ'¨*Ñ4Øñˆõ �V‘”ˆØð 	Fð 	FˆCØð Fð F�Ø× Ò    sÐ!1¨SÐ!1Ð!1Ð!1°6°6¸#Ð3DÀÐ3DÐ3DÐ3DÑEÔEÐEÐEðFð ! !˜H q e¨U°DÐ9Ðå˜¨Ð.Ñ.Ô.ˆ	Øð 	Jð 	JˆCØ'ð Jð J�Ø× Ò   ¨3Ð!5°Ð!5Ð!5Ð!5°v°v¸cÐ7HÀCÐ7HÐ7HÐ7HÑIÔIÐIÐIðJð	Jð 	Jr   N)Ú__name__Ú
__module__Ú__qualname__rD   rH   rT   r\   rg   rj   rn   rt   r}   r‰   r5   r   r   r;   r;   >   s»   € € € € € ð-ð -ð -ð
3ð 3ð 3ð

:ð 
:ð 
:ðDð Dð Dð@ð @ð @ð@ð @ð @ðHð Hð Hð7ð 7ð 7ð8ð 8ð 8ðJð Jð Jð Jð Jr   r;   c           	      ó¾   — t          j        t          t          | ||¦  «        ¦  «        t           j        ¬¦  «        }d}t          | ||¦  «        D ]}|||<   |dz  }Œ|S )N©Údtyper   rF   )ÚnpÚzerosr   r   Úuint64)r*   r+   r,   ra   r   Úvs         r   Ú	my_aranger”   ·   se   € å
Œ••U˜5 $¨Ñ-Ô-Ñ.Ô.µb´iÐ@Ñ@Ô@€AØ	€AÝ�5˜$ Ñ%Ô%ð ð ˆØˆˆ!‰Ø	ˆQ‰ˆˆØ€Hr   c                   ó   — e Zd Zd„ ZdS )ÚTestRangeNumpyc           	      ó   — t          t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        ¦  «        }|                      |t          j        dddt          j        ¬¦  «        ¦  «         dS )z,Test that mixing `uint64` and `int64` works.rG   r   r^   rŽ   N)r”   r�   r’   rX   ÚassertPreciseEqualÚarange)rA   r   s     r   Útest_range_safe_cast_mixedz)TestRangeNumpy.test_range_safe_cast_mixedÂ   s\   € å•b”i ‘l”l¥B¤I¨a¡L¤Lµ"´(¸2±,´,Ñ?Ô?ˆØ×Ò ¥2¤9¨Q°°2½R¼YÐ#GÑ#GÔ#GÑHÔHÐHÐHÐHr   N)rŠ   r‹   rŒ   rš   r5   r   r   r–   r–   Á   s(   € € € € € ðIð Ið Ið Ið Ir   r–   Ú__main__)ÚunittestÚnumpyr�   Únumbar   r   Ú
numba.corer   Únumba.tests.supportr   Únumba.core.inline_closurecallr   r   r   r   r   r   r!   r%   r'   r2   r9   r;   r”   r–   rŠ   Úmainr5   r   r   ú<module>r£      s¯  ðØ €€€à Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (à <Ð <Ð <Ð <Ð <Ð <ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð.ð .ð .ð'ð 'ð 'ðð ð ð,ð ,ð ,ðvJð vJð vJð vJð vJ�Ô!ñ vJô vJð vJðr ðð ñ „ððIð Ið Ið Ið I�Xñ Iô Ið Ið ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   