
    ij                     ^   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     L/DATA/.local/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   s    dr   r,   r   )r   r   r   )r"   r#   r   r0   r'   r&   s         r   test_get_type_hintsr2   @   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   s    $r   r1   )r   r   r   nptstrr   )r"   r#   typ_strr   r0   r'   r&   s          r   test_get_type_hints_strr8   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setr5   __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selfrG   rH   s      r   test_isinstancez#TestRuntimeProtocol.test_isinstanceh   s%    #s###dC((((r   c                 `    t        t        |      |      sJ t        t        d       |      rJ y r.   )
issubclassr   rK   s      r   test_issubclassz#TestRuntimeProtocol.test_issubclassl   s-    $s)S)))d4j#....r   )r   r   r   r   r   objectrM   rP   r   r   r   rF   rF   f   s>    )49 )6 )d )/49 /6 /d /r   rF   )r   N)0__doc__typingr   r   r   r   r   r   pytestnumpynpnumpy._typing_typing_nptnumpy.typingr5   r
   r   r    __args__ndarray
NDArrayTupr   r   r   r:   markparametrizeitemsr;   r   r(   r*   r2   r8   r>   rA   arangerB   rC   rD   dictr6   r   rQ   r   valuesrF   r   r   r   <module>rd      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   