
    Џkh                        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ej(                  j*                  d        Zej(                  j*                  ej(                  j/                  e d      d               Zd Zd Zd Zd Zd Zej(                  j*                  d        Zd Zy)    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(  r2t        j                  t
        j                        5   | |  d d d        y |dk(  r(t        t
        j                        5   | |  d d d        y t        j                         5  t        j                  d        | |  d d d        y # 1 sw Y   y xY w# 1 sw Y   y xY w# 1 sw Y   y xY w)Nlong)dtyper   r   error)npasarrayr!   pytestwarnsscSpecialFunctionWarningassert_raisesSpecialFunctionErrorwarningscatch_warningssimplefilter)funargsactions      ]/var/www/teggl/fontify/venv/lib/python3.12/site-packages/scipy/special/tests/test_sf_error.py_check_actionr2   !   s     ::d"((6"23D\\"334 	J	 		7	2223 	J	 	 $$& 	!!'*J	 		 		 		 	s$   C C#CCCC(c                      t        j                         } | j                         D ]'  \  }}t        |t        v        t        |t
        v        ) y )N)r'   geterritemsr   _sf_error_code_map_sf_error_actions)errkeyvalues      r1   test_geterrr;   2   sB    
))+Ciik ,
U))***+,    c                     t        j                         } 	 t        j                         D ]  \  }}t        D ]  }t        j                         }t        j
                  di ||i}t        ||k(         t        j                         }t        ||   |k(         |j                  |       |j                  |       t        ||k(         t        t        |f|         	 t        j
                  di |  y # 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   s    		I$6$<$<$> 
	N Hj+ 	N "		 "		 ?Xv,> ?67x(F23!!(+

8$/05
}fM	N
	N 			I		Is   CC4 4DzPython lacks refcounts)reasonc                  j   t        j                  t              } t        j                  d      5  t	        j
                  t        j                  d      5  t        j                  d       d d d        d d d        t        j                  t              }|| k(  sJ y # 1 sw Y   2xY w# 1 sw Y   6xY w)Nr   )allzdomain error)matchg       @)sysgetrefcountr'   errstater%   r   r*   ndtri)refcount_beforerefcount_afters     r1   test_sf_error_special_refcountrS   L   s     oob)O		! ]]222.I 	HHSM	 __R(N_,,,	 	 s#   &B)B,B)B&	"B))B2c                  D   t        j                         } t        j                  d      5  t        t         j                        5  t        j
                  d       d d d        d d d        t        | t        j                                y # 1 sw Y   0xY w# 1 sw Y   4xY wNr   r   r   )r'   r4   rO   r)   r*   loggammar   olderrs    r1   test_errstate_pyx_basicrZ   Z   sn    YY[F	g	& 2223 	KKN	 %	 	 #   BB
B
B	BBc                  D   t        j                         } t        j                  d      5  t        t         j                        5  t        j
                  d       d d d        d d d        t        | t        j                                y # 1 sw Y   0xY w# 1 sw Y   4xY w)Nr   )r   )r'   r4   rO   r)   r*   spencer   rX   s    r1   test_errstate_c_basicr_   b   sn    YY[F	G	$ 2223 	IIbM	 %	 	 r[   c                  D   t        j                         } t        j                  d      5  t        t         j                        5  t        j
                  d       d d d        d d d        t        | t        j                                y # 1 sw Y   0xY w# 1 sw Y   4xY w)Nr   )r   i)r'   r4   rO   r)   r*   wrightomegar   rX   s    r1   test_errstate_cpp_basicrb   j   so    YY[F	w	' "2223 	"NN5!	"" %	" 	"" "r[   c                  F   t        j                         } t        j                  d      5  t        t         j                        5  t        j
                  dd       d d d        d d d        t        | t        j                                y # 1 sw Y   0xY w# 1 sw Y   4xY w)Nr   rV   r   r   )r'   r4   rO   r)   r*   lambertwr   rX   s    r1   test_errstate_cpp_scipy_specialre   r   sq    YY[F	g	& 2223 	KK1	 %	 	 s#   BBBB	BB c                  D   t        j                         } t        j                  d      5  t        t         j                        5  t        j
                  d       d d d        d d d        t        | t        j                                y # 1 sw Y   0xY w# 1 sw Y   4xY wrU   )r'   r4   rO   r)   r*   gammalnr   rX   s    r1   %test_errstate_cpp_alt_ufunc_machineryrh   z   sn    YY[F	g	& 2223 	JJqM	 %	 	 r[   c                  2   t         j                         D ]t  \  } }t        D ]f  }t        j                         }t        j
                  di | |i5  t        t        |f|       d d d        t        |t        j                                h v y # 1 sw Y   ,xY wr>   )	r6   r5   r7   r'   r4   rO   r2   r   r   )rC   rD   r0   rY   s       r1   test_errstaterj      s     2 8 8 : .*' 	.FYY[F2&12 N5
}fMN-		..N Ns   BBc                  p   t        j                         } t        j                  dd      5  t        j                  d       t	        t         j
                        5  t        j                  d       d d d        d d d        t        | t        j                                y # 1 sw Y   0xY w# 1 sw Y   4xY w)Nr   r   )rK   r   r   g      )r'   r4   rO   rg   r)   r*   r^   r   rX   s    r1   test_errstate_all_but_onerl      s{    YY[F	8	4 


12223 	IIdO	 %	 	 s#   /B,B 1B, B)	%B,,B5) rM   r+   numpyr#   numpy.testingr   r   r   r%   r   r)   scipy.specialspecialr'   scipy.special._ufuncsr   r6   r7   r2   r;   markthread_unsaferH   skipifrS   rZ   r_   rb   re   rh   rj   rl   r?   r<   r1   <module>ru      s    
   = =  *  9   ",  $ $-EF	- G 	-&&&&& . .&r<   