Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_finalization.cpython-311.opt-2.pyc
�

�Ke�:����	ddlZddlZddlZddlZ	ddlmZn#e$rd�ZYnwxYw	ddlmZn#e$rd�ZYnwxYwddlm	Z	Gd�d��Z
Gd	�d
e
��ZeGd�de
����ZeGd
�de
����Z
Gd�de��ZGd�de��ZGd�d��ZGd�deej��ZGd�d��ZGd�dee��ZGd�dee��ZGd�dee��ZGd�d eej��ZGd!�d"��ZGd#�d$ee��ZGd%�d&ee��ZGd'�d(ee��ZGd)�d*eej��ZGd+�d,e��ZeGd-�d.e����ZeGd/�d0e����ZeGd1�d2ee����Z e	j!Gd3�d4eej����Z"e#d5krej$��dSdS)6�N)�with_tp_delc�,�Gd�dt��}|S)Nc��eZdZd�ZdS)�with_tp_del.<locals>.Cc� �td���)Nzrequires _testcapi.with_tp_del��	TypeError��cls�args�kwargss   �@/usr/local/apps/python3/lib/python3.11/test/test_finalization.py�__new__zwith_tp_del.<locals>.C.__new__s��� @�A�A�A�N��__name__�
__module__�__qualname__r�rr�Crs(������
B�
B�
B�
B�
Brr)�object�rrs  rrr
s;��	B�	B�	B�	B�	B��	B�	B�	B��r)�
without_gcc� �Gd�d��}|S)Nc��eZdZd�ZdS)�without_gc.<locals>.Cc� �td���)Nzrequires _testcapi.without_gcrr
s   rrzwithout_gc.<locals>.C.__new__s��� ?�@�@�@rNrrrrrrs(������
A�
A�
A�
A�
Arrrrs  rrrs9��	A�	A�	A�	A�	A�	A�	A�	A��r)�supportc��eZdZ	gZgZgZgZdZdZe	d���Z
e	ejd�����Z
d�Zd�Zd�ZdS)	�NonGCSimpleBaseFrc�0�|j���|j���tj���tj��|j���|j���dS�N)�	survivors�clear�errors�gc�garbage�collect�	del_calls�tp_del_calls�rs r�_cleanupzNonGCSimpleBase._cleanup.sx���
�������
������
�
������
�
�����
���������� � � � � rc#�K�	tj��5|j���|j���dt
_	dV�|jr
|jd�	dt
_|���n%#dt
_|���wxYw	ddd��dS#1swxYwYdS)NFrT)	r�
disable_gcr)r$r*r �	_cleaningr%r,r+s r�testzNonGCSimpleBase.test7s����	��
�
!�
!�
	�
	��M���!�!�!���"�"�$�$�$�(-�O�%�
������:�(��*�Q�-�'�(�-1��)���������-1��)������������
	�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	����
	�
	�
	�
	�
	�
	s)�?C�B�0!C�"B3�3C�C�Cc��dSr"r��selfs r�check_sanityzNonGCSimpleBase.check_sanityI���	�	rc��		|jsQ|j�t|����|���|���dSdS#t$r%}|j�|��Yd}~dSd}~wwxYwr")r/r)�append�idr4�side_effect�	Exceptionr%�r3�es  r�__del__zNonGCSimpleBase.__del__Ns���	�	"��>�
#���%�%�b��h�h�/�/�/��!�!�#�#�#�� � �"�"�"�"�"�
#�
#���	"�	"�	"��K���q�!�!�!�!�!�!�!�!�!�����	"�����AA�
B�'B�Bc��dSr"rr2s rr9zNonGCSimpleBase.side_effect[r5rN)rrrr#r)r*r%r/�	__slots__�classmethodr,�
contextlib�contextmanagerr0r4r=r9rrrr r s��������
�I��I��L�
�F��I��I��!�!��[�!���������[�� ���
"�"�"�����rr c��eZdZd�Zd�ZdS)�
SimpleBasec�.�t|��|_dSr")r8�id_r2s r�__init__zSimpleBase.__init__cs���d�8�8����rc��dSr"rr2s rr4zSimpleBase.check_sanityfs���rN)rrrrHr4rrrrErEas2���������$�$�$�$�$rrEc��eZdZdZdS)�NonGCrN)rrrr@rrrrKrKjs�������I�I�IrrKc��eZdZdZd�ZdS)�NonGCResurrectorrc�<�	|j�|��dSr"�r#r7r2s rr9zNonGCResurrector.side_effectr�%��	�	
����d�#�#�#�#�#rN)rrrr@r9rrrrMrMns(�������I�$�$�$�$�$rrMc��eZdZdS)�SimpleN�rrrrrrrRrRx��������DrrRc��eZdZd�ZdS)�SimpleResurrectorc�<�	|j�|��dSr"rOr2s rr9zSimpleResurrector.side_effect~rPrN�rrrr9rrrrVrV|s#������$�$�$�$�$rrVc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TestBasec�Z�tjdd�|_gtjdd�<dSr")r&r'�old_garbager2s r�setUpzTestBase.setUp�s'���:�a�a�a�=�����
�1�1�1�
�
�
rc��	|�tjg��|`tj��dS#|`tj��wxYwr")�assertEqualr&r'r\r(r2s r�tearDownzTestBase.tearDown�sM��	����R�Z��,�,�,�� ��J�L�L�L�L�L��� ��J�L�L�L�L���s	� 9�Ac�z�|�ttj��t|����dSr")r_�sortedrEr)�r3�idss  r�assert_del_callszTestBase.assert_del_calls�s/������
� 4�5�5�v�c�{�{�C�C�C�C�Crc�z�|�ttj��t|����dSr")r_rbrEr*rcs  r�assert_tp_del_callszTestBase.assert_tp_del_calls�s/������
� 7�8�8�&��+�+�F�F�F�F�Frc��|�td�tjD����t|����dS)Nc3�4K�|]}t|��V��dSr"�r8��.0�xs  r�	<genexpr>z,TestBase.assert_survivors.<locals>.<genexpr>�s(����D�D�!��1���D�D�D�D�D�Dr)r_rbrEr#rcs  r�assert_survivorszTestBase.assert_survivors�s>������D�D�z�/C�D�D�D�D�D�f�S�k�k�R�R�R�R�Rrc��|�td�tjD����t|����dS)Nc3�4K�|]}t|��V��dSr"rjrks  rrnz*TestBase.assert_garbage.<locals>.<genexpr>�s(����:�:�!��1���:�:�:�:�:�:r)r_rbr&r'rcs  r�assert_garbagezTestBase.assert_garbage�s=������:�:�r�z�:�:�:�:�:�F�3�K�K�H�H�H�H�Hrc�B�tj���dSr")rEr#r$r2s r�clear_survivorszTestBase.clear_survivors�s����"�"�$�$�$�$�$rN)
rrrr]r`rergrorrrtrrrrZrZ�s�������������D�D�D�G�G�G�S�S�S�I�I�I�%�%�%�%�%rrZc�\�eZdZ	d�Zd�Zejd���Zejd���ZdS)�SimpleFinalizationTestc��t���5t��}t|��g}t	j|��}~t
j��|�|��|�	g��|�
|��d��t
j��|�|��|�	g��ddd��dS#1swxYwYdSr")rEr0rRr8�weakref�refr&r(rero�assertIs�r3�srd�wrs    r�test_simplez"SimpleFinalizationTest.test_simple�s��
�_�_�
�
�	&�	&����A��a�5�5�'�C���Q���B���J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%��M�M�"�"�$�$��%�%�%��J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&��CC3�3C7�:C7c�b�t���5t��}t|��g}t	j|��}~t
j��|�|��|�	|��|�
|��d��|���t
j��|�|��|�	g��ddd��n#1swxYwY|�|��d��dSr")
rEr0rVr8rxryr&r(rero�assertIsNotrtrzr{s    r�test_simple_resurrectz,SimpleFinalizationTest.test_simple_resurrect�sE��
�_�_�
�
�	&�	&�!�#�#�A��a�5�5�'�C���Q���B���J�L�L�L��!�!�#�&�&�&��!�!�#�&�&�&����R�R�T�T�4�(�(�(�� � �"�"�"��J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	
�
�
�b�b�d�d�D�!�!�!�!�!s�C D�D
�
D
c���t���5t��}|�t	j|����t
|��g}~t	j��|�|��|�	g��t	j��|�|��|�	g��ddd��dS#1swxYwYdSr")
rEr0rK�assertFalser&�
is_trackedr8r(rero�r3r|rds   r�test_non_gcz"SimpleFinalizationTest.test_non_gc�s��
�_�_�
�
�
	&�
	&����A����R�]�1�-�-�.�.�.��a�5�5�'�C���J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%��J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%�
	&�
	&�
	&�
	&�
	&�
	&�
	&�
	&�
	&�
	&�
	&�
	&����
	&�
	&�
	&�
	&�
	&�
	&s�CC(�(C,�/C,c��t���5t��}|�t	j|����t
|��g}~t	j��|�|��|�	|��|�
��t	j��|�|dz��|�	|��ddd��dS#1swxYwYdS�N�)rEr0rMr�r&r�r8r(rerortr�s   r�test_non_gc_resurrectz,SimpleFinalizationTest.test_non_gc_resurrect�s+��
�_�_�
�
�	'�	'� �"�"�A����R�]�1�-�-�.�.�.��a�5�5�'�C���J�L�L�L��!�!�#�&�&�&��!�!�#�&�&�&�� � �"�"�"��J�L�L�L��!�!�#��'�*�*�*��!�!�#�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�CC?�?D�DN)	rrrr~r�r�cpython_onlyr�r�rrrrvrv�su�������&�&�&�"�"�"� 
��&�&���&�
��'�'���'�'�'rrvc�(��eZdZ�fd�Z�fd�Z�xZS)�
SelfCycleBasec�V��t�����||_dSr")�superrHry�r3�	__class__s �rrHzSelfCycleBase.__init__�s$���
������������rc�H��t�����dSr")r�r4r�s �rr4zSelfCycleBase.check_sanity�s���
���������r)rrrrHr4�
__classcell__�r�s@rr�r��sQ������������ � � � � � � � � rr�c��eZdZdS)�SimpleSelfCycleNrSrrrr�r��rTrr�c��eZdZdS)�SelfCycleResurrectorNrSrrrr�r��rTrr�c��eZdZd�ZdS)�SuicidalSelfCyclec��	d|_dSr")ryr2s rr9zSuicidalSelfCycle.side_effect�s��	�����rNrXrrrr�r��s#����������rr�c�"�eZdZ	d�Zd�Zd�ZdS)�SelfCycleFinalizationTestc��t���5t��}t|��g}t	j|��}~t
j��|�|��|�	g��|�
|��d��t
j��|�|��|�	g��ddd��dS#1swxYwYdSr")rEr0r�r8rxryr&r(rerorzr{s    rr~z%SelfCycleFinalizationTest.test_simples��
�_�_�
�
�	&�	&��!�!�A��a�5�5�'�C���Q���B���J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%��M�M�"�"�$�$��%�%�%��J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&rc�d�t���5t��}t|��g}t	j|��}~t
j��|�|��|�	|��|�
|��d��|���t
j��|�|��|�	g��|�
|��d��ddd��dS#1swxYwYdSr")rEr0r�r8rxryr&r(rerorzrtr{s    rr�z/SelfCycleFinalizationTest.test_simple_resurrectsL��
�_�_�
�
�	&�	&�$�&�&�A��a�5�5�'�C���Q���B���J�L�L�L��!�!�#�&�&�&��!�!�#�&�&�&��M�M�"�"�$�$��%�%�%�
� � �"�"�"��J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%��M�M�"�"�$�$��%�%�%�!	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s�C>D%�%D)�,D)c�<�t���5t��}t|��g}t	j|��}~t
j��|�|��|�	g��|�
|��d��t
j��|�|��|�	g��|�
|��d��ddd��dS#1swxYwYdSr")rEr0r�r8rxryr&r(rerorzr{s    r�test_simple_suicidez-SelfCycleFinalizationTest.test_simple_suicide%s:���_�_�
�
�	&�	&�!�#�#�A��a�5�5�'�C���Q���B���J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%��M�M�"�"�$�$��%�%�%��J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%��M�M�"�"�$�$��%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s�C*D�D�DN)rrrr~r�r�rrrr�r��sF�������
&�&�&�&�&�&�(&�&�&�&�&rr�c�$��eZdZd�Z�fd�Z�xZS)�ChainedBasec�0�d|_||_||_dS)NF��suicided�left�right)r3r�s  r�chainzChainedBase.chain9s����
���	���
�
�
rc���t�����|jrdS|j}|jr	|j}|jrdSdSr")r�r4r�r�r�)r3r�r�r�s   �rr4zChainedBase.check_sanity>sl���
���������=�
	*�
	*�
	*��9�D��}�
*�
*��J�E��~�
*�
*�
*�
*�
*r)rrrr�r4r�r�s@rr�r�7sG����������
*�*�*�*�*�*�*�*�*rr�c��eZdZdS)�
SimpleChainedNrSrrrr�r�OrTrr�c��eZdZdS)�ChainedResurrectorNrSrrrr�r�RrTrr�c��eZdZd�ZdS)�SuicidalChainedc�2�	d|_d|_d|_dS)NTr�r2s rr9zSuicidalChained.side_effectWs"��	���
���	���
�
�
rNrXrrrr�r�Us#����������rr�c�R�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�CycleChainFinalizationTestc��d�|D��}tt|����D]&}||�||dz
���'|S)Nc�"�g|]}|����
Srr)rlrs  r�
<listcomp>z:CycleChainFinalizationTest.build_chain.<locals>.<listcomp>hs��*�*�*�3�����*�*�*r�)�range�lenr�)r3�classes�nodes�is    r�build_chainz&CycleChainFinalizationTest.build_chaingsX��*�*�'�*�*�*���s�5�z�z�"�"�	'�	'�A��!�H�N�N�5��1��:�&�&�&�&��rc��t|��}t���5|�|��}d�|D��}d�|D��}~t	j��|�|��|�g��|�d�|D��dg|z��t	j��|�|��ddd��dS#1swxYwYdS)Nc�,�g|]}t|����Srrj�rlr|s  rr�zKCycleChainFinalizationTest.check_non_resurrecting_chain.<locals>.<listcomp>q���(�(�(�Q�2�a�5�5�(�(�(rc�6�g|]}tj|����Sr�rxryr�s  rr�zKCycleChainFinalizationTest.check_non_resurrecting_chain.<locals>.<listcomp>r� ��1�1�1�a�7�;�q�>�>�1�1�1rc�"�g|]}|����
Srr�rlr}s  rr�zKCycleChainFinalizationTest.check_non_resurrecting_chain.<locals>.<listcomp>w���1�1�1�r�b�b�d�d�1�1�1r)	r�rEr0r�r&r(reror_)r3r��Nr�rd�wrss      r�check_non_resurrecting_chainz7CycleChainFinalizationTest.check_non_resurrecting_chainms:����L�L��
�_�_�
�
�
	'�
	'��$�$�W�-�-�E�(�(�%�(�(�(�C�1�1�5�1�1�1�C���J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%����1�1�S�1�1�1�D�6�A�:�>�>�>��J�L�L�L��!�!�#�&�&�&�
	'�
	'�
	'�
	'�
	'�
	'�
	'�
	'�
	'�
	'�
	'�
	'����
	'�
	'�
	'�
	'�
	'�
	's�B8C.�.C2�5C2c�~�t|��}t���5|�|��}t|��}d�|D��}d�|D��}d�|D��}~t	j��|�|��|�|��|�d�|D��dg|z��|�	��t	j��|�|��|�g��ddd��dS#1swxYwYdS)Nc�,�g|]}t|����Srrjr�s  rr�zGCycleChainFinalizationTest.check_resurrecting_chain.<locals>.<listcomp>�r�rc�V�g|]&}t|t���t|����'Sr)�
isinstancerVr8r�s  rr�zGCycleChainFinalizationTest.check_resurrecting_chain.<locals>.<listcomp>�s.��U�U�U�a�J�q�BS�4T�4T�U�B�q�E�E�U�U�Urc�6�g|]}tj|����Srr�r�s  rr�zGCycleChainFinalizationTest.check_resurrecting_chain.<locals>.<listcomp>�r�rc�"�g|]}|����
Srrr�s  rr�zGCycleChainFinalizationTest.check_resurrecting_chain.<locals>.<listcomp>�r�r)
r�rEr0r�r&r(reror_rt)r3r�r�r�rd�survivor_idsr�s       r�check_resurrecting_chainz3CycleChainFinalizationTest.check_resurrecting_chain{s~����L�L��
�_�_�
�
�	&�	&��$�$�W�-�-�E��E�
�
�A�(�(�%�(�(�(�C�U�U�5�U�U�U�L�1�1�5�1�1�1�C���J�L�L�L��!�!�#�&�&�&��!�!�,�/�/�/����1�1�S�1�1�1�D�6�A�:�>�>�>�� � �"�"�"��J�L�L�L��!�!�#�&�&�&��!�!�"�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s�C<D2�2D6�9D6c�B�|�tgdz��dS�N�)r�r�r2s r�test_homogenousz*CycleChainFinalizationTest.test_homogenous�s#���)�)�=�/�A�*=�>�>�>�>�>rc�B�|�tgdz��dSr�)r�r�r2s r�test_homogenous_resurrectz4CycleChainFinalizationTest.test_homogenous_resurrect�s%���%�%�'9�&:�Q�&>�?�?�?�?�?rc�B�|�tgdz��dSr�)r�r�r2s r�test_homogenous_suicidalz3CycleChainFinalizationTest.test_homogenous_suicidal�s$���)�)�?�*;�a�*?�@�@�@�@�@rc�N�|�ttgdz��dSr��r�r�r�r2s r�test_heterogenous_suicidal_onez9CycleChainFinalizationTest.test_heterogenous_suicidal_one�s&���)�)�?�M�*J�Q�*N�O�O�O�O�Orc�Z�|�tgdztgdzz��dSr�r�r2s r�test_heterogenous_suicidal_twoz9CycleChainFinalizationTest.test_heterogenous_suicidal_two�s;���)�)�
���!�]�O�a�$7�7�	9�	9�	9�	9�	9rc�N�|�ttgdz��dSr�)r�r�r�r2s r�test_heterogenous_resurrect_onez:CycleChainFinalizationTest.test_heterogenous_resurrect_one�s'���%�%�'9�=�&I�A�&M�N�N�N�N�Nrc�Z�|�tttgdz��dSr��r�r�r�r�r2s r�test_heterogenous_resurrect_twoz:CycleChainFinalizationTest.test_heterogenous_resurrect_two�s8���%�%�
���@�1�D�	F�	F�	F�	F�	Frc�r�|�tgdztgdzztgdzz��dSr�r�r2s r�!test_heterogenous_resurrect_threez<CycleChainFinalizationTest.test_heterogenous_resurrect_three�sN���%�%�
� �1�$�
���':�:�o�=N�QR�=R�R�	T�	T�	T�	T�	TrN)rrrr�r�r�r�r�r�r�r�r�r�r�rrrr�r�`s�����������'�'�'�&�&�&�&?�?�?�@�@�@�A�A�A�P�P�P�9�9�9�O�O�O�F�F�F�T�T�T�T�Trr�c��eZdZd�Zd�ZdS)�
LegacyBasec���	|js=|j�t|����|���dSdS#t
$r%}|j�|��Yd}~dSd}~wwxYwr")r/r)r7r8r4r:r%r;s  rr=zLegacyBase.__del__�s���	"��>�
$���%�%�b��h�h�/�/�/��!�!�#�#�#�#�#�
$�
$���	"�	"�	"��K���q�!�!�!�!�!�!�!�!�!�����	"���s�AA�
A7�A2�2A7c��		|jsQ|j�t|����|���|���dSdS#t$r%}|j�|��Yd}~dSd}~wwxYwr")r/r*r7r8r4r9r:r%r;s  r�
__tp_del__zLegacyBase.__tp_del__�s���	�	"��>�
#��!�(�(��D���2�2�2��!�!�#�#�#�� � �"�"�"�"�"�
#�
#���	"�	"�	"��K���q�!�!�!�!�!�!�!�!�!�����	"���r>N)rrrr=r�rrrr�r��s2������"�"�"�
"�
"�
"�
"�
"rr�c��eZdZdS)�LegacyNrSrrrr�r����������Drr�c��eZdZd�ZdS)�LegacyResurrectorc�<�	|j�|��dSr"rOr2s rr9zLegacyResurrector.side_effect�rPrNrXrrrr�r��s#������$�$�$�$�$rr�c��eZdZdS)�LegacySelfCycleNrSrrrr�r��r�rr�c�2��eZdZ	�fd�Zd�Zd�Zd�Z�xZS)�LegacyFinalizationTestc���tj���tj��t	�����dSr")r&r'r$r(r�r`r�s �rr`zLegacyFinalizationTest.tearDown�s@���	�
������
�
����
���������rc�*�t���5t��}t|��g}t	j|��}~t
j��|�|��|�	|��|�
g��|�|��d��t
j��|�|��|�	|��ddd��dS#1swxYwYdSr")rEr0r�r8rxryr&r(rergrorzr{s    r�test_legacyz"LegacyFinalizationTest.test_legacy�s0��
�_�_�
�
�	*�	*����A��a�5�5�'�C���Q���B���J�L�L�L��!�!�#�&�&�&��$�$�S�)�)�)��!�!�"�%�%�%��M�M�"�"�$�$��%�%�%��J�L�L�L��!�!�#�&�&�&��$�$�S�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�C!D�D�Dc��t���5t��}t|��g}t	j|��}~t
j��|�|��|�	|��|�
|��|�|��d��|���t
j��|�|��|�	|dz��|�
|��ddd��n#1swxYwY|�|��d��dSr�)
rEr0r�r8rxryr&r(rergrorzrtr{s    r�test_legacy_resurrectz,LegacyFinalizationTest.test_legacy_resurrect�so��
�_�_�
�
�	'�	'�!�#�#�A��a�5�5�'�C���Q���B���J�L�L�L��!�!�#�&�&�&��$�$�S�)�)�)��!�!�#�&�&�&��M�M�"�"�$�$��%�%�%�� � �"�"�"��J�L�L�L��!�!�#�&�&�&��$�$�S�1�W�-�-�-��!�!�#�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'� 	
�
�
�b�b�d�d�D�!�!�!�!�!s�D
D3�3D7�:D7c�l�t���5t��}t|��g}t	j|��}~t
j��|�g��|�	g��|�
g��|�|��|�|��d��dtj
d_ddd��n#1swxYwY|�g��|�|��d��dS)Nr)rEr0r�r8rxryr&r(rergrorrr�r'rzr{s    r�test_legacy_self_cyclez-LegacyFinalizationTest.test_legacy_self_cyclesJ��
�_�_�
�
�	%�	%��!�!�A��a�5�5�'�C���Q���B���J�L�L�L��!�!�"�%�%�%��$�$�R�(�(�(��!�!�"�%�%�%�����$�$�$����R�R�T�T�4�(�(�(� $�B�J�q�M��	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
���B�����
�
�b�b�d�d�D�!�!�!�!�!s�CC6�6C:�=C:)rrrr`r�r�r�r�r�s@rr�r��sj�������������
*�
*�
*�"�"�"�&"�"�"�"�"�"�"rr��__main__)%rBr&�unittestrx�	_testcapir�ImportErrorrr0rr rErKrMrRrVrZ�TestCaservr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�mainrrr�<module>rsL�������	�	�	�	����������%�%�%�%�%�%�%����������������$�$�$�$�$�$�$���������������������?�?�?�?�?�?�?�?�D$�$�$�$�$��$�$�$�������O�������$�$�$�$�$��$�$���$�	�	�	�	�	�Z�	�	�	�$�$�$�$�$�
�$�$�$�%�%�%�%�%�%�%�%�<>'�>'�>'�>'�>'�X�x�'8�>'�>'�>'�B � � � � � � � �	�	�	�	�	�m�V�	�	�	�	�	�	�	�	�=�*;�	�	�	������
�v����7&�7&�7&�7&�7&��(�*;�7&�7&�7&�t*�*�*�*�*�*�*�*�0	�	�	�	�	�K��	�	�	�	�	�	�	�	��&7�	�	�	������k�6����GT�GT�GT�GT�GT��8�+<�GT�GT�GT�Z"�"�"�"�"��"�"�"�0
�	�	�	�	�	�Z�	�	�
��	�
�$�$�$�$�$�
�$�$�
��$�
�	�	�	�	�	�m�Z�	�	�
��	�	��>"�>"�>"�>"�>"�X�x�'8�>"�>"���>"�B�z����H�M�O�O�O�O�O��s��%�%�0�;�;