a
    Qe                  
   @   s   d dl Z d dlZd dlmZmZmZ d dlZd dlmZ d dl	m
Z d dlmZ ddddd	d
dddd	Zg dZdd Zdd Zdd Zejjedddd Zdd Zdd Zdd Zd d! Zd"d# ZdS )$    N)assert_assert_equalIS_PYPY)raises)_sf_error_test_function                        	   )	singular	underflowZoverflowZslowZlossZ	no_resultdomainargother)ignorewarnraisec                 C   s   |dkr>t tj | |  W d    q1 s20    Y  nv|dkrzttj | |  W d    q1 sn0    Y  n:t " td | |  W d    n1 s0    Y  d S )Nr   r   error)	pytestZwarnsscZSpecialFunctionWarningassert_raisesSpecialFunctionErrorwarningscatch_warningssimplefilter)Zfunargsaction r"   U/var/www/sunrise/env/lib/python3.9/site-packages/scipy/special/tests/test_sf_error.py_check_action   s    ((

r$   c                  C   s6   t  } |  D ] \}}t|tv  t|tv  qd S N)r   geterritemsr   _sf_error_code_map_sf_error_actions)errkeyvaluer"   r"   r#   test_geterr-   s    r-   c               
   C   s   t  } zt D ]\}}tD ]r}t  }t jf i ||i}t||k t  }t|| |k || || t||k tt	|f| qqW t jf i |  nt jf i |  0 d S r%   )
r   r&   r(   r'   r)   Zseterrr   popr$   r   )Z	entry_errcategory
error_coder!   Zgeterr_olderrZseterr_olderrZnewerrr"   r"   r#   test_seterr4   s    

r1   zTest not meaningful on PyPy)reasonc               	   C   s   t t} tjddJ tjtjdd td W d    n1 sH0    Y  W d    n1 sf0    Y  t t}|| ksJ d S )Nr   )allzdomain error)matchg       @)sysgetrefcountr   errstater   r   r   Zndtri)Zrefcount_beforeZrefcount_afterr"   r"   r#   test_sf_error_special_refcountF   s    
F
r8   c               	   C   sz   t  } t jddD tt j t d W d    n1 s@0    Y  W d    n1 s^0    Y  t| t   d S )Nr   )r   r   )r   r&   r7   r   r   Zloggammar   olderrr"   r"   r#   test_errstate_pyx_basicS   s
    Fr;   c               	   C   sz   t  } t jddD tt j t d W d    n1 s@0    Y  W d    n1 s^0    Y  t| t   d S )Nr   )r   )r   r&   r7   r   r   spencer   r9   r"   r"   r#   test_errstate_c_basic[   s
    Fr>   c               	   C   sz   t  } t jddD tt j t d W d    n1 s@0    Y  W d    n1 s^0    Y  t| t   d S )Nr   )r   i)r   r&   r7   r   r   Zwrightomegar   r9   r"   r"   r#   test_errstate_cpp_basicc   s
    Fr?   c               
   C   sx   t  D ]j\} }tD ]\}t }tjf i | |i tt|f| W d    n1 sX0    Y  t|t  qqd S r%   )	r(   r'   r)   r   r&   r7   r$   r   r   )r/   r0   r!   r:   r"   r"   r#   test_errstatek   s    ,r@   c               	   C   s   t  } t jdddN t d tt j t d W d    n1 sL0    Y  W d    n1 sj0    Y  t| t   d S )Nr   r   )r3   r   r   g      )r   r&   r7   Zgammalnr   r   r=   r   r9   r"   r"   r#   test_errstate_all_but_onet   s    
FrA   )r5   r   Znumpy.testingr   r   r   r   r   r   Zscipy.specialZspecialr   Zscipy.special._ufuncsr   r(   r)   r$   r-   r1   markZskipifr8   r;   r>   r?   r@   rA   r"   r"   r"   r#   <module>   s6   
	