
    -i                        S SK r S SKrS SKrS SKJrJrJr  S SKrS SKJ	r
  S SKJr  S SKJr  SSSSS	S
SSSSS.
r/ SQrS rS r\R(                  R*                  S 5       r\R(                  R*                  \R(                  R/                  \(       + SS9S 5       5       rS rS rS rS rS r\R(                  R*                  S 5       rS rg)    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                    [         R                  " U[         R                  " S5      S9nUS:X  a3  [        R                  " [
        R                  5         U " U6   S S S 5        g US:X  a(  [        [
        R                  5         U " U6   S S S 5        g [        R                  " 5          [        R                  " S5        U " U6   S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f! , (       d  f       g = f)Nlong)dtyper   r   error)npasarrayr!   pytestwarnsscSpecialFunctionWarningassert_raisesSpecialFunctionErrorwarningscatch_warningssimplefilter)funargsactions      T/var/www/html/venv/lib/python3.13/site-packages/scipy/special/tests/test_sf_error.py_check_actionr2   !   s     ::d"((6"23D\\"334J 54	7	2223J 43 $$&!!'*J '& 54 43 '&s$   CC&C-
C
C*-
C;c                      [         R                  " 5       n U R                  5        H)  u  p[        U[        ;   5        [        U[
        ;   5        M+     g )N)r'   geterritemsr   _sf_error_code_map_sf_error_actions)errkeyvalues      r1   test_geterrr;   2   s;    
))+Ciik
))***+ "    c                  $   [         R                  " 5       n  [        R                  5        H  u  p[         H  n[         R                  " 5       n[         R
                  " S0 X0D6n[        XE:H  5        [         R                  " 5       n[        Xa   U:H  5        UR                  U5        UR                  U5        [        XF:H  5        [        [        U4U5        M     M     [         R
                  " S0 U D6  g ! [         R
                  " S0 U D6  f = f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$<$<$> H+ "		 "		 ?X,> ?67(F23!!(+

8$/05
}fM , %? 			I		Is   C	C7 7DzPython lacks refcounts)reasonc                  |   [         R                  " [        5      n [        R                  " SS9   [        R
                  " [        R                  SS9   [        R                  " S5        S S S 5        S S S 5        [         R                  " [        5      nX:X  d   eg ! , (       d  f       N8= f! , (       d  f       NA= f)Nr   )allzdomain error)matchg       @)sysgetrefcountr'   errstater%   r   r*   ndtri)refcount_beforerefcount_afters     r1   test_sf_error_special_refcountrS   L   sw     oob)O		!]]222.IHHSM J 
" __R(N,,, JI 
"	!s#   $B-B*B-
B*	&B--
B;c                  Z   [         R                  " 5       n [         R                  " SS9   [        [         R                  5         [         R
                  " S5        S S S 5        S S S 5        [        U [         R                  " 5       5        g ! , (       d  f       N6= f! , (       d  f       N?= fNr   r   r   )r'   r4   rO   r)   r*   loggammar   olderrs    r1   test_errstate_pyx_basicrZ   Z   s`    YY[F	g	&2223KKN 4 
' % 43 
'	&#   BBB
B	B
B*c                  Z   [         R                  " 5       n [         R                  " SS9   [        [         R                  5         [         R
                  " S5        S S S 5        S S S 5        [        U [         R                  " 5       5        g ! , (       d  f       N6= f! , (       d  f       N?= f)Nr   )r   )r'   r4   rO   r)   r*   spencer   rX   s    r1   test_errstate_c_basicr_   b   s`    YY[F	G	$2223IIbM 4 
% % 43 
%	$r[   c                  Z   [         R                  " 5       n [         R                  " SS9   [        [         R                  5         [         R
                  " S5        S S S 5        S S S 5        [        U [         R                  " 5       5        g ! , (       d  f       N6= f! , (       d  f       N?= f)Nr   )r   i)r'   r4   rO   r)   r*   wrightomegar   rX   s    r1   test_errstate_cpp_basicrb   j   sa    YY[F	w	'2223NN5! 4 
( % 43 
(	'r[   c                  \   [         R                  " 5       n [         R                  " SS9   [        [         R                  5         [         R
                  " SS5        S S S 5        S S S 5        [        U [         R                  " 5       5        g ! , (       d  f       N6= f! , (       d  f       N?= f)Nr   rV   r   r   )r'   r4   rO   r)   r*   lambertwr   rX   s    r1   test_errstate_cpp_scipy_specialre   r   sc    YY[F	g	&2223KK1 4 
' % 43 
'	&s#   BBB
B	B
B+c                  Z   [         R                  " 5       n [         R                  " SS9   [        [         R                  5         [         R
                  " S5        S S S 5        S S S 5        [        U [         R                  " 5       5        g ! , (       d  f       N6= f! , (       d  f       N?= frU   )r'   r4   rO   r)   r*   gammalnr   rX   s    r1   %test_errstate_cpp_alt_ufunc_machineryrh   z   s`    YY[F	g	&2223JJqM 4 
' % 43 
'	&r[   c                  F   [         R                  5        Hx  u  p[         Hi  n[        R                  " 5       n[        R
                  " S0 X0D6   [        [        U4U5        S S S 5        [        U[        R                  " 5       5        Mk     Mz     g ! , (       d  f       N6= fr>   )	r6   r5   r7   r'   r4   rO   r2   r   r   )rC   rD   r0   rY   s       r1   test_errstaterj      sl     2 8 8 :'FYY[F2125
}fM 3-	 ( !; 32s   B
B c                     [         R                  " 5       n [         R                  " SSS9   [         R                  " S5        [	        [         R
                  5         [         R                  " S5        S S S 5        S S S 5        [        U [         R                  " 5       5        g ! , (       d  f       N6= f! , (       d  f       N?= f)Nr   r   )rK   r   r   g      )r'   r4   rO   rg   r)   r*   r^   r   rX   s    r1   test_errstate_all_but_onerl      sm    YY[F	8	4


12223IIdO 4 
5 % 43 
5	4s#   0B3B"2B3"
B0	,B33
C) 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<   