
    Dg                     h    d dl mZ d dlmZ ddlmZmZ ddlmZmZ ddl	m
Z
mZmZmZ d Zd Zd	 Zd
S )    )getfullargspec)assert_raises   )asarray_elementwise_functions)bitwise_left_shiftbitwise_right_shift)_dtype_categories_boolean_dtypes_floating_dtypes_integer_dtypesc                 D    t          t          |           j                  S N)lenr   args)funcs    e/var/www/sysmax/venv/lib/python3.11/site-packages/numpy/array_api/tests/test_elementwise_functions.pynargsr      s    ~d##()))    c            
         i ddddddddddddd	dd
dddddddddddddddddddi ddddddddddddd dd!dd"dd#dd$dd%dd&dd'dd(dd)dd*di d+dd,dd-dd.dd/d0d1d0d2d0d3d0d4dd5dd6dd7dd8dd9dd:dd;dd<dddddddddd=} d> } |            D ]|                                  D ]\  }}t          |         }t          t          |          t	                    d?k    r: |            D ].j        |vs	j        |vrt          t          fd@           /tj        |vrt          t          fdA           d S )BNabsnumericacoszfloating-pointacoshaddasinasinhatanatan2zreal floating-pointatanhbitwise_andzinteger or booleanbitwise_invertr   integer
bitwise_orr	   bitwise_xorceilzreal numericconjzcomplex floating-pointcoscoshdivideequalallexpexpm1floorfloor_dividegreatergreater_equalimagisfiniteisinfisnanless
less_equallog	logaddexplog10log1plog2logical_andbooleanlogical_not
logical_orlogical_xormultiplynegative	not_equalpositivepowreal	remainderroundsign)sinsinhsqrtsquaresubtracttantanhtruncc               3      K   t           D ]} t          d|           V  t          D ]} t          d|           V  t          D ]} t          d|           V  d S )N   )dtypeFg      ?)r   r   r   r   )ds    r   _array_valsz(test_function_types.<locals>._array_valsV   s        	& 	&A!1%%%%%%%  	* 	*A%q)))))))! 	( 	(A#Q'''''''	( 	(r   r   c                                  S r    )r   xys   r   <lambda>z%test_function_types.<locals>.<lambda>e   s    a r   c                                  S r   rZ   )r   r[   s   r   r]   z%test_function_types.<locals>.<lambda>h   s    TT!WW r   )itemsr
   getattrr   r   rV   r   	TypeError) elementwise_function_input_typesrX   	func_nametypesdtypesr   r[   r\   s        @@@r   test_function_typesrf      s   
<(y<( <( 	!<( 	y	<(
 	 <( 	!<( 	 <( 	&<( 	!<( 	+<( 	.<( 	i<( 	*<( 	y<( 	+<(  	!<(" 	(#<( <($ 	%<(& 	 '<(( 	")<(* 	+<(, 	-<(. 	!/<(0 	1<(2 	3<(4 	>5<(6 	7<(8 	(9<(: 	I;<(< 	=<(> 	?<(@ 	A<(B 	nC<(D 	E<( <( <(F 	*G<(H 	!I<(J 	!K<(L 	 M<(N 	yO<(P 	yQ<(R 	iS<(T 	yU<(V 	IW<(X 	IY<(Z 	U[<(\ 	I]<(^ 	y_<(` 	(a<(b 	^c<(d 	e<(f 		g<( <(h     w<( <( <($|( ( ( []] 
> 
> @ F F H H 		> 		>Iu&u-F19==DT{{a$ E EAwf,,v0E0E%i1C1C1C1C1C1CDDDE 7&((!)_____===		>
> 
>r   c                  ^    t          t          d            t          t          d            d S )Nc                  ^    t          t          ddg          t          ddg                    S NrU   )r   r   rZ   r   r   r]   z*test_bitwise_shift_error.<locals>.<lambda>n   s'    .w1vB@P@PQQ r   c                  ^    t          t          ddg          t          ddg                    S ri   )r	   r   rZ   r   r   r]   z*test_bitwise_shift_error.<locals>.<lambda>q   s'    /A!RAQAQRR r   )r   
ValueErrorrZ   r   r   test_bitwise_shift_errorrm   k   sD    QQ   RR    r   N)inspectr   numpy.testingr    r   r   r   r	   _dtypesr
   r   r   r   r   rf   rm   rZ   r   r   <module>rr      s    " " " " " " ' ' ' ' ' ' . . . . . . . . L L L L L L L L           * * *U> U> U>p    r   