
    fochg                     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     n/mnt/ACDE16A4DE16673C/PROJECTS/MIS_PORTAL/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       r   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   r,   r   r-   r.   )r   r   typ_strr   r+   r"   r!   s          r   test_get_type_hints_strr3   ?   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__)r6   r!   s     r   	test_keysr:   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selfrD   rE   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   rH   s      r   test_issubclassz#TestRuntimeProtocol.test_issubclass`   sL    $%%%LLN $s)S)))d4j#....r   )r   r   r   r   r   objectrJ   rP   r   r   r   rC   rC   Z   s>    )49 )6 )d )/49 /6 /d /r   rC   )r   N)1__doc__typingr   r   r   r   r   r   rM   numpynpnumpy._typing_typingrL   numpy.typingr8   r
   r   __args__ndarray
NDArrayTupr   r   r   r5   markparametrizeitemsr6   r   r#   r%   r/   r3   r:   r=   int64r>   aranger?   r@   rA   dictstrr   rQ   r   valuesrC   r   r   r   <module>rd      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   