§
    2@Äj1  ã                   ó  — d Z ddlZddlZddlmZmZmZmZm	Z	 ddl
mZ ddlmZmZmZmZmZmZ d„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Z G d„ de¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Ze dk    r ej!        ¦   «          dS dS )z
Tests for enum support.
é    N)ÚjitÚ	vectorizeÚint8Úint16Úint32)ÚTestCase)ÚColorÚShapeÚShakeÚPlanetÚRequestErrorÚIntEnumWithNegativesc                 ó&   — | |k    | |k    | |u | |ufS ©N© )ÚaÚbs     úGC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_enums.pyÚcompare_usecaser      s!   € Ø�Š6�1˜’6˜1 ˜6 1¨A :Ð-Ð-ó    c                 ó   — | t           j        u S r   )r	   Úred©r   s    r   Úgetattr_usecaser      s   € à•”	ˆ>Ðr   c                 ó    — | t           d         u S )z!Lookup enum member by string namer   )r	   r   s    r   Úgetitem_usecaser      s   € à•�e”ÐÐr   c                 óT   — | t           j        u |t          j        u |t          j        u fS r   )r   Úmintr
   Úcircler   Úinternal_error)r   r   Úcs      r   Úidentity_usecaser"      s*   € Ø•”ˆOØ•”ÐØ•Ô,Ð,ðð r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó   •— | ‰u S r   r   )r   Úconsts    €r   Úconstant_usecasez/make_constant_usecase.<locals>.constant_usecase&   s   ø€ Ø�EˆzÐr   r   )r%   r&   s   ` r   Úmake_constant_usecaser'   %   s"   ø€ ðð ð ð ð àÐr   c                 ó   — |r| n|S r   r   )r   r   Úpreds      r   Úreturn_usecaser*   +   s   € ØÐˆ1ˆ1˜!Ðr   c                 ó^   — | t           j        k    r| t           j        z
  S | t          j        z   S r   )r   r    Ú	not_foundr
   r   ©Úxs    r   Úint_coerce_usecaser/   /   s+   € à�<Ô&Ò&Ð&Ø•<Ô)Ñ)Ð)à•5”<ÑÐr   c                 ó¬   — | t          t          j        ¦  «        k    r| t          t          j        ¦  «        z
  S | t          t
          j        ¦  «        z   S r   )r   r   r    r   r,   r
   r   r-   s    r   Úint_cast_usecaser1   6   sC   € à�5•Ô,Ñ-Ô-Ò-Ð-Ø•5�Ô/Ñ0Ô0Ñ0Ð0à•5�œÑ&Ô&Ñ&Ð&r   c                 óT   — | t           j        k    rt           d         S t           j        S )Nr    )r   r,   Údummyr-   s    r   Úvectorize_usecaser4   >   s%   € Ø�LÔ"Ò"Ð"ÝÐ,Ô-Ð-åÔ!Ð!r   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚBaseEnumTestc                 ó’   — t           } t          d¬¦  «        |¦  «        }| j        D ]}|                       ||Ž  ||Ž ¦  «         Œd S ©NT©Únopython)r   r   ÚpairsÚassertPreciseEqual©ÚselfÚpyfuncÚcfuncÚargss       r   Útest_comparezBaseEnumTest.test_compareG   se   € Ý ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà”Jð 	Að 	AˆDØ×#Ò# F F¨D M°5°5¸$°<Ñ@Ô@Ð@Ð@ð	Að 	Ar   c                 ó¨   — t           } t          d¬¦  «        |¦  «        }| j        D ])}dD ]$}||fz   }|                       ||Ž  ||Ž ¦  «         Œ%Œ*dS )z5
        Passing and returning enum members.
        Tr9   )TFN)r*   r   r;   ÚassertIs)r>   r?   r@   Úpairr)   rA   s         r   Útest_returnzBaseEnumTest.test_returnN   s€   € õ  ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà”Jð 	;ð 	;ˆDØ%ð ;ð ;�Ø˜t˜g‘~�Ø—’˜f˜f d˜m¨U¨U°D¨\Ñ:Ô:Ð:Ð:ð;ð	;ð 	;r   c                 óœ   —  t          d¬¦  «        |¦  «        }| j        D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S r8   )r   Úvaluesr<   ©r>   r?   r@   Úargs       r   Úcheck_constant_usecasez#BaseEnumTest.check_constant_usecaseZ   s`   € Ø"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà”;ð 	=ð 	=ˆCØ×#Ò# F F¨3¡K¤K°°°s±´Ñ<Ô<Ð<Ð<ð	=ð 	=r   c                 óÈ   — |                       t          ¦  «         |                       t          ¦  «         |                       t          | j        d         ¦  «        ¦  «         d S )Nr   )rK   r   r   r'   rH   )r>   s    r   Útest_constantzBaseEnumTest.test_constant`   sS   € Ø×#Ò#¥OÑ4Ô4Ð4Ø×#Ò#¥OÑ4Ô4Ð4Ø×#Ò#Õ$9¸$¼+Àa¼.Ñ$IÔ$IÑJÔJÐJÐJÐJr   N)Ú__name__Ú
__module__Ú__qualname__rB   rF   rK   rM   r   r   r   r6   r6   E   sX   € € € € € ðAð Að Að
;ð 
;ð 
;ð=ð =ð =ðKð Kð Kð Kð Kr   r6   c                   óº   — e Zd ZdZej        ej        gZej        ej        fej        ej        fej	        ej
        fej        ej        fej        ej        fgZd„ ZdS )ÚTestEnumz-
    Tests for Enum classes and members.
    c                 óÄ   — t           } t          d¬¦  «        |¦  «        }t          j        t          j        t
          j        f}|                       ||Ž  ||Ž ¦  «         dS )zE
        Enum with equal values should not compare identical
        Tr9   N)r"   r   r	   ÚblueÚgreenr
   Úsquarer<   r=   s       r   Útest_identityzTestEnum.test_identityt   s]   € õ "ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝ”
�EœK­¬Ð6ˆØ×Ò  ¨ ¨u¨u°d¨|Ñ<Ô<Ð<Ð<Ð<r   N)rN   rO   rP   Ú__doc__r	   r   rU   rH   r   r   Úvanillar   ÚVENUSÚMARSÚEARTHr;   rW   r   r   r   rR   rR   f   s‚   € € € € € ðð ð Œi˜œÐ%€Fð 
Œ�E”IÐØ	Œ�E”KÐ Ø	Œ�U”]Ð#Ø	Œ�v”{Ð#Ø	Œ�v”|Ð$ð
€Eð=ð =ð =ð =ð =r   rR   c                   ó¸   — e Zd ZdZej        ej        gZej        ej        fej        ej        fej	        ej	        fej
        ej	        fgZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestIntEnumz0
    Tests for IntEnum classes and members.
    c                 ó    — t           } t          d¬¦  «        |¦  «        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S ©NTr9   )i,  iÂ  i&  )r/   r   r<   rI   s       r   Útest_int_coercezTestIntEnum.test_int_coerce‹   sc   € Ý#ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà"ð 	=ð 	=ˆCØ×#Ò# F F¨3¡K¤K°°°s±´Ñ<Ô<Ð<Ð<ð	=ð 	=r   c                 ó    — t           } t          d¬¦  «        |¦  «        }dD ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S r`   )r1   r   r<   rI   s       r   Útest_int_castzTestIntEnum.test_int_cast’   sc   € Ý!ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà"ð 	=ð 	=ˆCØ×#Ò# F F¨3¡K¤K°°°s±´Ñ<Ô<Ð<Ð<ð	=ð 	=r   c                 óö   —  t          d¬¦  «        t          ¦  «        }t          j        g d¢¦  «        }t          j        d„ |D ¦   «         |j        ¬¦  «        }|                      | ||¦  «        ¦  «         d S )NTr9   )é   é”  iô  rf   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )r4   )Ú.0Úis     r   ú
<listcomp>z.TestIntEnum.test_vectorize.<locals>.<listcomp>œ   s!   € Ð:Ð:Ð:°Õ)¨!Ñ,Ô,Ð:Ð:Ð:r   ©Údtype)r   r4   ÚnpÚarrayrl   r<   )r>   r@   rJ   Úsols       r   Útest_vectorizezTestIntEnum.test_vectorize™   s|   € Ø(•	 4Ð(Ñ(Ô(Õ):Ñ;Ô;ˆÝŒhÐ)Ð)Ð)Ñ*Ô*ˆÝŒhÐ:Ð:°cÐ:Ñ:Ô:À#Ä)ÐLÑLÔLˆØ×Ò  U U¨3¡Z¤ZÑ0Ô0Ð0Ð0Ð0r   c                 ó¢   — d„ } t          d¬¦  «        |¦  «        }t          D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )Nc                 ó    — t          | ¦  «        S r   )Úhashr-   s    r   Úpyfunz$TestIntEnum.test_hash.<locals>.pyfun    s   € Ý˜‘7”7ˆNr   Tr9   ©r   r   r<   )r>   rt   r@   Úmembers       r   Ú	test_hashzTestIntEnum.test_hashŸ   sq   € ð	ð 	ð 	à"•˜TÐ"Ñ"Ô" 5Ñ)Ô)ˆÝ*ð 	Bð 	BˆFØ×#Ò# E E¨&¡M¤M°5°5¸±=´=ÑAÔAÐAÐAð	Bð 	Br   c                 óÊ   — d„ }d„ }d„ }|||fD ]S} t          d¬¦  «        |¦  «        }t          D ]0}|dk    r(|                       ||¦  «         ||¦  «        ¦  «         Œ1ŒTd S )Nc                 óX   — t          j        | | fd¬¦  «                             d¦  «        S )NÚint64rk   éÿÿÿÿ)rm   ÚemptyÚfillr-   s    r   Úpyfun_emptyz4TestIntEnum.test_int_shape_cast.<locals>.pyfun_empty§   s)   € Ý”8˜Q ˜F¨'Ð2Ñ2Ô2×7Ò7¸Ñ;Ô;Ð;r   c                 ó2   — t          j        | | fd¬¦  «        S ©Nrz   rk   )rm   Úzerosr-   s    r   Úpyfun_zerosz4TestIntEnum.test_int_shape_cast.<locals>.pyfun_zeros©   s   € Ý”8˜Q ˜F¨'Ð2Ñ2Ô2Ð2r   c                 ó2   — t          j        | | fd¬¦  «        S r€   )rm   Úonesr-   s    r   Ú
pyfun_onesz3TestIntEnum.test_int_shape_cast.<locals>.pyfun_ones«   s   € Ý”7˜A˜q˜6¨Ð1Ñ1Ô1Ð1r   Tr9   r   ru   )r>   r~   r‚   r…   rt   r@   rv   s          r   Útest_int_shape_castzTestIntEnum.test_int_shape_cast¦   s´   € ð	<ð 	<ð 	<ð	3ð 	3ð 	3ð	2ð 	2ð 	2à! ;°
Ð;ð 	Jð 	JˆEØ&•C Ð&Ñ&Ô& uÑ-Ô-ˆEÝ.ð Jð J�Ø˜Q’;�;Ø×+Ò+¨E¨E°&©M¬M¸5¸5À¹=¼=ÑIÔIÐIøðJð	Jð 	Jr   N)rN   rO   rP   rX   r
   r   rV   rH   r   r,   r    r;   ra   rc   rp   rw   r†   r   r   r   r^   r^   ~   s¾   € € € € € ðð ð Œl˜EœLÐ)€Fð 
Œ�u”|Ð$Ø	Œ�u”|Ð$Ø	Ô	 Ô!7Ð8Ø	Ô	$ lÔ&<Ð=ð	
€Eð=ð =ð =ð=ð =ð =ð1ð 1ð 1ðBð Bð BðJð Jð Jð Jð Jr   r^   Ú__main__)"rX   Únumpyrm   ÚunittestÚnumbar   r   r   r   r   Únumba.tests.supportr   Únumba.tests.enum_usecasesr	   r
   r   r   r   r   r   r   r   r"   r'   r*   r/   r1   r4   Úobjectr6   rR   r^   rN   Úmainr   r   r   ú<module>r�      só  ððð ð
 Ð Ð Ð Ø €€€Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à (Ð (Ð (Ð (Ð (Ð (ð=ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð
.ð .ð .ðð ð ð
ð ð ð
ð ð ðð ð ðð ð ð ð  ð  ð'ð 'ð 'ð"ð "ð "ðKð Kð Kð Kð K�6ñ Kô Kð KðB=ð =ð =ð =ð =ˆ|˜Xñ =ô =ð =ð03Jð 3Jð 3Jð 3Jð 3J�, ñ 3Jô 3Jð 3Jðl ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   