
    sh                         S r SSKrSSKJrJr  SSKJrJrJr  SSK	J
r
JrJr  SSKJrJrJrJrJr   " S S\5      r\S	:X  a  \
R*                  " 5         gg)
z3
Test cases adapted from numba/tests/test_enums.py
    N)int16int32)cuda	vectorizenjit)unittestCUDATestCaseskip_on_cudasim)ColorShapePlanetRequestErrorIntEnumWithNegativesc                   8   \ rS rSr\R
                  \R
                  4\R
                  \R                  4\R                  \R                  4\R                  \R                  4\R                  \R                  4/rS rS rS rS rS r\" S5      S 5       rS	rg
)EnumTest   c                    S n[         R                  " U5      nU R                   H^  u  p4[        R                  " S[        R
                  S9nUR                  5       nUS   " X4U5        U" X4U5        U R                  Xe5        M`     g )Nc                 8    X:H  US'   X:g  US'   XL US'   XLUS'   g )Nr             )abouts      v/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_enums.pyf EnumTest.test_compare.<locals>.f   s.    VCFVCFVCFZCF    )   dtyper   r   )r   jitpairsnpzerosbool_copyassertPreciseEqual)selfr   cuda_fr   r   gotexpecteds          r   test_compareEnumTest.test_compare   sk    	  !JJDA((4rxx0CxxzH4Ls#aH##H2 r   c                     S n[         R                  " U5      n[        R                  " S[        R                  S9nUR                  5       nUS   " U5        U" U5        U R                  XC5        g )Nc                 x    [         R                  [         R                  :H  U S'   [         S   [         S   :H  U S'   g )Nr   redgreenr   r   r3   r4   )r   s    r   r   (EnumTest.test_getattr_getitem.<locals>.f-   s.    YY%++-CF5\U7^3CFr   r   r!   r#   )r   r$   r&   r'   r(   r)   r*   )r+   r   r,   r-   r.   s        r   test_getattr_getitemEnumTest.test_getattr_getitem,   sV    	4
 !hht288,88:tS	(.r   c                   ^ [         S 5       mU4S jn[        R                  " U5      n[        R                  " S[        R
                  S9nUR                  5       nU" SU5        US   " SU5        U R                  XC5        g )Nc                 P    U (       a  [         R                  $ [         R                  $ )Nr5   )preds    r   inner4EnumTest.test_return_from_device_func.<locals>.inner:   s     $5995%++5r   c                    > T" U 5      [         R                  :H  US'   T" U (       + 5      [         R                  :H  US'   g )Nr   r   r5   )r<   r   r=   s     r   r   0EnumTest.test_return_from_device_func.<locals>.f>   s1    4[EII-CFt8_3CFr   r7   r!   Tr#   )r   r   r$   r&   r'   r(   r)   r*   )r+   r   r,   r-   r.   r=   s        @r   test_return_from_device_func%EnumTest.test_return_from_device_func9   sn    		6 
	6	4 !hht288,88:	$tT3.r   c                     S n[         R                  " U5      nS HZ  n[        R                  " S[        R                  S9nUR                  5       nUS   " X45        U" X55        U R                  XT5        M\     g )Nc                     U [         R                  :  a  U [         R                  -
  US'   g U [        R                  -   US'   g Nr   )r   internal_error	not_foundr   circlexr   s     r   r   #EnumTest.test_int_coerce.<locals>.fJ   s6    <...\333AU\\)Ar   i,  i  i&  r   r!   r#   )r   r$   r&   r'   r   r)   r*   r+   r   r,   rJ   r-   r.   s         r   test_int_coerceEnumTest.test_int_coerceI   s`    	* ! A((4rxx0CxxzH4L aN##H2 !r   c                     S n[         R                  " U5      nS HZ  n[        R                  " S[        R                  S9nUR                  5       nUS   " X45        U" X55        U R                  XT5        M\     g )Nc                     U [        [        R                  5      :  a   U [        [        R                  5      -
  US'   g U [        [
        R                  5      -   US'   g rE   )r   r   rF   r   rG   r   rH   rI   s     r   r   !EnumTest.test_int_cast.<locals>.fZ   sE    54455U<#9#9::AU5<<00Ar   rL   rM   r!   r#   )r   r$   r&   r'   r   r)   assertEqualrN   s         r   test_int_castEnumTest.test_int_castY   s`    	1 ! A((4rxx0CxxzH4L aNX+ !r   z$ufuncs are unsupported on simulator.c                 "   S n[        SSS9" U5      n[        R                  " / SQ[        R                  S9n[        R                  " U Vs/ s H
  oA" U5      PM     sn[        R                  S9nU" U5      nU R	                  XV5        g s  snf )Nc                 \    U [         R                  :w  a	  [         S   $ [         R                  $ )NrF   )r   rG   dummy)rJ   s    r   r   "EnumTest.test_vectorize.<locals>.fk   s(    L***#$455#)))r   zint64(int64)r   )target)r     i  r\   r!   )r   r&   arrayint64r*   )r+   r   	cuda_funcarrrJ   r.   r-   s          r   test_vectorizeEnumTest.test_vectorizei   sr    	* nV<Q?	hh):883/3aQqT3/rxx@n. 0s   Br   N)__name__
__module____qualname____firstlineno__r   r3   r4   r   EARTHVENUSMARSr   rH   r   twor%   r/   r8   rA   rO   rU   r
   ra   __static_attributes__r   r   r   r   r      s     
EII	EKK 	v||$	v{{#	+//0E3// 3 ,  ;</ =/r   r   __main__)__doc__numpyr&   numbar   r   r   r   r   numba.cuda.testingr   r	   r
   numba.tests.enum_usecasesr   r   r   r   r   r   rc   mainr   r   r   <module>rs      sO      ' ' F F b/| b/J zMMO r   