
    Pi                     P   d dl Z 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d
Zg dZd Zd Zd Zej                            d          ej                            e d          d                         Zd Zd Zd Zd Zd Zd Zd Zd Z dS )     N)assert_assert_equalHAS_REFCOUNT)raises)_sf_error_test_function                        	   
   )
singular	underflowoverflowslowloss	no_resultdomainargothermemory)ignorewarnraisec                    t          j        |t          j        d                    }|dk    r>t          j        t
          j                  5   | |  d d d            d S # 1 swxY w Y   d S |dk    r9t          t
          j                  5   | |  d d d            d S # 1 swxY w Y   d S t          j
                    5  t          j        d            | |  d d d            d S # 1 swxY w Y   d S )Nlong)dtyper   r   error)npasarrayr!   pytestwarnsscSpecialFunctionWarningassert_raisesSpecialFunctionErrorwarningscatch_warningssimplefilter)funargsactions      u/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/special/tests/test_sf_error.py_check_actionr2   !   s    :d"(6"2"2333D\"344 	 	CJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 		7		2233 	 	CJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $&& 	 	!'***CJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   A  A$'A$BB#&B#?C&&C*-C*c                      t          j                    } |                                 D ]1\  }}t          |t          v            t          |t
          v            2d S )N)r'   geterritemsr   _sf_error_code_map_sf_error_actions)errkeyvalues      r1   test_geterrr;   2   s]    
)++Ciikk , ,
U))*****++++, ,    c                  B   t          j                    } 	 t                                          D ]\  }}t          D ]}t          j                    }t          j        di ||i}t          ||k               t          j                    }t          ||         |k               |                    |           |                    |           t          ||k               t          t          |f|           	 t          j        di |  d S # t          j        di |  w xY wN )
r'   r4   r6   r5   r7   seterrr   popr2   r   )	entry_errcategory
error_coder0   geterr_olderrseterr_olderrnewerrs          r1   test_seterrrH   9   s7   	I$6$<$<$>$> 
	N 
	N Hj+ 	N 	N "	 "	 ? ?Xv,> ? ?6777x(F2333!!(+++

8$$$/0005
}fMMMM	N
	N 		I	Is   C"D Dz3module refcounts are not stable in multiple threads)reasonzPython lacks refcountsc                  l   t          j        t                    } t          j        d          5  t	          j        t          j        d          5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t                    }|| k    sJ d S )Nr   allzdomain errormatchg       @)sysgetrefcountr'   errstater%   r   r*   ndtri)refcount_beforerefcount_afters     r1   test_sf_error_special_refcountrU   K   s    ob))O		!	!	!  ]22.III 	 	HSMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               _R((N_,,,,,,s5   !BA1%B1A5	5B8A5	9BBBc                  R   t          j                    } t          j        d          5  t          t           j                  5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          | t          j                               d S Nr   r   r   )r'   r4   rQ   r)   r*   loggammar   olderrs    r1   test_errstate_pyx_basicr\   Y   s   Y[[F	g	&	&	&  2233 	 	KNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               %%%%%5   A;A$A;$A(	(A;+A(	,A;;A?A?c                  R   t          j                    } t          j        d          5  t          t           j                  5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          | t          j                               d S )Nr   )r   )r'   r4   rQ   r)   r*   spencer   rZ   s    r1   test_errstate_c_basicra   a   s   Y[[F	G	$	$	$  2233 	 	IbMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               %%%%%r]   c                  R   t          j                    } t          j        d          5  t          t           j                  5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          | t          j                               d S )Nr   )r   i)r'   r4   rQ   r)   r*   wrightomegar   rZ   s    r1   test_errstate_cpp_basicrd   i   s	   Y[[F	w	'	'	' " "2233 	" 	"N5!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"" " " " " " " " " " " " " " " %%%%%r]   c                  T   t          j                    } t          j        d          5  t          t           j                  5  t          j        dd           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          | t          j                               d S )Nr   rX   r   r   )r'   r4   rQ   r)   r*   lambertwr   rZ   s    r1   test_errstate_cpp_scipy_specialrg   q   s   Y[[F	g	&	&	&  2233 	 	K1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               %%%%%s5   A<A%A<%A)	)A<,A)	-A<<B B c                  R   t          j                    } t          j        d          5  t          t           j                  5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          | t          j                               d S rW   )r'   r4   rQ   r)   r*   gammalnr   rZ   s    r1   %test_errstate_cpp_alt_ufunc_machineryrj   y   s   Y[[F	g	&	&	&  2233 	 	JqMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               %%%%%r]   c                  D   t                                           D ]\  } }t          D ]x}t          j                    }t          j        di | |i5  t          t          |f|           d d d            n# 1 swxY w Y   t          |t          j                               yd S r>   )	r6   r5   r7   r'   r4   rQ   r2   r   r   )rC   rD   r0   r[   s       r1   test_errstaterl      s     2 8 8 : : . .*' 	. 	.FY[[F22&122 N N5
}fMMMN N N N N N N N N N N N N N N----		.. .s   A22A69A6c                  |   t          j                    } t          j        dd          5  t          j        d           t	          t           j                  5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          | t          j                               d S )Nr   r   )rL   r   r   g      )r'   r4   rQ   ri   r)   r*   r`   r   rZ   s    r1   test_errstate_all_but_onern      s   Y[[F	8	4	4	4  

12233 	 	IdOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               %%%%%s5   .BA9-B9A=	=B A=	BBBc                      t          j        t          j        d          5  t          j        d          5  t          j        dd           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   rM   r   rK   r
   ghY"*)r%   r   r'   r*   rQ   ynr?   r<   r1   test_check_overflow_messagerq      s     
r.j	A	A	A  [W%%% 	 	E!V	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s4   A1AA1A	A1 A	!A11A58A5)!rO   r+   numpyr#   numpy.testingr   r   r   r%   r   r)   scipy.specialspecialr'   scipy.special._ufuncsr   r6   r7   r2   r;   rH   markthread_unsafeskipifrU   r\   ra   rd   rg   rj   rl   rn   rq   r?   r<   r1   <module>rz      s   



      = = = = = = = = = =  * * * * * *       9 9 9 9 9 9        ", , ,  $ "WXX$-EFF	- 	- GF YX	-& & && & && & && & && & &. . .& & &    r<   