Ë
    èÿæi|  ã                   ó
  — 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jB                  «        yy)z
Tests for enum support.
é    N)ÚjitÚ	vectorizeÚint8Úint16Úint32)ÚTestCase)ÚColorÚShapeÚShakeÚPlanetÚRequestErrorÚIntEnumWithNegativesc                 ó"   — | |k(  | |k7  | |u | |ufS ©N© )ÚaÚbs     úk/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/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                 ól   — | t         j                  u |t        j                  u |t        j
                  u fS r   )r   Úmintr
   Úcircler   Úinternal_error)r   r   Úcs      r   Úidentity_usecaser"      s1   € Ø”—‘ˆ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| S |S r   r   )r   r   Úpreds      r   Úreturn_usecaser*   +   s   € Ùˆ1Ð˜!Ðr   c                 ót   — | t         j                  kD  r| t         j                  z
  S | t        j                  z   S r   )r   r    Ú	not_foundr
   r   ©Úxs    r   Úint_coerce_usecaser/   /   s0   € àŒ<×&Ñ&Ò&Ø”<×)Ñ)Ñ)Ð)à”5—<‘<ÑÐr   c                 óª   — | t        t        j                  «      kD  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   s?   € àŒ5”×,Ñ,Ó-Ò-Ø”5œ×/Ñ/Ó0Ñ0Ð0à”5œŸ™Ó&Ñ&Ð&r   c                 óZ   — | t         j                  k7  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y)ÚBaseEnumTestc                 ó†   — t         } t        d¬«      |«      }| j                  D ]  }| j                   ||Ž  ||Ž «       Œ y ©NT©Únopython)r   r   ÚpairsÚassertPreciseEqual©ÚselfÚpyfuncÚcfuncÚargss       r   Útest_comparezBaseEnumTest.test_compareG   s>   € Ü ˆØ"”˜TÔ" 6Ó*ˆà—J”JˆDØ×#Ñ#¡F¨D M±5¸$°<Õ@ñ r   c                 ó    — t         } t        d¬«      |«      }| j                  D ]'  }dD ]   }||fz   }| j                   ||Ž  ||Ž «       Œ" Œ) y)z5
        Passing and returning enum members.
        Tr9   )TFN)r*   r   r;   ÚassertIs)r>   r?   r@   Úpairr)   rA   s         r   Útest_returnzBaseEnumTest.test_returnN   sS   € ô  ˆØ"”˜TÔ" 6Ó*ˆà—J”JˆDÛ%�Ø˜t˜g‘~�Ø—‘™f d˜m©U°D¨\Õ:ñ &ñ r   c                 ó†   —  t        d¬«      |«      }| j                  D ]   }| j                   ||«       ||«      «       Œ" y r8   )r   Úvaluesr<   ©r>   r?   r@   Úargs       r   Úcheck_constant_usecasez#BaseEnumTest.check_constant_usecaseZ   s9   € Ø"”˜TÔ" 6Ó*ˆà—;”;ˆCØ×#Ñ#¡F¨3£K±°s³Õ<ñ r   c                 ó¦   — | j                  t        «       | j                  t        «       | j                  t        | j                  d   «      «       y )Nr   )rK   r   r   r'   rH   )r>   s    r   Útest_constantzBaseEnumTest.test_constant`   s:   € Ø×#Ñ#¤OÔ4Ø×#Ñ#¤OÔ4Ø×#Ñ#Ô$9¸$¿+¹+Àa¹.Ó$IÕJr   N)Ú__name__Ú
__module__Ú__qualname__rB   rF   rK   rM   r   r   r   r6   r6   E   s   „ òAò
;ò=óKr   r6   c                   ó0  — 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y)ÚTestEnumz-
    Tests for Enum classes and members.
    c                 óÂ   — t         } t        d¬«      |«      }t        j                  t        j                  t
        j                  f}| j                   ||Ž  ||Ž «       y)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   sJ   € ô "ˆØ"”˜TÔ" 6Ó*ˆÜ—
‘
œEŸK™K¬¯©Ð6ˆØ×Ñ¡¨ ©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   sy   „ ñð �i‰i˜Ÿ™Ð%€Fð 
�‰�E—I‘IÐØ	�‰�E—K‘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y)ÚTestIntEnumz0
    Tests for IntEnum classes and members.
    c                 ó~   — t         } t        d¬«      |«      }dD ]   }| j                   ||«       ||«      «       Œ" y ©NTr9   )i,  iÂ  i&  )r/   r   r<   rI   s       r   Útest_int_coercezTestIntEnum.test_int_coerce‹   s:   € Ü#ˆØ"”˜TÔ" 6Ó*ˆã"ˆCØ×#Ñ#¡F¨3£K±°s³Õ<ñ #r   c                 ó~   — t         } t        d¬«      |«      }dD ]   }| j                   ||«       ||«      «       Œ" y r`   )r1   r   r<   rI   s       r   Útest_int_castzTestIntEnum.test_int_cast’   s:   € Ü!ˆØ"”˜TÔ" 6Ó*ˆã"ˆCØ×#Ñ#¡F¨3£K±°s³Õ<ñ #r   c                 ó  —  t        d¬«      t        «      }t        j                  g d¢«      }t        j                  |D �cg c]  }t        |«      ‘Œ c}|j                  ¬«      }| j                  | ||«      «       y c c}w )NTr9   )é   é”  iô  rf   ©Údtype)r   r4   ÚnpÚarrayrh   r<   )r>   r@   rJ   ÚiÚsols        r   Útest_vectorizezTestIntEnum.test_vectorize™   se   € Ø(”	 4Ô(Ô):Ó;ˆÜ�h‰hÒ)Ó*ˆÜ�h‰h±cÓ:±c°Ô)¨!Õ,°cÑ:À#Ç)Á)ÔLˆØ×Ñ ¡U¨3£ZÕ0ùò ;s   ÁA?c                 ó€   — d„ } t        d¬«      |«      }t        D ]   }| j                   ||«       ||«      «       Œ" y )Nc                 ó   — t        | «      S r   )Úhashr-   s    r   Úpyfunz$TestIntEnum.test_hash.<locals>.pyfun    s   € Ü˜“7ˆNr   Tr9   ©r   r   r<   )r>   rq   r@   Úmembers       r   Ú	test_hashzTestIntEnum.test_hashŸ   s:   € ò	à"”˜TÔ" 5Ó)ˆß*ˆFØ×#Ñ#¡E¨&£M±5¸³=ÕAñ +r   c                 ó¬   — d„ }d„ }d„ }|||fD ]C  } t        d¬«      |«      }t        D ]&  }|dk\  sŒ	| j                   ||«       ||«      «       Œ( ŒE y )Nc                 óR   — t        j                  | | fd¬«      j                  d«      S )NÚint64rg   éÿÿÿÿ)ri   ÚemptyÚfillr-   s    r   Úpyfun_emptyz4TestIntEnum.test_int_shape_cast.<locals>.pyfun_empty§   s"   € Ü—8‘8˜Q ˜F¨'Ô2×7Ñ7¸Ó;Ð;r   c                 ó4   — t        j                  | | fd¬«      S ©Nrw   rg   )ri   Úzerosr-   s    r   Úpyfun_zerosz4TestIntEnum.test_int_shape_cast.<locals>.pyfun_zeros©   s   € Ü—8‘8˜Q ˜F¨'Ô2Ð2r   c                 ó4   — t        j                  | | fd¬«      S r}   )ri   Úonesr-   s    r   Ú
pyfun_onesz3TestIntEnum.test_int_shape_cast.<locals>.pyfun_ones«   s   € Ü—7‘7˜A˜q˜6¨Ô1Ð1r   Tr9   r   rr   )r>   r{   r   r‚   rq   r@   rs   s          r   Útest_int_shape_castzTestIntEnum.test_int_shape_cast¦   s\   € ò	<ò	3ò	2à! ;°
Ó;ˆEØ&”C Ô& uÓ-ˆEß.�Ø˜Q“;Ø×+Ñ+©E°&«M¹5À»=ÕIñ /ñ <r   N)rN   rO   rP   rX   r
   r   rV   rH   r   r,   r    r;   ra   rc   rm   rt   rƒ   r   r   r   r^   r^   ~   s‡   „ ñð �l‰l˜EŸL™LÐ)€Fð 
�‰�u—|‘|Ð$Ø	�‰�u—|‘|Ð$Ø	×	Ñ	 ×!7Ñ!7Ð8Ø	×	$Ñ	$ l×&<Ñ&<Ð=ð	
€Eò=ò=ò1òBóJr   r^   Ú__main__)"rX   Únumpyri   Ú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å (÷=÷ =ò
.òò
ò
òòò ò'ò"ôK�6ô KôB=ˆ|˜Xô =ô03J�, ô 3Jðl ˆzÒØ€H‡M�M…Oð r   