
    C>qj*                        U d Z ddlmZ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j%                  ej&                        ej%                  ej(                         eej*                  dd      ej%                  ej,                        dZe	j0                  j3                  dej5                         ej7                         	      d
ededdfd       Ze	j0                  j3                  dej5                         ej7                         	      d
ededdfd       Ze	j0                  j3                  dej5                         ej7                         	      d
ededdfd       Ze	j0                  j3                  dej5                         ej7                         	      d
ededdfd       Z ddZ!ejD                   ejF                  d      fejH                   ejF                  d      fejJ                  dgfdZ&e'e(e)ee   e*f   f   e+d<   e	j0                  j3                  de&jY                         e&j7                         	       G d d             Z-y)z)Test the runtime usage of `numpy.typing`.    )Any
NamedTupleSelfTypeAliasTypeget_args
get_originget_type_hintsNc                   V    e Zd ZU eed<   eedf   ed<   edz  ed<   ededefd       Z	y)	TypeTuptyp.argsNoriginaliasreturnc                T    |j                   } | |t        |      t        |            S )N)r   r   r   )	__value__r   r   )clsr   tps      ^/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/numpy/typing/tests/test_runtime.pyfrom_type_aliaszTypeTup.from_type_alias   s$     __rZ^DD    )
__name__
__module____qualname__type__annotations__tupleclassmethodr   r   r    r   r   r   r      sD    	I
c	
4KEM E E Er   r   r   )	ArrayLike	DTypeLikeNBitBaseNDArrayzname,tup)idsnametupr   c                 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-   1   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>.func>       r   r/   r   )r   r	   r   )r%   r&   r   r3   r*   r)   s         r   test_get_type_hintsr6   9   s>     ''C"""

CtDz
*C#::r   c                     d|  |j                   }}d|ddfd}t        |      }t        t        t	        |             t        d      d}||k(  sJ y)zATest `typing.get_type_hints` with string-representation of types.znpt.r/   r   Nc                      y r1   r   r2   s    r   r3   z%test_get_type_hints_str.<locals>.funcJ   r4   r   r5   )r   r	   getattrnptstrr   )r%   r&   typ_strr   r3   r*   r)   s          r   test_get_type_hints_strr=   E   sS     $=#''SG&&D&

CSY'4:
>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setr:   __all__)r@   r)   s     r   	test_keysrC   Q   s'    ::<D
ckk
C3;;r   
      )_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)TestRuntimeProtocolr   objr   Nc                 <    t        ||      sJ t        d |      rJ y r1   )
isinstanceselfr   rL   s      r   test_isinstancez#TestRuntimeProtocol.test_isinstancea   s%    #s###dC((((r   c                 `    t        t        |      |      sJ t        t        d       |      rJ y r1   )
issubclassr   rO   s      r   test_issubclassz#TestRuntimeProtocol.test_issubclasse   s-    $s)S)))d4j#....r   )r   r   r   r   r   objectrQ   rT   r   r   r   rK   rK   _   s>    )49 )6 )d )/49 /6 /d /r   rK   )r   N).__doc__typingr   r   r   r   r   r   r	   pytestnumpynpnumpy._typing_typing_nptnumpy.typingr:   r   r   r    r!   r"   r#   r?   markparametrizeitemsr@   r   r+   r-   r6   r=   rC   rF   arangerG   rH   rI   dictr;   r   rU   r   valuesrK   r   r   r   <module>re      s_   /      
Ej 
E ((7((7b$/&&s{{3		 U[[]

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

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

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

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