
    Bpj|                         S r SSKrSSKJr  SSKJrJrJrJr  SSK	J
r
  SSKr\R                  S 5       rS rS rS	 rS
 rS rS rg)z=Test for assert_deallocated context manager and gc utilities
    NLock)set_gc_stategc_stateassert_deallocatedReferenceError)assert_equalc                      [        5       $ Nr        Z/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/_lib/tests/test__gcutils.pygc_lockr      s	    6Mr   c                    U    [         R                  " 5       n S H  n[         R                  " 5         [        U5        [	        [         R                  " 5       U5        [         R
                  " 5         [        U5        [	        [         R                  " 5       U5        M     U(       a  [         R                  " 5         S S S 5        g ! U(       a  [         R                  " 5         f f = f! , (       d  f       g = fNTF)gc	isenabledenabler   r	   disable)r   	gc_statusstates      r   test_set_gc_stater      s    	LLN	
	&		U#R\\^U3

U#R\\^U3 ' 		 
 		  
s#   C(BC!C(C%%C((
C6c           	         U    [         R                  " 5       n S H  n[        U5        S H  n[        U5         [	        [         R                  " 5       U5        S S S 5        [	        [         R                  " 5       U5        [        U5         [	        [         R                  " 5       U5        [        U(       + 5        S S S 5        [	        [         R                  " 5       U5        M     M     U(       a  [         R
                  " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       Nk= f! U(       a  [         R
                  " 5         f f = f! , (       d  f       g = fr   )r   r   r   r   r	   r   )r   r   	pre_state
with_states       r   test_gc_stater   #   s    	LLN		*	Y'"/J!*-$R\\^Z@ . !;!*-$R\\^Z@$^4 . !; #0 + 		% 
 .-
 .-
 		 # 
sQ   E D2 D	2D20D!	</D2+E
DD2!
D/+D22EE
E"c           
          " S S5      nU    S Hz  n[        U5         [        USSS5       n[        UR                  S5        AS S S 5        [        USSSS9    S S S 5        [        [        R
                  " 5       U5        S S S 5        M|     S S S 5        g ! , (       d  f       NX= f! , (       d  f       NS= f! , (       d  f       M  = f! , (       d  f       g = f)	Nc                       \ rS rSrSS jrSrg)"test_assert_deallocated.<locals>.C<   c                     X0l         g r   name)selfarg0arg1r$   s       r   __init__+test_assert_deallocated.<locals>.C.__init__=   s    Ir   r#   N)myname__name__
__module____qualname____firstlineno__r(   __static_attributes__r   r   r   Cr    <   s    	r   r1   r   r      zanother namez
third namer#   )r   r   r	   r$   r   r   )r   r1   
gc_currentcs       r   test_assert_deallocatedr5   :   s      
'J*%'1a@A 8 A (1alC DR\\^Z8 &% ( 
 A@ DC &% 
sQ   CB9B	B9B(	'B9C
B%!B9(
B62B99
CC
Cc                       " S S5      n [         R                  " [        5         [        U 5       n S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)(test_assert_deallocated_nodel.<locals>.CM   r   N)r,   r-   r.   r/   r0   r   r   r   r1   r8   M   s    r   r1   pytestraisesr   r   )r1   _s     r   test_assert_deallocated_nodelr>   L   sF     	~	&  "a # 
'	& #" 
'	&!   AAA
A	A
A#c                       " S S5      n [         R                  " [        5         [        U 5       nAS S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)+test_assert_deallocated_circular.<locals>.CZ   c                     X l         g r   	_circularr%   s    r   r(   4test_assert_deallocated_circular.<locals>.C.__init__[       !Nr   rE   Nr+   r   r   r   r1   rB   Z       	"r   r1   r:   )r1   r4   s     r    test_assert_deallocated_circularrK   Y   sD    " " 
~	&"a # 
'	&"" 
'	&s!   AAA
A	A
A#c                       " S S5      n [         R                  " [        5         [        U 5          S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrS rSrg),test_assert_deallocated_circular2.<locals>.Cd   c                     X l         g r   rE   rG   s    r   r(   5test_assert_deallocated_circular2.<locals>.C.__init__e   rI   r   rE   Nr+   r   r   r   r1   rN   d   rJ   r   r1   r:   )r1   s    r   !test_assert_deallocated_circular2rR   c   sB    " " 
~	&" # 
'	&"" 
'	&r?   )__doc__r   	threadingr   scipy._lib._gcutilsr   r   r   r   numpy.testingr	   r;   fixturer   r   r   r5   r>   rK   rR   r   r   r   <module>rX      sX    	 1 1 '    .9$
r   