
    Bvhg                     X   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 eej"                  ej"                  j$                  e
j&                        Z eej*                  ej*                  j$                  e       eej,                  ej,                  j$                  e       eej.                  dd      edZej2                  j5                  dej7                         ej9                         	      d
ededdfd       Zej2                  j5                  dej7                         ej9                         	      d
ededdfd       Zej2                  j5                  dej7                         ej9                         	      d
ededdfd       Z ej2                  j5                  dej7                         ej9                         	      d
ededdfd       Z!ddZ"ejF                   e
jH                  d      fejJ                   e
jL                  d      fejN                   e
jL                  d      fejP                  dgfdZ)e*e+e,ee   e-f   f   e.d<   ej2                  j5                  de)j_                         e)j9                         	       G d d             Z0y)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     I/RAG/venv/lib/python3.12/site-packages/numpy/typing/tests/test_runtime.pyr
   r
      s     	I
c	
4Kr   r
   r   )	ArrayLike	DTypeLikeNBitBaseNDArrayzname,tup)idsnametupreturnc                 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#   #   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                 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>.func8   s    dr   r'   r   r   r   r   )r   r   r   r+   r"   r!   s         r   test_get_type_hintsr.   3   s>     ''C"""

CtDz
*C#::r   c                 v    d|  |j                   }}d|ddfd}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   r+   z%test_get_type_hints_str.<locals>.funcD   s    $r   r,   r-   )r   r   typ_strr   r+   r"   r!   s          r   test_get_type_hints_strr2   ?   sH     $=#''SG&&D&

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__)r5   r!   s     r   	test_keysr9   K   s'    ::<D
ckk
C3;;r      
   )_SupportsDType_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selfrC   rD   s      r   test_isinstancez#TestRuntimeProtocol.test_isinstance\   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   rG   s      r   test_issubclassz#TestRuntimeProtocol.test_issubclass`   sL    $%%%LLN $s)S)))d4j#....r   )r   r   r   r   r   objectrI   rO   r   r   r   rB   rB   Z   s>    )49 )6 )d )/49 /6 /d /r   rB   )r   N)1__doc__typingr   r   r   r   r   r   rL   numpynpnumpy._typing_typingrK   numpy.typingr7   r
   r   __args__ndarray
NDArrayTupr   r   r   r4   markparametrizeitemsr5   r   r#   r%   r.   r2   r9   r<   int64r=   aranger>   r?   r@   dictstrr   rP   r   valuesrB   r   r   r   <module>rc      s   /     j  S[[#++"6"6

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

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

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

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

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