
    sh|                        S r SSKrSSKrSSKJrJrJrJrJ	r	  SSK
Jr  SSKJrJrJrJrJrJr  S rS rS rS	 rS
 rS rS rS rS r " S S\5      r " S S\\5      r " S S\\5      r\ S:X  a  \RB                  " 5         gg)z
Tests for enum support.
    N)jit	vectorizeint8int16int32)TestCase)ColorShapeShakePlanetRequestErrorIntEnumWithNegativesc                     X:H  X:g  XL XL4$ N )abs     j/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_enums.pycompare_usecaser      s    616161:--    c                 &    U [         R                  L $ r   )r	   redr   s    r   getattr_usecaser      s    		>r   c                     U [         S   L $ )z!Lookup enum member by string namer   )r	   r   s    r   getitem_usecaser      s    er   c                 l    U [         R                  L U[        R                  L U[        R
                  L 4$ r   )r   mintr
   circler   internal_error)r   r   cs      r   identity_usecaser"      s1    O,,, r   c                    ^  U 4S jnU$ )Nc                    > U TL $ r   r   )r   consts    r   constant_usecase/make_constant_usecase.<locals>.constant_usecase&   s    Ezr   r   )r%   r&   s   ` r   make_constant_usecaser(   %   s    r   c                     U(       a  U $ U$ r   r   )r   r   preds      r   return_usecaser+   +   s    1!r   c                 v    U [         R                  :  a  U [         R                  -
  $ U [        R                  -   $ r   )r   r    	not_foundr
   r   xs    r   int_coerce_usecaser0   /   s0    <&&&<))))5<<r   c                     U [        [        R                  5      :  a  U [        [        R                  5      -
  $ U [        [
        R                  5      -   $ r   )r   r   r    r   r-   r
   r   r.   s    r   int_cast_usecaser2   6   s?    5,,--5//0005&&&r   c                 \    U [         R                  :w  a	  [         S   $ [         R                  $ )Nr    )r   r-   dummyr.   s    r   vectorize_usecaser5   >   s(    L""",--!!!r   c                   ,    \ rS rSrS rS rS rS rSrg)BaseEnumTestE   c                     [         n[        SS9" U5      nU R                   H  nU R                  U" U6 U" U6 5        M     g NTnopython)r   r   pairsassertPreciseEqualselfpyfunccfuncargss       r   test_compareBaseEnumTest.test_compareG   s<     T"6*JJD##FDM5$<@ r   c                     [         n[        SS9" U5      nU R                   H)  nS H   nX44-   nU R                  U" U6 U" U6 5        M"     M+     g)z%
Passing and returning enum members.
Tr;   )TFN)r+   r   r=   assertIs)r@   rA   rB   pairr*   rC   s         r   test_returnBaseEnumTest.test_returnN   sO      T"6*JJD%g~fdmUD\: & r   c                     [        SS9" U5      nU R                   H!  nU R                  U" U5      U" U5      5        M#     g r:   )r   valuesr>   r@   rA   rB   args       r   check_constant_usecase#BaseEnumTest.check_constant_usecaseZ   s7    T"6*;;C##F3Ks< r   c                     U R                  [        5        U R                  [        5        U R                  [        U R                  S   5      5        g )Nr   )rO   r   r   r(   rL   )r@   s    r   test_constantBaseEnumTest.test_constant`   s:    ##O4##O4##$9$++a.$IJr   r   N)	__name__
__module____qualname____firstlineno__rD   rI   rO   rR   __static_attributes__r   r   r   r7   r7   E   s    A
;=Kr   r7   c                   8   \ rS rSrSr\R                  \R                  /r\R                  \R                  4\R                  \R                  4\	R                  \	R                  4\R                  \R                  4\R                  \R                  4/rS rSrg)TestEnumf   z%
Tests for Enum classes and members.
c                     [         n[        SS9" U5      n[        R                  [        R                  [
        R                  4nU R                  U" U6 U" U6 5        g)z5
Enum with equal values should not compare identical
Tr;   N)r"   r   r	   bluegreenr
   squarer>   r?   s       r   test_identityTestEnum.test_identityt   sH     "T"6*

EKK6ud|<r   r   N)rT   rU   rV   rW   __doc__r	   r   r^   rL   r   r   vanillar   VENUSMARSEARTHr=   r`   rX   r   r   r   rZ   rZ   f   sy     ii%F 
EII	EKK 	U]]#	v{{#	v||$
E=r   rZ   c                   "   \ rS rSrSr\R                  \R                  /r\R                  \R                  4\R                  \R                  4\	R                  \	R                  4\	R                  \	R                  4/rS rS rS rS rS rSrg	)
TestIntEnum~   z(
Tests for IntEnum classes and members.
c                 |    [         n[        SS9" U5      nS H!  nU R                  U" U5      U" U5      5        M#     g NTr;   )i,  i  i&  )r0   r   r>   rM   s       r   test_int_coerceTestIntEnum.test_int_coerce   s8    #T"6*"C##F3Ks< #r   c                 |    [         n[        SS9" U5      nS H!  nU R                  U" U5      U" U5      5        M#     g rk   )r2   r   r>   rM   s       r   test_int_castTestIntEnum.test_int_cast   s8    !T"6*"C##F3Ks< #r   c                    [        SS9" [        5      n[        R                  " / SQ5      n[        R                  " U Vs/ s H  n[        U5      PM     snUR                  S9nU R                  XA" U5      5        g s  snf )NTr;   )     i  rs   dtype)r   r5   nparrayru   r>   )r@   rB   rN   isols        r   test_vectorizeTestIntEnum.test_vectorize   sc    4():;hh)*hhc:c)!,c:#))LU3Z0 ;s    A=c                 ~    S n[        SS9" U5      n[         H!  nU R                  U" U5      U" U5      5        M#     g )Nc                     [        U 5      $ r   )hashr.   s    r   pyfun$TestIntEnum.test_hash.<locals>.pyfun   s    7Nr   Tr;   r   r   r>   )r@   r   rB   members       r   	test_hashTestIntEnum.test_hash   s8    	T"5)*F##E&M5=A +r   c                     S nS nS nXU4 HE  n[        SS9" U5      n[         H)  nUS:  d  M  U R                  U" U5      U" U5      5        M+     MG     g )Nc                 L    [         R                  " X 4SS9R                  S5      $ )Nint64rt   )rv   emptyfillr.   s    r   pyfun_empty4TestIntEnum.test_int_shape_cast.<locals>.pyfun_empty   s     88QF'277;;r   c                 .    [         R                  " X 4SS9$ Nr   rt   )rv   zerosr.   s    r   pyfun_zeros4TestIntEnum.test_int_shape_cast.<locals>.pyfun_zeros   s    88QF'22r   c                 .    [         R                  " X 4SS9$ r   )rv   onesr.   s    r   
pyfun_ones3TestIntEnum.test_int_shape_cast.<locals>.pyfun_ones   s    77A611r   Tr;   r   r   )r@   r   r   r   r   rB   r   s          r   test_int_shape_castTestIntEnum.test_int_shape_cast   sX    	<	3	2!
;E&u-E.Q;++E&M5=I / <r   r   N)rT   rU   rV   rW   rb   r
   r   r_   rL   r   r-   r    r=   rl   ro   rz   r   r   rX   r   r   r   rh   rh   ~   s     llELL)F 
u||$	u||$			!7!78		$	$l&<&<=	
E==1BJr   rh   __main__)"rb   numpyrv   unittestnumbar   r   r   r   r   numba.tests.supportr   numba.tests.enum_usecasesr	   r
   r   r   r   r   r   r   r   r"   r(   r+   r0   r2   r5   objectr7   rZ   rh   rT   mainr   r   r   <module>r      s   
   4 4 (= =
.

 '"K6 KB=|X =03J, 3Jl zMMO r   