U
    Hvf5                     @   s   U d Z ddlmZ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d	eed
dd Zdd ZdS )z3Test how the ufuncs in special handle nan inputs.

    )CallableDictN)assert_array_equalassert_suppress_warningsKNOWNFAILURESPOSTPROCESSINGc                  C   s   g } g }t tjD ]r}tj| }t|tjs.qt|}|d krV| | || qt	j
jd|d}| t	j||d || q| |fS )NF)runreason)Zmarks)sortedsc__dict__
isinstancenpZufuncr   getappendpytestmarkZxfailparam)ZufuncsZufunc_namesnameobjmsgZfail r   G/tmp/pip-unpacked-wheel-96ln3f52/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 5 Q R X W n  tk
rj   Y W 5 Q R  d S X W 5 Q R X | tkrt|  | }d	|}t
t |d|d d S )N-floating point number truncated to an integerzgot {} instead of nanT)err_msg)r   nanZninr   filterRuntimeWarningDeprecationWarning	TypeErrorr   formatr   isnan)r   argssupresr   r   r   r   test_nan_inputs&   s    

r)   c               	   C   s@   t  0} | td ttjdd}tt| W 5 Q R X d S )Nr      g      ?)	r   r    r!   r   Zbdtrcr   r   r   r%   )r'   r(   r   r   r   test_legacy_cast;   s    r+   )__doc__typingr   r   Znumpyr   Znumpy.testingr   r   r   r   Zscipy.specialspecialr   r   str__annotations__r   r   ZUFUNCSZUFUNC_NAMESr   Zparametrizer)   r+   r   r   r   r   <module>   s   

