
    8`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j        d	d          ed
Zej                            de                                e                                          dededdfd            Zej                            de                                e                                          dededdfd            Z ej                            de                                e                                          dededdfd            Z!ej                            de                                e                                          dededdfd            Z"ddZ#ej$         e
j%        d          fej&         e
j%        d          fej'        dgfdZ(e)e*e+ee         e,f         f         e-d<   ej                            de(.                                e(                                           G d d                      Z/dS )z)Test the runtime usage of `numpy.typing`.    )Any
NamedTupleUnionget_args
get_originget_type_hintsNc                   D    e Zd ZU eed<   eedf         ed<   edz  ed<   dS )TypeTuptyp.argsNorigin)__name__
__module____qualname__type__annotations__tuple     [/root/collector_daemon/venv/lib/python3.11/site-packages/numpy/typing/tests/test_runtime.pyr
   r
      s@         	III
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                 P    |j         |j        }}t          |          }||k    sJ dS )zTest `typing.get_args`.N)r   r   r   r"   r#   r   refouts        r   test_get_argsr(   0   s-     wC
3--C#::::::r   c                 P    |j         |j        }}t          |          }||k    sJ dS )zTest `typing.get_origin`.N)r   r   r   r%   s        r   test_get_originr*   8   s-     w
C
S//C#::::::r   c                 v    |j         }d|ddfd}t          |          }|t          d          d}||k    sJ dS )zTest `typing.get_type_hints`.ar   Nc                     d S 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   @   sR     'C""""""


CtDzz
*
*C#::::::r   c                     d|  |j         }}d|ddfd}t          |          }t          t          t	          |                     t          d          d}||k    sJ dS )zATest `typing.get_type_hints` with string-representation of types.znpt.r,   r   Nc                     d S 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   sl     !$==#'SG&&D&&&&


CSYY''4::
>
>C#::::::r   c                  z    t                                           } t          t          j                  }| |k    sJ dS )zCTest that ``TYPES.keys()`` and ``numpy.typing.__all__`` are synced.N)TYPESkeyssetr6   __all__)r<   r&   s     r   	test_keysr?   X   s/    ::<<D
ck

C3;;;;;;r   
      )_SupportsArray_SupportsArrayFunc_NestedSequence	PROTOCOLSzcls,objc                   N    e Zd Zdee         deddfdZdee         deddfdZdS )TestRuntimeProtocolclsobjr   Nc                 N    t          ||          sJ t          d |          rJ d S r.   )
isinstanceselfrH   rI   s      r   test_isinstancez#TestRuntimeProtocol.test_isinstanceh   s4    #s#####dC(((((((r   c                     t          t          |          |          sJ t          t          d           |          rJ d S r.   )
issubclassr   rL   s      r   test_issubclassz#TestRuntimeProtocol.test_issubclassl   s@    $s))S)))))d4jj#.......r   )r   r   r   r   r   objectrN   rQ   r   r   r   rG   rG   f   sn        )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 & & & &
 WS[#+"6
CC
 CM**CM**3 
 CM**CM**3 
 b$//	 	  U[[]]

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

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

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

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