
    > j                     B   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S r\R*                  R-                  SS9\R*                  R/                  \(       + SS9S 5       5       rS rS rS rS rS rS rS 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      r/root/GenerationalWealth/GenerationalWealth/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z3module refcounts are not stable in multiple threads)reasonzPython lacks refcountsc                  |   [         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_refcountrU   K   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   rQ   r)   r*   loggammar   olderrs    r1   test_errstate_pyx_basicr\   Y   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   rQ   r)   r*   spencer   rZ   s    r1   test_errstate_c_basicra   a   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   rQ   r)   r*   wrightomegar   rZ   s    r1   test_errstate_cpp_basicrd   i   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   rX   r   r   )r'   r4   rQ   r)   r*   lambertwr   rZ   s    r1   test_errstate_cpp_scipy_specialrg   q   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rW   )r'   r4   rQ   r)   r*   gammalnr   rZ   s    r1   %test_errstate_cpp_alt_ufunc_machineryrj   y   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   rQ   r2   r   r   )rC   rD   r0   r[   s       r1   test_errstaterl      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   )rL   r   r   g      )r'   r4   rQ   ri   r)   r*   r`   r   rZ   s    r1   test_errstate_all_but_onern      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c                     [         R                  " [        R                  SS9   [        R                  " SS9   [        R
                  " SS5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   rM   r   rK   r
   ghY"*)r%   r   r'   r*   rQ   ynr?   r<   r1   test_check_overflow_messagerq      sQ     
r..j	A[[W%EE!V & 
B	A%% 
B	As"   A3A"A3"
A0	,A33
B)!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   ",$ "WX$-EF	- G Y	-&&&&&.&r<   