
    Bwg                       U d Z ddlmZ ddlmZmZmZmZmZm	Z	 ddl
Z
ddlZddlmZ ddlmZ  G d de      Z eej&                  ej&                  j(                  ej*                        Z eej.                  ej.                  j(                  e       eej0                  ej0                  j(                  e       eej2                  dd      edZe
j6                  j9                  d	ej;                         ej=                         
      dd       Ze
j6                  j9                  d	ej;                         ej=                         
      dd       Z e
j6                  j9                  d	ej;                         ej=                         
      dd       Z!e
j6                  j9                  d	ej;                         ej=                         
      dd       Z"ddZ#ejH                   ejJ                  d      fejL                   ejN                  d      fejP                   ejN                  d      fejR                  dgfdZ*de+d<   e
j6                  j9                  de*jY                         e*j=                         
       G d d             Z-y)z)Test the runtime usage of `numpy.typing`.    )annotations)get_type_hintsUnion
NamedTupleget_args
get_originAnyNc                  ,    e Zd ZU ded<   ded<   ded<   y)TypeTuptypetypztuple[type, ...]argszNone | typeoriginN)__name__
__module____qualname____annotations__     V/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/typing/tests/test_runtime.pyr   r      s    	I
r   r   r   )	ArrayLike	DTypeLikeNBitBaseNDArrayzname,tup)idsc                X    |j                   |j                  }}t        |      }||k(  sJ y)zTest `typing.get_args`.N)r   r   r   nametupr   refouts        r   test_get_argsr"   $   s*     wwC
3-C#::r   c                X    |j                   |j                  }}t        |      }||k(  sJ y)zTest `typing.get_origin`.N)r   r   r   r   s        r   test_get_originr$   ,   s*     ww

C
S/C#::r   c                v    |j                   }d }|dd|_        t        |      }|t        d      d}||k(  sJ y)zTest `typing.get_type_hints`.c                     y Nr   as    r   funcz!test_get_type_hints.<locals>.func;       r   Nr)   returnr   r   r   r   )r   r   r   r*   r!   r    s         r   test_get_type_hintsr/   4   sC     ''C !$5D

CtDz
*C#::r   c                    d|  |j                   }}d }|dd|_        t        |      }|t        d      d}||k(  sJ y)zATest `typing.get_type_hints` with string-representation of types.znpt.c                     y r'   r   r(   s    r   r*   z%test_get_type_hints_str.<locals>.funcJ   r+   r   Nr,   r.   )r   r   typ_strr   r*   r!   r    s          r   test_get_type_hints_strr3   C   sM     $=#''SG !(D9D

CtDz
*C#::r   c                 l    t         j                         } t        t        j                        }| |k(  sJ y)zCTest that ``TYPES.keys()`` and ``numpy.typing.__all__`` are synced.N)TYPESkeyssetnpt__all__)r6   r    s     r   	test_keysr:   R   s'    ::<D
ckk
C3;;r      
   )_SupportsDType_SupportsArray_SupportsArrayFunc_NestedSequencez#dict[str, tuple[type[Any], object]]	PROTOCOLSzcls,objc                      e Zd ZddZddZy)TestRuntimeProtocolc                <    t        ||      sJ t        d |      rJ y r'   )
isinstanceselfclsobjs      r   test_isinstancez#TestRuntimeProtocol.test_isinstancec   s%    #s###dC((((r   c                    |t         j                  u rt        j                  d       t	        t        |      |      sJ t	        t        d       |      rJ y )Nz<Protocols with non-method members don't support issubclass())_nptr=   pytestxfail
issubclassr   rF   s      r   test_issubclassz#TestRuntimeProtocol.test_issubclassg   sL    $%%%LLN $s)S)))d4j#....r   N)rH   z	type[Any]rI   objectr-   None)r   r   r   rJ   rP   r   r   r   rC   rC   a   s    )/r   rC   )r   r   r   r   r-   rR   )r-   rR   ).__doc__
__future__r   typingr   r   r   r   r   r	   rM   numpynpnumpy.typingr8   numpy._typing_typingrL   r   r   __args__ndarray
NDArrayTupr   r   r   r5   markparametrizeitemsr6   r"   r$   r/   r3   r:   r=   int64r>   aranger?   r@   rA   r   valuesrC   r   r   r   <module>rd      s+   / "     j  S[[#++"6"6

C
 (>(>F(>(>Fb$/		 U[[]

E F U[[]

E F U[[]

E F U[[]

E F **HBHHQK8**IBIIbM:22IBIIbMB,,qc2	2	.  I$4$4$6INN<LM/ / N/r   