
    J/Ph|                        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     V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_enums.pycompare_usecaser      s!    616161A:--    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    Ezr   r   )r%   r&   s   ` r   make_constant_usecaser'   %   s"        r   c                     |r| n|S r   r   )r   r   preds      r   return_usecaser*   +   s    11!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##FFDM55$<@@@@	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% ; ;tg~ffdmUUD\::::;	; 	;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##FF3KK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**
EK6uud|<<<<<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 
EI	EK 	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##FF3KK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##FF3KK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UU3ZZ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    77Nr   Tr9   r   r   r<   )r>   rt   r@   members       r   	test_hashzTestIntEnum.test_hash   sq    	 	 	"T"""5))* 	B 	BF##EE&MM55==AAAA	B 	Br   c                     d }d }d }|||fD ]S} t          d          |          }t          D ]0}|dk    r(|                      ||           ||                     1Td 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)    8Q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    8Q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    7Aq6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;;++EE&MM55==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          lEL)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HMOOOOO r   