
    N_i                     ^   U d 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dedefdZ eej$                  ej$                  j&                  e
j(                        Z e eej,                         eej,                        j&                  e       e eej.                         eej.                        j&                  e       eej0                  d	d      ed
Zej4                  j7                  dej9                         ej;                               dededdfd       Zej4                  j7                  dej9                         ej;                               dededdfd       Z ej4                  j7                  dej9                         ej;                               dededdfd       Z!ej4                  j7                  dej9                         ej;                               dededdfd       Z"ddZ#ejH                   e
jJ                  d      fejL                   e
jJ                  d      fejN                  dgfdZ(e)e*e+ee   e,f   f   e-d<   ej4                  j7                  de(j]                         e(j;                                G d d             Z/y)z)Test the runtime usage of `numpy.typing`.    )Any
NamedTupleUnionget_args
get_originget_type_hintsNc                   <    e Zd ZU eed<   eedf   ed<   edz  ed<   y)TypeTuptyp.argsNorigin)__name__
__module____qualname__type__annotations__tuple     ]/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/numpy/typing/tests/test_runtime.pyr
   r
      s     	I
c	
4Kr   r
   treturnc                     t        | d|       S )N	__value__)getattr)r   s    r   _flatten_type_aliasr      s    1k1%%r   r   )	ArrayLike	DTypeLikeNBitBaseNDArrayzname,tup)idsnametupc                 X    |j                   |j                  }}t        |      }||k(  sJ y)zTest `typing.get_args`.N)r   r   r   r"   r#   r   refouts        r   test_get_argsr(   0   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*   8   s*     ww

C
S/C#::r   c                 l    |j                   }d|ddfd}t        |      }|t        d      d}||k(  sJ y)zTest `typing.get_type_hints`.ar   Nc                      y Nr   r,   s    r   funcz!test_get_type_hints.<locals>.funcE       r   r,   r   )r   r   r   )r"   r#   r   r0   r'   r&   s         r   test_get_type_hintsr3   @   s>     ''C"""

CtDz
*C#::r   c                     d|  |j                   }}d|ddfd}t        |      }t        t        t	        |             t        d      d}||k(  sJ y)zATest `typing.get_type_hints` with string-representation of types.znpt.r,   r   Nc                      y r.   r   r/   s    r   r0   z%test_get_type_hints_str.<locals>.funcQ   r1   r   r2   )r   r   r   nptstrr   )r"   r#   typ_strr   r0   r'   r&   s          r   test_get_type_hints_strr9   L   sS     $=#''SG&&D&

CSY'4:
>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setr6   __all__)r<   r&   s     r   	test_keysr?   X   s'    ::<D
ckk
C3;;r   
      )_SupportsArray_SupportsArrayFunc_NestedSequence	PROTOCOLSzcls,objc                   @    e Zd Zdee   deddfdZdee   deddfdZy)TestRuntimeProtocolclsobjr   Nc                 <    t        ||      sJ t        d |      rJ y r.   )
isinstanceselfrH   rI   s      r   test_isinstancez#TestRuntimeProtocol.test_isinstanceh   s%    #s###dC((((r   c                 `    t        t        |      |      sJ t        t        d       |      rJ y r.   )
issubclassr   rL   s      r   test_issubclassz#TestRuntimeProtocol.test_issubclassl   s-    $s)S)))d4j#....r   )r   r   r   r   r   objectrN   rQ   r   r   r   rG   rG   f   s>    )49 )6 )d )/49 /6 /d /r   rG   )r   N)0__doc__typingr   r   r   r   r   r   pytestnumpynpnumpy._typing_typing_nptnumpy.typingr6   r
   r   r    __args__ndarray
NDArrayTupr   r   r   r;   markparametrizeitemsr<   r   r(   r*   r3   r9   r?   rB   arangerC   rD   rE   dictr7   r   rR   r   valuesrG   r   r   r   <module>re      s   /     j &3 &3 &
 S[[#++"6"6

C
 CMM*CMM*33
 CMM*CMM*33
 b$/	  U[[]

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

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

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

E$ W   F **IBIIbM:22IBIIbMB,,qc22	4U49f,--.  I$4$4$6INN<LM/ / N/r   