o
    i/                     @  s  U d Z ddlmZ ddl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 deZejdkrIeejejjejZneejdd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jd
e e  dd#ddZ!ejjd
e e  dd#ddZ"ejjd
e e  dd#ddZ#ejjd
e e  dd#ddZ$d$ddZ%ej&e'dfej(e)dfej*e)dfej+dgfdZ,de-d< ejjd e,. e,  dG d!d" d"Z/dS )%z)Test the runtime usage of `numpy.typing`.    )annotationsN)get_type_hintsUnion
NamedTupleget_args
get_originAnyc                   @  s&   e Zd ZU ded< ded< ded< dS )TypeTuptypetypztuple[type, ...]argszNone | typeoriginN)__name__
__module____qualname____annotations__ r   r   Z/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/numpy/typing/tests/test_runtime.pyr	      s   
 r	   )   	   r   )	ArrayLike	DTypeLikeNBitBaseNDArrayzname,tup)idsnamer
   tupreturnNonec                 C  &   |j |j}}t|}||ksJ dS )zTest `typing.get_args`.N)r   r   r   r   r   r   refoutr   r   r   test_get_args(      r#   c                 C  r   )zTest `typing.get_origin`.N)r   r   r   r    r   r   r   test_get_origin0   r$   r%   c                 C  s@   |j }dd }|dd|_t|}|tdd}||ksJ dS )zTest `typing.get_type_hints`.c                 S     d S Nr   ar   r   r   func?       z!test_get_type_hints.<locals>.funcNr)   r   r   r   r   r
   )r   r   r   r*   r"   r!   r   r   r   test_get_type_hints8   s   r.   c                 C  sL   d|  |j }}dd }|dd|_t|}|tdd}||ks$J dS )zATest `typing.get_type_hints` with string-representation of types.znpt.c                 S  r&   r'   r   r(   r   r   r   r*   N   r+   z%test_get_type_hints_str.<locals>.funcNr,   r-   )r   r   typ_strr   r*   r"   r!   r   r   r   test_get_type_hints_strG   s   r0   c                  C  s"   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__)r2   r!   r   r   r   	test_keysV   s   
r6      
   )_SupportsDType_SupportsArray_SupportsArrayFunc_NestedSequencez#dict[str, tuple[type[Any], object]]	PROTOCOLSzcls,objc                   @  s    e Zd ZdddZdd	d
ZdS )TestRuntimeProtocolcls	type[Any]objobjectr   r   c                 C  s    t ||sJ t d |rJ d S r'   )
isinstanceselfr?   rA   r   r   r   test_isinstanceg   s   z#TestRuntimeProtocol.test_isinstancec                 C  s<   |t ju r
td tt||sJ ttd |rJ d S )Nz<Protocols with non-method members don't support issubclass())_nptr9   pytestxfail
issubclassr
   rD   r   r   r   test_issubclassk   s   
z#TestRuntimeProtocol.test_issubclassN)r?   r@   rA   rB   r   r   )r   r   r   rF   rK   r   r   r   r   r>   e   s    
r>   )r   r
   r   r	   r   r   )r   r   )0__doc__
__future__r   systypingr   r   r   r   r   r   rH   numpynpnumpy.typingr4   numpy._typing_typingrG   r	   version_infor   __args__ndarray
NDArrayTupr   r   r   r1   markparametrizeitemsr2   r#   r%   r.   r0   r6   r9   int64r:   aranger;   r<   r=   r   valuesr>   r   r   r   r   <module>   sB     	


