a
    ³ÐOc#  ã                   @   sl   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d„ Zd	d
„ Zdd„ ZdS )é    )Úgetfullargspec)Úassert_raisesé   )ÚasarrayÚ_elementwise_functions)Úbitwise_left_shiftÚbitwise_right_shift)Ú_dtype_categoriesÚ_boolean_dtypesÚ_floating_dtypesÚ_integer_dtypesc                 C   s   t t| ƒjƒS ©N)Úlenr   Úargs)Úfunc© r   úg/var/www/html/gsl.tools/lib/python3.9/site-packages/numpy/array_api/tests/test_elementwise_functions.pyÚnargs   s    r   c               9      s  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dddddddddddddddddddddddœ8} dd	„ }|ƒ D ]Š‰|   ¡ D ]|\}}t| }tt|ƒ‰ tˆ ƒd
krî|ƒ D ].‰ˆj|vsÔˆj|vr¼tt‡ ‡‡fdd„ƒ q¼q�ˆj|vr�tt‡ ‡fdd„ƒ q�q„d S )NÚnumericzfloating-pointzinteger or booleanÚintegerÚallÚboolean)8ÚabsÚacosÚacoshÚaddÚasinÚasinhÚatanÚatan2ÚatanhZbitwise_andZbitwise_invertr   Z
bitwise_orr   Zbitwise_xorÚceilÚcosÚcoshÚdivideÚequalÚexpÚexpm1ÚfloorZfloor_divideZgreaterZgreater_equalÚisfiniteÚisinfÚisnanZlessZ
less_equalÚlogZ	logaddexpÚlog10Úlog1pÚlog2Úlogical_andZlogical_notÚ
logical_orÚlogical_xorÚmultiplyÚnegativeÚ	not_equalZpositiveÚpowÚ	remainderÚroundÚsignÚsinÚsinhÚsqrtZsquareÚsubtractÚtanÚtanhÚtruncc                  s   sL   t D ]} td| d�V  qtD ]} td| d�V  qtD ]} td| d�V  q4d S )Né   )ÚdtypeFg      ð?)r   r   r
   r   )Údr   r   r   Ú_array_valsS   s    z(test_function_types.<locals>._array_valsr   c                      s
   ˆ ˆˆƒS r   r   r   ©r   ÚxÚyr   r   Ú<lambda>b   ó    z%test_function_types.<locals>.<lambda>c                      s   ˆ ˆƒS r   r   r   )r   rF   r   r   rH   e   rI   )Úitemsr	   Úgetattrr   r   rB   r   Ú	TypeError)Z elementwise_function_input_typesrD   Ú	func_nameÚtypesZdtypesr   rE   r   Útest_function_types   sˆ    È;



rO   c                   C   s    t tdd„ ƒ t tdd„ ƒ d S )Nc                   S   s   t tddgƒtddgƒƒS ©NrA   éÿÿÿÿ)r   r   r   r   r   r   rH   k   rI   z*test_bitwise_shift_error.<locals>.<lambda>c                   S   s   t tddgƒtddgƒƒS rP   )r   r   r   r   r   r   rH   n   rI   )r   Ú
ValueErrorr   r   r   r   Útest_bitwise_shift_errorh   s    ÿÿrS   N)Úinspectr   Znumpy.testingr   Ú r   r   r   r   Z_dtypesr	   r
   r   r   r   rO   rS   r   r   r   r   Ú<module>   s   U