
    	ig                     R   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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'         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                      Z0d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     W/srv/django_bis/venv311/lib/python3.11/site-packages/numpy/typing/tests/test_runtime.pyr
   r
      s@         	III
c	
4Kr   r
   r   )	ArrayLike	DTypeLikeNBitBaseNDArrayzname,tup)idsnametupreturnc                 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#   #   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%   +   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>.func8         r   r'   r   r   r   r   )r   r   r   r+   r"   r!   s         r   test_get_type_hintsr/   3   sR     'C""""""


CtDzz
*
*C#::::::r   c                     d|  |j         }}d|ddfd}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   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   ?   s\     !$==#'SG&&D&&&&


CtDzz
*
*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setnpt__all__)r6   r!   s     r   	test_keysr:   K   s/    ::<<D
ck

C3;;;;;;r      
   )_SupportsDType_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selfrD   rE   s      r   test_isinstancez#TestRuntimeProtocol.test_isinstance\   s4    #s#####dC(((((((r   c                     |t           j        u rt          j        d           t	          t          |          |          sJ t	          t          d           |          rJ d S )Nz<Protocols with non-method members don't support issubclass())_nptr=   pytestxfail
issubclassr   rH   s      r   test_issubclassz#TestRuntimeProtocol.test_issubclass`   sg    $%%%LN   $s))S)))))d4jj#.......r   )r   r   r   r   r   objectrJ   rP   r   r   r   rC   rC   Z   sn        )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    WS[#+"6
CC
 (>FF(>FF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    *HBHQKK8*IBIbMM:2IBIbMMB,qc2	2 2	4U49f,--.    I$4$4$6$6INN<L<LMM/ / / / / / / NM/ / /r   