o
    Ö­jB  ã                   @   sª   U d Z ddlmZ ddlZddlmZmZmZ ddl	Z	ddl
mZ i Zeeef ed< i Zeeef ed< dd„ Zeƒ \ZZe	jje	jjd	eed
�dd„ ƒƒZdd„ ZdS )z3Test how the ufuncs in special handle nan inputs.

é    )ÚCallableN)Úassert_array_equalÚassert_Úsuppress_warningsÚKNOWNFAILURESÚPOSTPROCESSINGc                  C   sŽ   g } g }t tjƒD ]9}tj| }t|tjƒsq	t |¡}|d u r+|  |¡ | |¡ q	t	j
jd|d�}|  t	j||d�¡ | |¡ q	| |fS )NF)ÚrunÚreason)Úmarks)ÚsortedÚscÚ__dict__Ú
isinstanceÚnpÚufuncr   ÚgetÚappendÚpytestÚmarkÚxfailÚparam)ÚufuncsÚufunc_namesÚnameÚobjÚmsgÚfail© r   ú`/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/special/tests/test_nan_inputs.pyÚ_get_ufuncs   s   


r   Úfunc)Úidsc              	   C   sÖ   t jf| j }tƒ �=}| td¡ ztƒ �}| t¡ | |Ž }W d   ƒ n1 s)w   Y  W n ty?   Y W d   ƒ d S w W d   ƒ n1 sJw   Y  | tv rYt|  |Ž }d|› d�}t	t  
|¡d|d� d S )Nú-floating point number truncated to an integerzgot z instead of nanT)Úerr_msg)r   ÚnanÚninr   ÚfilterÚRuntimeWarningÚDeprecationWarningÚ	TypeErrorr   r   Úisnan)r    ÚargsÚsupÚresr   r   r   r   Útest_nan_inputs&   s*   ÿ

þ€ö€ør.   c                  C   sV   t ƒ �} |  td¡ t tjdd¡}tt |¡ƒ W d   ƒ d S 1 s$w   Y  d S )Nr"   é   g      à?)	r   r&   r'   r   Úbdtrcr   r$   r   r*   )r,   r-   r   r   r   Útest_legacy_cast<   s   ÿ"ür1   )Ú__doc__Útypingr   Únumpyr   Únumpy.testingr   r   r   r   Úscipy.specialÚspecialr   r   ÚdictÚstrÚ__annotations__r   r   ÚUFUNCSÚUFUNC_NAMESr   Úthread_unsafeÚparametrizer.   r1   r   r   r   r   Ú<module>   s    
