Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_weakref.cpython-312.opt-1.pyc

�

'ΜgF)���ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZddlmZddlmZdadZGd�d�ZGd	�d
�Zd�Zd�ZGd
�d�ZGd�d�ZGd�dej6�Zej:d)d��ZGd�de�ZGd�de�Z Gd�dej6�Z!Gd�de�Z"ddlm#Z#Gd�de#jH�Z%Gd�d e#jH�Z&Gd!�d"ej6�Z'Gd#�d$ej6�Z(d%Z)d&e)iZ*d'�Z+e,d(k(rejZ�yy)*�N)�support)�
script_helper�	ALWAYS_EQ)�
gc_collect)�threading_helper�foobarc��eZdZd�Zy)�Cc��y�N���selfs �./usr/local/lib/python3.12/test/test_weakref.py�methodzC.methods���N)�__name__�
__module__�__qualname__rr
rrr
r
s��
rr
c��eZdZdZd�Zy)�CallableNc��||_yr��bar�r�xs  r�__call__zCallable.__call__"s	����r)rrrrrr
rrrrs��
�C�rrc��d�}|S)Nc��yrr
r
rr�fzcreate_function.<locals>.f's��Trr
)r s r�create_functionr!&s
����Hrc�*�t�jSr)r
rr
rr�create_bound_methodr#*s���3�:�:�rc�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)	�Objectc��||_yr��arg)rr(s  r�__init__zObject.__init__/s	����rc� �d|jzS)Nz<Object %r>r'rs r�__repr__zObject.__repr__1s���t�x�x�'�'rc�`�t|t�r|j|jk(StSr��
isinstancer%r(�NotImplemented�r�others  r�__eq__z
Object.__eq__3s%���e�V�$��8�8�u�y�y�(�(��rc�`�t|t�r|j|jkStSrr-r0s  r�__lt__z
Object.__lt__7s%���e�V�$��8�8�e�i�i�'�'��rc�,�t|j�Sr)�hashr(rs r�__hash__zObject.__hash__;s���D�H�H�~�rc��y)N�r
rs r�some_methodzObject.some_method=���rc��y)N�r
rs r�other_methodzObject.other_method?r;rN)
rrrr)r+r2r4r7r:r>r
rrr%r%.s%���(�����rr%c��eZdZd�Zy)�RefCyclec��||_yr)�cyclers rr)zRefCycle.__init__Ds	����
rN�rrrr)r
rrr@r@Cs��rr@c��eZdZd�Zd�Zy)�TestBasec��d|_y�Nr��cbcalledrs r�setUpzTestBase.setUpJs	����
rc�.�|xjdz
c_y�N�rH)r�refs  r�callbackzTestBase.callbackMs���
�
���
rN)rrrrJrOr
rrrErEHs���rrEc#���K�d���fd�}tj�5tj|��}|j	�	d��d�|j�	ddd�y#d�|j�wxYw#1swYyxYw�w)zR
    Ensure GC collections happen in a different thread, at a high frequency.
    Fc�d���s-tj��tj��s�,yyr)�time�sleep�gc�collect)�period�please_stops��rrUz"collect_in_thread.<locals>.collectXs �����J�J�v���J�J�L�r)�targetNT)r�
disable_gc�	threading�Thread�start�join)rVrU�trWs`  @r�collect_in_threadr_Qsr�����
�K��

�	�	�	����G�,��	���	�	���K�
�F�F�H�
�	���K�
�F�F�H��
�	�s4�B�'B�	A)�
B� 	B�)A=�=B�B	�Bc�h�eZdZd�Zd�Zd�Zejd��Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d �Z$d!�Z%d"�Z&d#�Z'd$�Z(d%�Z)d&�Z*d'�Z+d(�Z,d)�Z-d*�Z.d+�Z/d,�Z0d-�Z1d.�Z2d/�Z3d0�Z4d1�Z5d2�Z6d3�Z7d4�Z8d5�Z9y6)7�ReferencesTestCasec���|jt�|jt�|jt�t�}t	j
|�}t
|�~t
|�yr)�check_basic_refr
r!r#�weakrefrN�repr)r�o�wrs   r�test_basic_refz!ReferencesTestCase.test_basic_refisT�����Q�����_�-����0�1�
�C��
�[�[��^���R��
��R�rc���Gd�dt�}|d��}tj|�}|jdt	|��|jdt|��y)Nc��eZdZd�Zy)�>ReferencesTestCase.test_repr_failure_gh99184.<locals>.MyConfigc��||Srr
rs  r�__getattr__zJReferencesTestCase.test_repr_failure_gh99184.<locals>.MyConfig.__getattr__ys���A�w�rN)rrrrmr
rr�MyConfigrkx���
rrnr=)�offset)�dictrdrN�assertInre�str)rrn�obj�obj_weakrefs    r�test_repr_failure_gh99184z,ReferencesTestCase.test_repr_failure_gh99184wsN��	�t�	��a� ���k�k�#�&���
�
�j�$�{�"3�4��
�
�j�#�k�"2�3rc��|jt�|jt�|jt�yr)�check_basic_callbackr
r!r#rs r�test_basic_callbackz&ReferencesTestCase.test_basic_callback�s-���!�!�!�$��!�!�/�2��!�!�"5�6rc��ddl}|j}|�}tj|�}|j	|�|�~|j|��|j
|�|j|�yrG)�	_testcapi�create_cfunctionrdrN�assertIs�assertIsNonercrx)rr{r|r rgs     r�test_cfunctionz!ReferencesTestCase.test_cfunction�sg���$�5�5�����
�[�[��^���
�
�b�d�A��
����"�$�����-�.��!�!�"2�3rc�D�t�}tj||j�}tj||j�}~t	�|j|�d�|j|�d�|j
|jdd�y)Nz$expected reference to be invalidated�z-callback not called the right number of times)r
rdrNrOrr~�assertEqualrI�rrf�ref1�ref2s    r�test_multiple_callbacksz*ReferencesTestCase.test_multiple_callbacks�sy��
�C���{�{�1�d�m�m�,���{�{�1�d�m�m�,��
������$�&�"H�I����$�&�"H�I��������D�	Frc��|fd�}t�}tj||�|_tj||�}~y)Nc�$�|j�yr�rN)�objectrs  rrOzDReferencesTestCase.test_multiple_selfref_callbacks.<locals>.callback�s���H�H�Jr)r
rdrN)rrO�cr�s    r�test_multiple_selfref_callbacksz2ReferencesTestCase.test_multiple_selfref_callbacks�s8��#'�	�
�C���;�;�q�(�+����{�{�1�h�'��
rc�f�t�}|jttj|d��y)N)rO)r
�assertRaises�	TypeErrorrdrN)rr�s  r�test_constructor_kwargsz*ReferencesTestCase.test_constructor_kwargs�s$��
�C�����)�W�[�[�!�d��Crc���t�}d|_tj||j�}tj||j�}~t�d�}|j
t||�|j
t||�tjt��}t�|j
tt|�|j|jd�y)NrMc��|jyrr)�proxys r�checkz0ReferencesTestCase.test_proxy_ref.<locals>.check�s	���I�Irr�)r
rrdr�rOrr��ReferenceError�boolr�rI)rrfr�r�r��ref3s      r�test_proxy_refz!ReferencesTestCase.test_proxy_ref�s���
�C������}�}�Q��
�
�.���}�}�Q��
�
�.��
���	�	
���.�%��6����.�%��6��}�}�Q�S�!�������.�$��5��������*rc��|�}tj|�}|j|�d�|�}|j||d�y)Nz,weak reference to live object should be livez-<ref>() should return original object if live)rdrN�assertIsNotNoner})r�factoryrfrN�o2s     rrcz"ReferencesTestCase.check_basic_ref�sG���I���k�k�!�n�����S�U�C�	E�
�U���
�
�a��D�	Frc���d|_|�}tj||j�}~t	�|j|jdd�|j
|�d�y)NrrMz(callback did not properly set 'cbcalled'z3ref2 should be dead after deleting object reference)rIrdrNrOrr�r~)rr�rfrNs    rrxz'ReferencesTestCase.check_basic_callback�s\����
��I���k�k�!�T�]�]�+��
����������?�	A����#�%�J�	Lrc�"�t�}tj|�}tj|�}tj|�}|j	||d�t�}tj|�}tj|�}tj|�}|j	||d�|jtj|�dd�~t�|jtj|�dd�y)Nz1reference object w/out callback should be re-usedr�zwrong weak ref count for objectrMz4wrong weak ref count for object after deleting proxy)r
rdrNr�r}r��getweakrefcountr)rrfr�r�r�s     r�test_ref_reusez!ReferencesTestCase.test_ref_reuse�s���
�C���{�{�1�~���
�
�a� ���{�{�1�~���
�
�d�D�H�	J�
�C���
�
�a� ���{�{�1�~���{�{�1�~���
�
�d�D�H�	J�����0�0��3�Q�6�	8��������0�0��3�Q�K�	Mrc��t�}tj|�}tj|�}tj|�}|j	||d�y)Nz4proxy object w/out callback should have been re-used)r
rdr�rNr})rrf�proxy1rN�proxy2s     r�test_proxy_reusez#ReferencesTestCase.test_proxy_reuse�sF��
�C�����q�!���k�k�!�n�����q�!���
�
�f�f�K�	Mrc���t�}|j|tj|��t	j
�}tj|�}|j
|d�|jd�|jt|�d�|j|d�ddg|dd|jt|�d�|jt|�d�|jd|d�d|d<|j|dd�|j|dd�t	j
|�}tj|�}|j||�t	j
td	��}tj|�}|j|dd|dd�|j|dd|dd�|j|dd|dd�|j|dd|dd�y)
Nz(proxy for empty UserList should be false�rMz+proxy for non-empty UserList should be truer��z,proxy didn't support __contains__() properlyr=�
)
r
�check_proxyrdr��collections�UserList�assertFalse�appendr��len�
assertTruerr�range)rrf�L�p�L2�p2�L3�p3s        r�test_basic_proxyz#ReferencesTestCase.test_basic_proxy�s���
�C������G�M�M�!�,�-�� � �"���M�M�!�������F�G�	���������Q���#�����H�I��1�v��!������Q���#�����Q���#��
�
�a��J�K���!������1��q�!�����1��q�!�
�
!�
!�!�
$��
�]�]�2�
������B��
�
!�
!�%��)�
,��
�]�]�2�
������A���1��&�����A�B���A�B��(�����B�Q���B�Q��(�����A�a��"�Q�q�'�*rc���Gd�dt�}|�}|jdttj|���|jt
tj|��d�y)Nc��eZdZd�Zd�Zy)�0ReferencesTestCase.test_proxy_unicode.<locals>.Cc��y)N�stringr
rs r�__str__z8ReferencesTestCase.test_proxy_unicode.<locals>.C.__str__���rc��y)N�bytesr
rs r�	__bytes__z:ReferencesTestCase.test_proxy_unicode.<locals>.C.__bytes__r�rN)rrrr�r�r
rrr
r�s��
 �
 rr
r�r�)r�rr�dirrdr�r��bytes)rr
�instances   r�test_proxy_unicodez%ReferencesTestCase.test_proxy_unicodesQ��	 ��	 �
�3���
�
�k�3�w�}�}�X�'>�#?�@�����w�}�}�X�6�7��Brc��Gd�d�}|�}tj|�}|jtj|�d�y)Nc��eZdZd�Zy)�.ReferencesTestCase.test_proxy_index.<locals>.Cc��y)Nr�r
rs r�	__index__z8ReferencesTestCase.test_proxy_index.<locals>.C.__index__"���rN)rrrr�r
rrr
r�!���
rr
r�)rdr�r��operator�index�rr
rfr�s    r�test_proxy_indexz#ReferencesTestCase.test_proxy_index s<��	�	�
�C���M�M�!����������*�B�/rc��Gd�d�}|�}tj|�}|j|dzd�|dz}|j|d�y)Nc��eZdZd�Zd�Zy)�,ReferencesTestCase.test_proxy_div.<locals>.Cc��y�N�*r
r0s  r�__floordiv__z9ReferencesTestCase.test_proxy_div.<locals>.C.__floordiv__*r�rc��y)N�r
r0s  r�
__ifloordiv__z:ReferencesTestCase.test_proxy_div.<locals>.C.__ifloordiv__,r�rN)rrrr�r�r
rrr
r�)s��
�
rr
r=r�r��rdr�r�r�s    r�test_proxy_divz!ReferencesTestCase.test_proxy_div(sP��	�	�

�C���M�M�!�������a���$�	�a�������B�rc���Gd�d�}|�}tj|�}|j|dzd�|jd|zd�|dz}|j|d�y)Nc��eZdZd�Zd�Zd�Zy)�/ReferencesTestCase.test_proxy_matmul.<locals>.Cc��y)N�r
r0s  r�
__matmul__z:ReferencesTestCase.test_proxy_matmul.<locals>.C.__matmul__6���rc��y)N�]���r
r0s  r�__rmatmul__z;ReferencesTestCase.test_proxy_matmul.<locals>.C.__rmatmul__8r�rc��y)N�1r
r0s  r�__imatmul__z;ReferencesTestCase.test_proxy_matmul.<locals>.C.__imatmul__:s��rN)rrrr�r�r�r
rrr
r�5s��
�
�
rr
r=r�r�r�r�r�s    r�test_proxy_matmulz$ReferencesTestCase.test_proxy_matmul4sd��	�	�
�C���M�M�!�������Q���%�����Q���%�	�Q�������C� rc�B�|jtj�yr)�check_shared_without_callbackrdrNrs r� test_shared_ref_without_callbackz3ReferencesTestCase.test_shared_ref_without_callbackKs���*�*�7�;�;�7rc�B�|jtj�yr)r�rdr�rs r�"test_shared_proxy_without_callbackz5ReferencesTestCase.test_shared_proxy_without_callbackNs���*�*�7�=�=�9rc�F�td�}||d�}||d�}|j||d�~~||�}||d�}|j||d�~~||�}||�}|j||d�~~||d�}||�}|j||d�y)NrMz%both callbacks were None in the C APIz&callbacks were NULL, None in the C APIz%both callbacks were NULL in the C APIz&callbacks were None, NULL in the C API)r%r})r�makerefrf�p1r�s     rr�z0ReferencesTestCase.check_shared_without_callbackQs����1�I��
�Q��
��
�Q��
���
�
�b�"�E�F���
�Q�Z��
�Q��
���
�
�b�"�F�G���
�Q�Z��
�Q�Z���
�
�b�"�E�F���
�Q��
��
�Q�Z���
�
�b�"�F�Grc��t�}tj|�}|j||�|j	t|�tjd�|d�|j|jdd�|d��|j|jdd�|jt|�|jt|ddd�y)	Nzproxy is not of callable typez	twinkies!z1call through proxy not passed through to originalzSplat.)rrMr�r�)rrdr�r�r}�type�CallableProxyTyper�rr�r�)rrfr�s   r�test_callable_proxyz&ReferencesTestCase.test_callable_proxycs����J���}�}�Q�������D�!��
�
�d�4�j�'�";�";�4�	6��[���������H�	J��x���������H�	J�	
���)�T�*�	
���)�T�1�a��3rc��d|_|j|jdd�d|_|j|jdd�|`|jt|d�d�d|_|j|jdd�d|_|j|jdd�|`|jt|d�d	�y)
NrMz)proxy does not reflect attribute additionr�z-proxy does not reflect attribute modification�fooz(proxy does not reflect attribute removalz4object does not reflect attribute addition via proxyz8object does not reflect attribute modification via proxyz3object does not reflect attribute removal via proxy)r�r�r��hasattr)rrfr�s   rr�zReferencesTestCase.check_proxyxs������������A�@�	B����������A�D�	F�
�E�������.�?�	A���	��������K�	M���	��������F�	H��I������E�*�J�	Lrc��Gd�d�}|�}tj|�}|d=|j|jd�y)Nc��eZdZdZd�Zy)�3ReferencesTestCase.test_proxy_deletion.<locals>.FooNc��||_yr)�result)r�accessors  r�__delitem__z?ReferencesTestCase.test_proxy_deletion.<locals>.Foo.__delitem__�s	��&��r)rrrr�rr
rr�Foor��s���F�
'rrr)rdr�r�r�)rr�gr s    r�test_proxy_deletionz&ReferencesTestCase.test_proxy_deletion�s>��	'�	'�
�E���M�M�!���
�a�D�������1�%rc��Gd�dt�}|�}|jttj|��t|��y)Nc��eZdZy)�0ReferencesTestCase.test_proxy_bool.<locals>.ListN�rrrr
rr�Listr�s�rr)�listr�r�rdr�)rr�lysts   r�test_proxy_boolz"ReferencesTestCase.test_proxy_bool�s3���4���v������g�m�m�D�1�2�D��J�?rc���d�G�fd�d�}|��tj��}|jt�5d|vddd�y#1swYyxYw)Nc���eZdZ�fd�Zy)�1ReferencesTestCase.test_proxy_iter.<locals>.MyObjc����tSr)r/)rrts �r�__iter__z:ReferencesTestCase.test_proxy_iter.<locals>.MyObj.__iter__�s����%�%rN�rrrr)rts�r�MyObjr�s���
&rr�blech)rdr�r�r�)rrr�rts   @r�test_proxy_iterz"ReferencesTestCase.test_proxy_iter�sN�����	&�	&��g���M�M�#���
�
�
�y�
)�
�q�L�	*�
)�
)�s�A�Ac����gd���fd�}|��G�fd�d�}|�}|jt|�gd��y)N)r9r=�c3�&�K��Ed{���y7��wrr
)�arrs�r�
iterator_funcz9ReferencesTestCase.test_proxy_next.<locals>.iterator_func�s������N�N�s���c���eZdZ�fd�Zy)�:ReferencesTestCase.test_proxy_next.<locals>.IteratesWeaklyc�.��tj��Sr�rdr�)r�its �rrzCReferencesTestCase.test_proxy_next.<locals>.IteratesWeakly.__iter__�s����}�}�R�(�(rNr)rs�r�IteratesWeaklyr�s���
)rr)r�r	)rrr�weak_itrrs    @@r�test_proxy_nextz"ReferencesTestCase.test_proxy_next�s>�����	�
�_��	)�	)�!�"��	
����g��	�2rc���d��G�fd�d�}|�}d}|jt|�5t|�ddd�y#1swYyxYw)Nc��yrGr
r
rr�<lambda>z8ReferencesTestCase.test_proxy_bad_next.<locals>.<lambda>�s��!rc���eZdZ�fd�Zy)�1ReferencesTestCase.test_proxy_bad_next.<locals>.Ac�.��tj��Srr)r�not_an_iterators �rrz:ReferencesTestCase.test_proxy_bad_next.<locals>.A.__iter__�s����}�}�_�5�5rNr)r(s�r�Ar&�s���
6rr)z'Weakref proxy referenced a non-iterator)�assertRaisesRegexr�r	)rr)�a�msgr(s    @r�test_proxy_bad_nextz&ReferencesTestCase.test_proxy_bad_next�sE���$��	6�	6�
�C��7��
�
#�
#�I�s�
3���G�4�
3�
3�s�A�Ac	��Gd�d�}|�}|jdjttj|���d�y)Nc��eZdZd�Zd�Zy)�5ReferencesTestCase.test_proxy_reversed.<locals>.MyObjc��y)Nr�r
rs r�__len__z=ReferencesTestCase.test_proxy_reversed.<locals>.MyObj.__len__����rc��td�S)N�cba)�iterrs r�__reversed__zBReferencesTestCase.test_proxy_reversed.<locals>.MyObj.__reversed__�s���E�{�"rN)rrrr2r7r
rrrr0�s��
�
#rr�r5)r�r]�reversedrdr��rrrts   r�test_proxy_reversedz&ReferencesTestCase.test_proxy_reversed�s<��	#�	#��g���������'�-�-��*<�!=�>��Frc�h�Gd�d�}|�}|jt�5ttj|��ddd�Gd�d�}|�}|jt�5ttj|��ddd�y#1swY�WxYw#1swYyxYw)Nc��eZdZd�Zy)�1ReferencesTestCase.test_proxy_hash.<locals>.MyObjc��yr�r
rs rr7z:ReferencesTestCase.test_proxy_hash.<locals>.MyObj.__hash__�r�rN�rrrr7r
rrrr>�r�rrc��eZdZdZy)r>Nr@r
rrrz1ReferencesTestCase.test_proxy_hash.<locals>.MyObj�s���Hr)r�r�r6rdr�r:s   r�test_proxy_hashz"ReferencesTestCase.test_proxy_hash�s���	�	��g��
�
�
�y�
)�����s�#�$�*�	�	��g��
�
�
�y�
)�����s�#�$�*�
)�*�
)��*�
)�s�B�4B(�B%�(B1c�8�t�}tj|�}tj||j�}|j	tj
|�dd�tj|�}tj||j�}|j	tj
|�dd�~~~~t�|j	tj
|�dd�|j	tj
d�dd�y)Nr�z*got wrong number of weak reference objectsr9rzAweak reference objects not unlinked from referent when discarded.rMz2got wrong number of weak reference objects for int)r
rdrNrOr�r�r�r)rrfr�r�r�r�s      r�test_getweakrefcountz'ReferencesTestCase.test_getweakrefcount�s���
�C���{�{�1�~���{�{�1�d�m�m�,������0�0��3�Q�A�	C����q�!�����q�$�-�-�0������0�0��3�Q�A�	C�
�$���������0�0��3�Q�1�	2�
	
����0�0��3�Q�I�	Krc��t�}tj||j�}tj||j�}~t	�|jtj|�|gd�t�}tj||j�}tj||j�}~t	�|jtj|�|gd�~t	�|jtj|�gd�|jtjd�gd�y)Nzlist of refs does not matchzlist of refs not clearedrMz#list of refs does not match for int)r
rdrNrOrr��getweakrefsr�s    r�test_getweakrefsz#ReferencesTestCase.test_getweakrefss��
�C���{�{�1�d�m�m�,���{�{�1�d�m�m�,���������,�,�Q�/�$��2�	4�
�C���{�{�1�d�m�m�,���{�{�1�d�m�m�,���������,�,�Q�/�$��2�	4�
�������,�,�Q�/��/�	1�	
����,�,�Q�/��:�	<rc��Gd�dt�}|d�}tj|�}|j|dzd�|jd|zd�y)Nc��eZdZy)�6ReferencesTestCase.test_newstyle_number_ops.<locals>.FNrr
rr�FrJ���rrKg@g�?g@)�floatrdr�r�)rrKr r�s    r�test_newstyle_number_opsz+ReferencesTestCase.test_newstyle_number_opssM��	��	�
�c�F���M�M�!�������S��#�&�����q��#�&rc������Gd�dt��i��fd�����fd�}	|�|jd�	|�|jd�y#�$rY�!wxYw#�$rYywxYw)Nc��eZdZy)�?ReferencesTestCase.test_callbacks_protected.<locals>.BogusErrorNrr
rr�
BogusErrorrQ%rLrrRc����|=yrr
)�k�datas �r�removez;ReferencesTestCase.test_callbacks_protected.<locals>.remove(s
����Q�rc�@��d�}d�tj|��<��)Nc��y)Nr
r
r
rrr$zRReferencesTestCase.test_callbacks_protected.<locals>.encapsulate.<locals>.<lambda>+s��r)rdrN)r rRrUrVs ���r�encapsulatez@ReferencesTestCase.test_callbacks_protected.<locals>.encapsulate*s#����A�+/�D����Q��'�(��rzexception not properly restored)�	Exception�fail)rrYrRrUrVs  @@@r�test_callbacks_protectedz+ReferencesTestCase.test_callbacks_protected"sw���	��	���	�	�	9��M�
�I�I�7�8�	9��M�
�I�I�7�8���	��	���	��	�s"�A�A�A�A�A'�&A'c���ddl�Gd�dt�}|�}tj|�fd��}~~|�}|�|_tj|j�fd��}|�}||_~~y)Nrc��eZdZy)�0ReferencesTestCase.test_sf_bug_840829.<locals>.CNrr
rrr
r_HrLrr
c�&���j�Sr�rU��ignorerTs �rr$z7ReferencesTestCase.test_sf_bug_840829.<locals>.<lambda>Ls
���:�2�:�:�<rc�&���j�Srrarbs �rr$z7ReferencesTestCase.test_sf_bug_840829.<locals>.<lambda>Ts
���j�b�j�j�lr)rTr�rdrN�i�c1)rr
r�rgrf�c2rTs      @r�test_sf_bug_840829z%ReferencesTestCase.test_sf_bug_840829;sq���	�	��	�
�C��
�[�[��7�
8��
�
�
�S���s���
�[�[����:�
;��
�S������
rc���ddl}Gd�dt�}Gd�dt�}|�}||_tj||j
�|_~~~|j�y)Nrc��eZdZy)�4ReferencesTestCase.test_callback_in_cycle.<locals>.JNrr
rr�JrkfrLrrlc��eZdZd�Zy)�5ReferencesTestCase.test_callback_in_cycle.<locals>.IIc��|jyr)rl�rrcs  r�	acallbackz?ReferencesTestCase.test_callback_in_cycle.<locals>.II.acallbackjs	����rN)rrrrqr
rr�IIrnis��
rrr)rTr�rlrdrNrqrgrU)rrTrlrr�Is     r�test_callback_in_cyclez)ReferencesTestCase.test_callback_in_cyclecsW���	��	�	��	�
�D������{�{�1�a�k�k�*���2
�q�"���
�
�rc���ddl}Gd�d�}|�|�}}||_||_tj||j
�|_~~|j�y)Nrc��eZdZd�Zy)�=ReferencesTestCase.test_callback_reachable_one_way.<locals>.Cc�L�|j|j|jyr��merfrgrps  r�cbz@ReferencesTestCase.test_callback_reachable_one_way.<locals>.C.cb������������rN�rrrr{r
rrr
rw����
rr
)rTrzrfrdrNr{rgrU)rrTr
rfrgs     r�test_callback_reachable_one_wayz2ReferencesTestCase.test_callback_reachable_one_way�sR���	�	���a�c�B�����������B����&�������
�
�rc���ddl}Gd�dt�}Gd�d�}|�|�}}||_||_t	j
||j�|_~~~~|j�y)Nrc��eZdZd�Zy)�=ReferencesTestCase.test_callback_different_classes.<locals>.Cc�L�|j|j|jyrryrps  rr{z@ReferencesTestCase.test_callback_different_classes.<locals>.C.cb�r|rNr}r
rrr
r��r~rr
c��eZdZy)�=ReferencesTestCase.test_callback_different_classes.<locals>.DNrr
rr�Dr��rLrr�)	rTr�rzrfrdrNr{rgrU)rrTr
r�rfrgs      r�test_callback_different_classesz2ReferencesTestCase.test_callback_different_classes�sb���	��	�	�	���a�c�B�����������B����&�����A�q���
�
�rc�*��ddl}g�G�fd�dt�}|d�|d�}}||_||_tj||j
�|_tj||j
�|_�fd�}tj||�}~~~|j�g�|j�|j�dg�|j|�d��dd�=|j�|j�g�y)Nrc���eZdZd�Z�fd�Zy)�AReferencesTestCase.test_callback_in_cycle_resurrection.<locals>.Cc��||_yr)�	attribute)r�values  rr)zJReferencesTestCase.test_callback_in_cycle_resurrection.<locals>.C.__init__�s	��!&��rc�<���j|j�yr)r�r��rrc�alists  �rrqzKReferencesTestCase.test_callback_in_cycle_resurrection.<locals>.C.acallback�s������T�V�V�$rN)rrrr)rq�r�s�rr
r��s
���
'�
%rr
rMr�c�(���jd�y)N�C went away�r��rcr�s �r�C_went_awayzKReferencesTestCase.test_callback_in_cycle_resurrection.<locals>.C_went_away�s����L�L��'rr�)	rTr�r�rdrNrqrgr�rU)rrTr
rfrgr�rgr�s       @r�#test_callback_in_cycle_resurrectionz6ReferencesTestCase.test_callback_in_cycle_resurrection�s�������	%��	%��1��q��t�B�����������B����-������B����-���	(�
�[�[��K�
(����A������#���
�
��
	
������0������t�$��!�H���
�
�������#rc�Z��ddl}g��fd�}G�fd�dt�}|�|�}}||_||_|j}t	j
||�|_t	j
||j�|_t	j
||�}|j|�|�~~~~|j�g�|j�|j�dg�|j|�d��dd�=|j�|j�g�y)Nrc�(���jd�y)N�safe_callback calledr�r�s �r�
safe_callbackzDReferencesTestCase.test_callbacks_on_callback.<locals>.safe_callback�s����L�L�/�0rc���eZdZ�fd�Zy)�8ReferencesTestCase.test_callbacks_on_callback.<locals>.Cc�(���jd�y)Nz	cb calledr�r�s  �rr{z;ReferencesTestCase.test_callbacks_on_callback.<locals>.C.cb�s������[�)rNr}r�s�rr
r��s���
*rr
r�)
rTr�r1r{rdrNrgr}r�rU)	rrTr�r
r��drO�external_wrr�s	        @r�test_callbacks_on_callbackz-ReferencesTestCase.test_callbacks_on_callback�s�������	1�	*��	*��s�A�C�1���������4�4���{�{�1�h�'����{�{�8�Q�T�T�*����k�k�(�M�:���
�
�k�m�X�.�
�a��A������#���
�
������!7� 8�9�������-��!�H���
�
�������#rc�B�|jtj�yr)�check_gc_during_creationrdrNrs r�test_gc_during_ref_creationz.ReferencesTestCase.test_gc_during_ref_creations���%�%�g�k�k�2rc�B�|jtj�yr)r�rdr�rs r�test_gc_during_proxy_creationz0ReferencesTestCase.test_gc_during_proxy_creations���%�%�g�m�m�4rc�n�tj�}tjddd�tj�Gd�d�}d�}|�}|�}||_||�|_	|�}t
j||�tj|�y#tj|�wxYw)NrMc��eZdZy)�6ReferencesTestCase.check_gc_during_creation.<locals>.ANrr
rrr)r�rLrr)c��yrr
)�argss rrOz=ReferencesTestCase.check_gc_during_creation.<locals>.callback ���r)rT�
get_threshold�
set_thresholdrUr+rgrdrN)rr��
thresholdsr)rO�
referencedr+s       rr�z+ReferencesTestCase.check_gc_during_creations����%�%�'�
�
����A�q�!�
�
�
��	�	�	��S�
�
�C������z�"���	*���A��K�K�
�H�-�
���j�)��B���j�)�s�0B � B4c�0�Gd�dt�}|�}y)Nc��eZdZd�Zy)�>ReferencesTestCase.test_ref_created_during_del.<locals>.Targetc�.�tj|�ayr)rdrN�ref_from_delrs r�__del__zFReferencesTestCase.test_ref_created_during_del.<locals>.Target.__del__8s��&�{�{�4�0�rN�rrrr�r
rr�Targetr�7s��
1rr�)r�)rr��ws   r�test_ref_created_during_delz.ReferencesTestCase.test_ref_created_during_del2s��
	1�V�	1�

�H�rc	��tjt�}|jt|j
ddddd�t
j�yrG)rdrNrZr�r�r)rTrU)r�rs  r�	test_initzReferencesTestCase.test_init>s9��
�K�K�	�"�����)�Q�Z�Z��A�q�!�Q�?�
�
�
�rc��Gd�dt�}g}tjt�tj||j�}d}tj�|j|�d�|j||g�y)Nc��eZdZy)�*ReferencesTestCase.test_classes.<locals>.ANrr
rrr)r�HrLrr))r�rdrN�intr�rTrUr�)rr)�lr+s    r�test_classeszReferencesTestCase.test_classesFse��	��	������C���K�K��1�8�8�$����
�
�
�������d�#�����Q�C� rc��td�}td�}td�}tj|�}tj|�}tj|�}tj|�}|j||k(�|j	||k7�|j	||k(�|j||k7�|j||k(�|j	||k7�|j	||k(�|j||k7�|j|t
k(�|j	|t
k7�~~~t
j�|||fD]}|j|�d��|j	||k(�|j||k7�|j	||k(�|j||k7�|j||k(||u�|j||k7||u�y)NrMr�)
r%rdrNr�r�rrTrUr}r�)	rr�y�zr+�br�r�r�s	         r�
test_equalityz ReferencesTestCase.test_equalityRs����1�I���1�I���1�I���K�K��N���K�K��N���K�K��N���K�K��N��	
����Q�������a�� �����a�� �����Q�������Q�������a�� �����a�� �����Q�������Y��'�����i��(�
�q�!�
�
�
���A�q��A��M�M�!�#�t�$��	
����a�� �����Q�������a�� �����Q�������a���a��(�����a���!��,rc��tjtjtjtjg}td�}td�}t
j|�}t
j|�}|D]}|jt|||��~~tj�|D]}|jt|||��yrL)r��lt�gt�le�ger%rdrNr�r�rTrU)r�opsrr�r+r��ops       r�
test_orderingz ReferencesTestCase.test_orderingws����{�{�H�K�K����h�k�k�B���1�I���1�I���K�K��N���K�K��N���B����i��Q��2��
�q�
�
�
���B����i��Q��2�rc�v�td�}td�}tj|�}tj|�}|jt	|�t	d��~~tj�|jt	|�t	d��|jtt|�yr�)	r%rdrNr�r6rTrUr�r�)rrr�r+r�s     r�test_hashingzReferencesTestCase.test_hashing�s����2�J���2�J���K�K��N���K�K��N������a��$�r�(�+�
�q�
�
�
��	
����a��$�r�(�+����)�T�1�-rc��Gd�d�}tj�}|d�x}}td�D]}||�x||<}�~tj�y)Nc��eZdZd�Zy)�1ReferencesTestCase.test_trashcan_16602.<locals>.Cc�v��|sytj|���fd�}tj||�|_y)Nc�����}yrr
)�wparentrf�wselfs  �rr{zFReferencesTestCase.test_trashcan_16602.<locals>.C.__init__.<locals>.cb�s
�����Ar)rdrNr�)r�parentr{r�s   @rr)z:ReferencesTestCase.test_trashcan_16602.<locals>.C.__init__�s.��������D�)�� �&�{�{�6�2�6��rNrCr
rrr
r��s��
7rr
�d)rd�WeakKeyDictionaryr�rTrU)rr
r��rootr��ns      r�test_trashcan_16602z&ReferencesTestCase.test_trashcan_16602�sU��
	7�	7�
�%�%�'���T�7���q��s��A���t�O�A�a�D�1���
�
�
�rc���td�}d�}tj||�}|j|j|�tj|�}|j|j�y)NrMc��yrr
r�s rr$z<ReferencesTestCase.test_callback_attribute.<locals>.<lambda>����tr)r%rdrNr}�__callback__r~)rrrOr�r�s     r�test_callback_attributez*ReferencesTestCase.test_callback_attribute�sU���1�I��#���{�{�1�h�'���
�
�d�'�'��2��{�{�1�~�����$�+�+�,rc���td�}tj||j�}|j	|j
�~t
j�|j|j
�yrL)	r%rdrNrOr�r�rrr~)rrrNs   r�&test_callback_attribute_after_deletionz9ReferencesTestCase.test_callback_attribute_after_deletion�sV���1�I���k�k�!�T�]�]�+�����S�-�-�.�
��������#�*�*�+rc��td�}d�}tj||�}|jt�5d�|_ddd�y#1swYyxYw)NrMc��yrr
r�s rr$z@ReferencesTestCase.test_set_callback_attribute.<locals>.<lambda>�r�rc��yrr
r�s rr$z@ReferencesTestCase.test_set_callback_attribute.<locals>.<lambda>�s��Dr)r%rdrNr��AttributeErrorr�)rrrOr�s    r�test_set_callback_attributez.ReferencesTestCase.test_set_callback_attribute�sB���1�I��#���{�{�1�h�'��
�
�
�~�
.� 0�D��/�
.�
.�s�	A�Ac��Gd�dt�}|d�}tj|d��}~tj�y)Nc��eZdZd�Zy)�;ReferencesTestCase.test_callback_gcs.<locals>.ObjectWithDelc��yrr
rs rr�zCReferencesTestCase.test_callback_gcs.<locals>.ObjectWithDel.__del__�r�rNr�r
rr�
ObjectWithDelr��s��#rr�rMc�*�tj�Sr)rrr�s rr$z6ReferencesTestCase.test_callback_gcs.<locals>.<lambda>�s
��'�*<�*<�*>r)r%rdrNrr)rr�rr�s    r�test_callback_gcsz$ReferencesTestCase.test_callback_gcs�s8��	$�F�	$��!����{�{�1�>�?��
����rN):rrrrhrvryr�cpython_onlyrr�r�r�r�rcrxr�r�r�r�r�r�r�r�r�r�r�r�rrrr!r-r;rBrDrGrNr\rhrtrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
rrrarags1���	4�7�

���	4��	4�	F��$D�+�$F�	L�M�.M�+�8	C�0�
 �
!�.8�:�H�$4�*L�*	&�@��(
3�
�G�%� K�,<�4'�9�2&�P&�P�0�8,$�\$$�L3�5�*�2
��
!�#-�J
3�
.��*-�,�1�rrac�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�SubclassableWeakrefTestCasec�t�Gd�dtj�}td�}||d��}|j|�|�|j	|j
�|j
|jd�~t�|j|��|j	|j
�y)Nc�*��eZdZd�fd�	Z�fd�Z�xZS)�=SubclassableWeakrefTestCase.test_subclass_refs.<locals>.MyRefc�4��||_t�|�	||�yr)r��superr))r�obrOr��	__class__s    �rr)zFSubclassableWeakrefTestCase.test_subclass_refs.<locals>.MyRef.__init__�s���"��
��� ��X�.rc�.��d|_t�|�	�S�NT)�calledr�r)rr�s �rrzFSubclassableWeakrefTestCase.test_subclass_refs.<locals>.MyRef.__call__�s���"����w�'�)�)rr�)rrrr)r�
__classcell__)r�s@r�MyRefr��s���
/�
*�
*rrr���r�)
rdrNr%r}r�r�r�r�rr~)rrrf�mrs    r�test_subclass_refsz.SubclassableWeakrefTestCase.test_subclass_refs�s���	*�G�K�K�	*�
�5�M��
�1�B�
���
�
�b�d�A������	�	�"�������2�&�
������"�$������	�	�"rc�z�Gd�dtj�}td�}||�}tj|�}|j||�|j	tj
|�||g�|j	tj|�d�||�}|j	tj|�d�tj
|�}|j	t|�d�|j||d�|j||dd�|j||dd�y)Nc��eZdZy)�XSubclassableWeakrefTestCase.test_subclass_refs_dont_replace_standard_refs.<locals>.MyRefNrr
rrrr�rLrrr�r�r�rrM)
rdrNr%�assertIsNotr�rFr�r�r}rr)rrrf�r1�r2�r3�refss       r�-test_subclass_refs_dont_replace_standard_refszISubclassableWeakrefTestCase.test_subclass_refs_dont_replace_standard_refs�s���	�G�K�K�	��2�J��
�1�X��
�[�[��^������R� �����,�,�Q�/�"�b��:�����0�0��3�Q�7�
�1�X������0�0��3�Q�7��"�"�1�%������T��A�&��
�
�b�$�q�'�"��
�
�b�$�q�r�(�#��
�
�b�$�q�r�(�#rc��Gd�dtj�}td�}||t�}||t�}|j||�tj|�}|j||�|j||�y)Nc��eZdZy)�USubclassableWeakrefTestCase.test_subclass_refs_dont_conflate_callbacks.<locals>.MyRefNrr
rrrr�rLrrr�)rdrNr%�idrsr	rFrr)rrrfr
rr
s      r�*test_subclass_refs_dont_conflate_callbackszFSubclassableWeakrefTestCase.test_subclass_refs_dont_conflate_callbacks�sm��	�G�K�K�	��2�J��
�1�b�\��
�1�c�]������R� ��"�"�1�%���
�
�b�$���
�
�b�$�rc�H�Gd�dtj�}td�}||ddd�}|j|jd�|j|j
d�|j|j
�d�|jt|d��y)Nc�"�eZdZdZd�Zd�Zd�Zy)�HSubclassableWeakrefTestCase.test_subclass_refs_with_slots.<locals>.MyRef��slot1�slot2c�D�tjj|||�Sr)rdrN�__new__)r�r�rOrrs     rrzPSubclassableWeakrefTestCase.test_subclass_refs_with_slots.<locals>.MyRef.__new__�s���{�{�*�*�4��X�>�>rc� �||_||_yrr)rr�rOrrs     rr)zQSubclassableWeakrefTestCase.test_subclass_refs_with_slots.<locals>.MyRef.__init__s��"��
�"��
rc�4�|j|jzSrrrs r�methzMSubclassableWeakrefTestCase.test_subclass_refs_with_slots.<locals>.MyRef.meths���z�z�D�J�J�.�.rN)rrr�	__slots__rr)rr
rrrr�s��(�I�
?�
#�
/rrr��abc�def�abcdef�__dict__)	rdrNr%r�rrrr�r�)rrrfr�s    r�test_subclass_refs_with_slotsz9SubclassableWeakrefTestCase.test_subclass_refs_with_slots�s���	/�G�K�K�	/�
�2�J���!�T�5�%�(��������%�(�������%�(��������8�,������J�/�0rc�D��Gd�dtj�}�fd�}t�}|||�}||_~~�j	�j
d�t�}|||�}|||�}||_||_~~~�j	�j
d�y)z3Confirm https://bugs.python.org/issue3100 is fixed.c��eZdZy)�HSubclassableWeakrefTestCase.test_subclass_refs_with_cycle.<locals>.MyRefNrr
rrrr'rLrrc�0���xjdz
c_yrLrH)r�rs �rrOzKSubclassableWeakrefTestCase.test_subclass_refs_with_cycle.<locals>.callbacks����M�M�Q��MrrN)rdrNr
rfr�rIr�)rrrOrfr
rs`     r�test_subclass_refs_with_cyclez9SubclassableWeakrefTestCase.test_subclass_refs_with_cycles����	�G�K�K�	�
	�
�C��
�1�h�
�����
���������*�
�C��
�1�h�
��
�1�h�
��������
����������*rN)rrrrrrr$r)r
rrr�r��s��#�$$�"	 �1�"$+rr�c�`�eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	jd��Zd�Zd	�Z
y
)�WeakMethodTestCasec�$�Gd�dt�}|S)z3Return an Object subclass overriding `some_method`.c��eZdZd�Zy)�'WeakMethodTestCase._subclass.<locals>.Cc��y)Nrr
rs rr:z3WeakMethodTestCase._subclass.<locals>.C.some_method8r3rN)rrrr:r
rrr
r.7s��
rr
)r%)rr
s  r�	_subclasszWeakMethodTestCase._subclass5s��	��	��rc���td�}tj|j�}|j	|tj
�|j	|�t
|j��|j|�j|�|j|�j|jj�|j|��d�y)NrMr9)r%rd�
WeakMethodr:�assertIsInstance�
ReferenceTyper�r}�__self__�__func__r��rrfr�s   r�
test_alivezWeakMethodTestCase.test_alive<s����1�I�����q�}�}�-�����a��!6�!6�7����a�c�4��
�
�#6�7��
�
�a�c�l�l�A�&��
�
�a�c�l�l�A�M�M�$:�$:�;���������"rc��td�}tj|j�}~t	j
�|j
|�d�yrL)r%rdr2r:rTrUr}r7s   r�test_object_deadz#WeakMethodTestCase.test_object_deadEs;���1�I�����q�}�}�-��
�
�
�
���
�
�a�c�4� rc���|j�}|d�}tj|j�}|`t	j
�|j
|�d�yrL)r0rdr2r:rTrUr})rr
rfr�s    r�test_method_deadz#WeakMethodTestCase.test_method_deadLsI���N�N���
�a�D�����q�}�}�-��
�M�
�
�
���
�
�a�c�4� rc�L��|j�}g��fd�}|d�}tj|j|�}~t	j
�|j
�|g�tj|_t	j
�|j
�|g�y)Nc�(���j|�yrr��r(�callss �rr{z=WeakMethodTestCase.test_callback_when_object_dead.<locals>.cbX�����L�L��rrM)r0rdr2r:rTrUr�r%�rr
r{rfr�r@s     @r�test_callback_when_object_deadz1WeakMethodTestCase.test_callback_when_object_deadTs~����N�N�����	�
�a�D�����q�}�}�b�1��
�
�
�
��������$��*�*��
�
�
�
��������$rc�&��|j�}g��fd�}|d�}tj|j|�}|`t	j
�|j
�|g�~t	j
�|j
�|g�y)Nc�(���j|�yrr�r?s �rr{z=WeakMethodTestCase.test_callback_when_method_dead.<locals>.cbhrArrM)r0rdr2r:rTrUr�rBs     @r�test_callback_when_method_deadz1WeakMethodTestCase.test_callback_when_method_deaddsv����N�N�����	�
�a�D�����q�}�}�b�1��
�M�
�
�
��������$�
�
�
�
��������$rc��td�}d�}tj|j|�}tj|�}~|j|�d�y)NrMc��yrr
)�_s rr{z-WeakMethodTestCase.test_no_cycles.<locals>.cbxr�r)r%rdr2r:rNr})rrfr{r�rgs     r�test_no_cyclesz!WeakMethodTestCase.test_no_cyclestsH��
�1�I��	����q�}�}�b�1��
�[�[��^��
��
�
�b�d�D�!rc�z���fd�}�fd�}td�}td�}tj|j�}tj|j�}tj|j�}tj|j�}|||�|||�|||�|||�|||�|||�td�}	tj|	j�}
tj|	j�}|||
�|||�|||
�|||�|||j�||t
�~~~	t
j�|||||
|f}|D]7}
|D]0}�j|
|k(|
|u��j|
|k7|
|u��2�9y)Nc�V���j||k(��j||k7�yr�r�r��r+r�rs  �r�_eqz-WeakMethodTestCase.test_equality.<locals>._eq��%����O�O�A��F�#����Q�!�V�$rc�V���j||k7��j||k(�yrrMrNs  �r�_nez-WeakMethodTestCase.test_equality.<locals>._ne�rPrrMr�)	r%rdr2r:r>rrTrUr�)rrOrRrr�r+r�r�r�r��er r
�qr�s`              rr�z WeakMethodTestCase.test_equalitysz���	%�	%�
�1�I���1�I�����q�}�}�-�����q�}�}�-�����q�~�~�.�����q�~�~�.���A�q�	��A�q�	��A�q�	��A�q�	��A�q�	��A�q�	��1�I�����q�}�}�-�����q�~�~�.���A�q�	��A�q�	��A�q�	��A�q�	��A�q�}�}���A�y��
�q�!�
�
�
���!�Q��1�a����A���� � ��a���a��0�� � ��a���!��4��rc��td�}td�}tj|j�}tj|j�}tj|j�}|jt
|�t
|��t
|�}~~tj�|jt
|�|�|jt
|�|�|jtt|�yrL)r%rdr2r:r>r�r6rTrUr�r�)rrr�r+r�r��has       rr�zWeakMethodTestCase.test_hashing�s���
�1�I���1�I�����q�}�}�-�����q�}�}�-�����q�~�~�.������a��$�q�'�*�
�!�W��
�q�
�
�
������a��"�%�����a��"�%����)�T�1�-rN)rrrr0r8r:r<rCrFrr�rJr�r�r
rrr+r+3sE���#�!�!�%� %� 
���"��"�'5�R.rr+c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+e,jZ�d*��Z.e,jZ�d+��Z/e,jZ�d,��Z0d-�Z1e,jZ�d.��Z2e,jZ�e3jhd/�d0���Z5e,jZ�d1��Z6e,jZ�e3jhd/�d2���Z7e3jpd3��Z9y4)5�MappingTestCaser�c���d}t|�D�cgc]}t���}}|�fd�|D��}|j�}	t|�~tj�t|�}~tj�t|�}	|j|d�|j|	d�ycc}w#t$rY�uwxYw)N�c3�.�K�|]}�|����y�wrr
��.0rf�conss  �r�	<genexpr>z3MappingTestCase.check_len_cycles.<locals>.<genexpr>�s�����/��A��Q�����)rrMr)
r�r@�items�next�
StopIterationrTrUr�rrr�)
r�	dict_typer^�Nrera�dctr�n1�n2s
  `       r�check_len_cyclesz MappingTestCase.check_len_cycles�s������%*�1�X�.�X����X��.��/��/�/��
�Y�Y�[��	���H�
�
�
�
��
��X���
�
�
��
��X���
�
�b�&�!�����Q���!/���	��	�s�B6�B;�;	C�Cc�F�|jtjd��y)Nc�
�|dfSrLr
�rTs rr$z<MappingTestCase.test_weak_keyed_len_cycles.<locals>.<lambda>����A�q�6r)rirdr�rs r�test_weak_keyed_len_cyclesz*MappingTestCase.test_weak_keyed_len_cycles�s�����g�7�7�9I�Jrc�F�|jtjd��y)Nc�
�d|fSrLr
rls rr$z=MappingTestCase.test_weak_valued_len_cycles.<locals>.<lambda>�s��a��Vr)rird�WeakValueDictionaryrs r�test_weak_valued_len_cyclesz+MappingTestCase.test_weak_valued_len_cycles�s�����g�9�9�;K�Lrc�l��|jtjgtj����t	dd�D]�}d}tj
d�tj|||�t	|�D�cgc]}t
���}}|�fd�|D��}~|j�}	t|�t|�}	~t|�}
|j|	d�|j|	|�|j|
d�|j|
|	���ycc}w#t$rY�rwxYw)NrMr�rZrc3�.�K�|]}�|����y�wrr
r\s  �rr_z1MappingTestCase.check_len_race.<locals>.<genexpr>�s�����3�U��D��G�U�r`)
�
addCleanuprTr�r�r�rUr@rarbrcr��assertGreaterEqual�assertLessEqual)rrdr^�thrererarfrrgrhs  `        r�check_len_racezMappingTestCase.check_len_race�s��������(�(�>�2�+;�+;�+=�>���3�-�B��A��J�J�q�M����R��R�(�).�q��2��A�X�Z��E�2��3�U�3�3�C������B�
��R���S��B���S��B��#�#�B��*�� � ��Q�'��#�#�B��*�� � ��R�(�' ��3��!�
��
�s�?D"�5D'�'	D3�2D3c�F�|jtjd��y)Nc�
�|dfSrLr
rls rr$z:MappingTestCase.test_weak_keyed_len_race.<locals>.<lambda>�s��!�Q�r)ryrdr�rs r�test_weak_keyed_len_racez(MappingTestCase.test_weak_keyed_len_race�s�����G�5�5�7G�Hrc�F�|jtjd��y)Nc�
�d|fSrLr
rls rr$z;MappingTestCase.test_weak_valued_len_race.<locals>.<lambda>�rmr)ryrdrqrs r�test_weak_valued_len_racez)MappingTestCase.test_weak_valued_len_race�s�����G�7�7�9I�Jrc��|j�\}}|D]G}|jtj|�d�|j	|||j
d��It
|j��}t
|j�j��}|j�|j�|j||d�~~|jt|�|j�|d=t�|jt|�|jdz
d�~~t�|jt|�dd�tj�}|jt|j d�t#�|d<t�|jt|j d�y)NrM�#wrong object returned by weak dict!z/cloning of weak-valued dictionary did not work!r�/deleting object did not cause dictionary updatez0deleting the values did not clear the dictionaryr�)�make_weak_valued_dictr�rdr�r}r(r	ra�copy�sortr��COUNTrrqr��KeyError�__getitem__r
�rrq�objectsrf�items1�items2s      r�test_weak_valuesz MappingTestCase.test_weak_values�si���2�2�4�
��g��A����W�4�4�Q�7��;��M�M�!�T�!�%�%�[�>�
@���d�j�j�l�#���d�i�i�k�'�'�)�*�����
����
������F�	H��F�����T��D�J�J�/��A�J�������T��D�J�J��N�F�	H��Q�������T��A�G�	I��*�*�,�����(�D�$4�$4�a�8��#��Q�������(�D�$4�$4�a�8rc���|j�\}}|D]K}|jtj|�dd|z�|j	|j
||d��M|j
�}|j�j
�}|jt|�t|�d�~~|jt|�|j�|d=t�|jt|�|jdz
d�~~t�|jt|�dd�td�}d	||<|j||�|jd
|�y)NrMz&wrong number of weak references to %r!r�z.cloning of weak-keyed dictionary did not work!rr�z.deleting the keys did not clear the dictionaryr�z$What is the meaning of the universe?�")�make_weak_keyed_dictr�rdr�r}r(rar��setr�r�rr%rr�assertNotInr�s      r�test_weak_keyszMappingTestCase.test_weak_keyss@��
�1�1�3�
��g��A����W�4�4�Q�7��A�A�E�
G��M�M�!�%�%��a��>�
@��
���������"�"�$������V��c�&�k�E�	G��F�����T��D�J�J�/��A�J�������T��T�Z�Z�!�^�F�	H��Q�������T��A�E�	G��2�J��8��Q���
�
�a�������T�"rc�f�|j�\}}|j|�|j�}|jt	|�t	|��t|�}|D]]}|�}|j
||�|j
||�|j|j||�|j|��_|jt	|�d�t|�}|jt	t|j���t	|��|j�D]]}|�}|j
||�|j
||�|j|j||�|j|��_|jt	|�d�yrG)	r��check_iters�keyrefsr�r�r	rrr(rV�rrqr�r
�objects2rgr�s       r�test_weak_keyed_itersz%MappingTestCase.test_weak_keyed_iters6sS���1�1�3�
��g�������|�|�~������T��C��L�1���=���B���B��M�M�"�d�#��M�M�"�d�#����R�V�V�T�"�X�.��O�O�B���	
����X���*���=������T�$�,�,�.�1�2�C��L�A��,�,�.�B���B��M�M�"�d�#��M�M�"�d�#����R�V�V�T�"�X�.��O�O�B��!�	
����X���*rc��|j�\}}|j|�|j�}|jt	|�t	|��t|�}|D]l}|�}|j|||j�|j|j||jj�|j|��n|jt	|�d�t|�}|jt	t|j���t	|��|j�D]l}|�}|j|||j�|j|j||jj�|j|��n|jt	|�d�yrG)	r�r��	valuerefsr�r�r	r(rV�
itervaluerefsr�s       r�test_weak_valued_itersz&MappingTestCase.test_weak_valued_itersQsf���2�2�4�
��g�������~�~�������T��C��L�1���=���B���B����R��b�f�f��.����R�V�V�T�"�&�&�\�%5�%5�6��O�O�B��	�
	
����X���*���=������T�$�"4�"4�"6�7�8�#�g�,�G��$�$�&�B���B����R��b�f�f��.����R�V�V�T�"�&�&�\�%5�%5�6��O�O�B��	'�
	
����X���*rc�p�t|j��}|j�D]}|j|��|j|d�t|j	��}|D]}|j|��|j|d�t|j	��}|j	�D]}|j|��|j|d�t|j��}|j�D]}|j|��|j|d�y)Nzitems() did not touch all itemsz!__iter__() did not touch all keysz!iterkeys() did not touch all keysz%itervalues() did not touch all values)r	rarVr��keys�values)rrqra�itemr�rTr��vs        rr�zMappingTestCase.check_itersjs����T�Z�Z�\�"���J�J�L�D��L�L���!����� A�B��D�I�I�K� ���A��K�K��N������B�C��D�I�I�K� ������A��K�K��N������B�C��d�k�k�m�$������A��M�M�!�������<�	>rc�F�t|�}tt||���}t|�|d=t	j
�|j
tt|��t|�t|�dz
g�~|jt|�|dz
�y)N���rM)	r�r6�getattrrbrTrUrrr	r�)rrqr��	iter_namer�rs      r�"check_weak_destroy_while_iteratingz2MappingTestCase.check_weak_destroy_while_iterating�s|����I��
�*�'�$�	�*�,�
-���R���B�K�
�
�
���
�
�c�$�r�(�m�c�'�l�C��L�1�4D�%E�F������T��A��E�*rc�f�|�5\}}|j||�ddd�|�5\}}|jt|j|�ddd�|j|�|�5\}}|jt|j|�ddd�|j||�|�5\}}|||<ddd�|j||�t
j|�}|�5\}}|j|�ddd�|j||�|�5\}}|j�ddd�|jt|�d�y#1swY��MxYw#1swY��&xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�cxYwrG)
r�r�r�r�popr�r��update�clearr�)rrq�testcontextrTr��ddicts      r�-check_weak_destroy_and_mutate_while_iteratingz=MappingTestCase.check_weak_destroy_and_mutate_while_iterating�sS���]�f�q�!����Q��%��
�]�f�q�!����h��(8�(8�!�<������D�!�
�]�f�q�!����h����!�4������D�!�
�]�f�q�!��D��G������a��!�$��	�	�$���
�]�f�q�!��K�K��������u�%�
�]�f�q�!��J�J�L������T��A�&�#�]��
�]���]���]���]���]�sF�E)�%E6�3%F�9	F�;F�1F'�)E3�6F�F�F�F$�'F0c��td�}|�5t|�}|jt|j	���|jt|�|dz
�|||<|jt|�|�ddd�|�5|jt|�dz
�|j
�|jt|�|dz
�ddd�|�5|jt|�dz
�|t|j	��=|jt|�|dz
�ddd�|�5|jt|�dz
�|j
�|jt|�|dz
�ddd�|�5|j�|jt|�d�ddd�|jt|�d�y#1swY��xYw#1swY��0xYw#1swY��xYw#1swY��xYw#1swY�WxYw)	Ni@�rMr�r�r9r=rr)r%r�r�rbr�r��popitemr�)rrqr�rfr�s     r�&check_weak_del_and_len_while_iteratingz6MappingTestCase.check_weak_del_and_len_while_iterating�s���
�6�N��
�]��D�	�A��H�H�T�$�)�)�+�&�'����S��Y��A��.��D��G����S��Y��*�
��]����S��Y��A��.��L�L�N����S��Y��A��.�	�
�]����S��Y��A��.��T�$�)�)�+�&�'����S��Y��A��.���]����S��Y��A��.��L�L�N����S��Y��A��.���]��J�J�L����S��Y��*��	
����T��A�&�1�]���]��
�]���]���]�s?�A2H�A
H�0AH�A
H(�2,H4�H�H�H%�(H1�4H=c����|j�\��|j��d�|j��d�|j��d�|j��d�|j�\��tj��fd��}|j	�|�|j�\��|j�|�y)Nr�rar�r�c3�4�K�	t�j��}t|��j�j}tj�t|�|f��d}tj�y#d}tj�wxYw�wr�r6rarbr�r(rTrUr%)rr�rqr�s  ��rr�zKMappingTestCase.test_weak_keys_destroy_while_iterating.<locals>.testcontext�sj�����	
��$�*�*�,�'���R���K�K�M�%�%���
�
���Q�i��l�"����
�
������
�
����B�A!A=�&B�=B�B)r�r��
contextlib�contextmanagerr�r��rr�rqr�s  @@r�&test_weak_keys_destroy_while_iteratingz6MappingTestCase.test_weak_keys_destroy_while_iterating�s�����1�1�3�
��g��/�/��g�v�F��/�/��g�w�G��/�/��g�x�H��/�/��g�y�I��1�1�3�
��g�	�	"�	"�
	�
#�
	�	
�:�:�4��M��1�1�3�
��g��3�3�D�+�Frc����|j�\��|j��d�|j��d�|j��d�|j��d�|j��d�|j�\��tj��fd��}|j	�|�|j�\��|j�|�y)Nr�rar�r�r�c3�4�K�	t�j��}t|��j�j}tj�|t|�f��d}tj�y#d}tj�wxYw�wrr�)rrTrqr�s  ��rr�zMMappingTestCase.test_weak_values_destroy_while_iterating.<locals>.testcontext�sj�����	
��$�*�*�,�'���R���K�K�M�%�%���
�
������l�"����
�
������
�
��r�)r�r�r�r�r�r�r�s  @@r�(test_weak_values_destroy_while_iteratingz8MappingTestCase.test_weak_values_destroy_while_iterating�s�����2�2�4�
��g��/�/��g�v�F��/�/��g�w�G��/�/��g�x�H��/�/��g��O��/�/��g�{�K��2�2�4�
��g�	�	"�	"�
	�
#�
	�	
�:�:�4��M��2�2�4�
��g��3�3�D�+�Frc�r�td�}tj|di�}|j||d�y�Nr�il�r%rdr�r��rrfrqs   r�#test_make_weak_keyed_dict_from_dictz3MappingTestCase.test_make_weak_keyed_dict_from_dict�s3���1�I���(�(�!�C��1������a��#�&rc��td�}tj|di�}tj|�}|j||d�yr�r��rrfrq�dict2s    r�.test_make_weak_keyed_dict_from_weak_keyed_dictz>MappingTestCase.test_make_weak_keyed_dict_from_weak_keyed_dictsC���1�I���(�(�!�C��1���)�)�$�/������a��#�&rc��tj�}tttt|j���}|D]}|j||<�||fSr)rdr�r	�mapr%r�r�r(�rrqr�rfs    rr�z$MappingTestCase.make_weak_keyed_dict	sK���(�(�*���s�6�5����#4�5�6���A��e�e�D��G���W�}�rc�r�td�}tjd|i�}|j|d|�yr��r%rdrqr�r�s   r�$test_make_weak_valued_dict_from_dictz4MappingTestCase.test_make_weak_valued_dict_from_dicts3���1�I���*�*�C��7�3������c��A�&rc��td�}tjd|i�}tj|�}|j|d|�yr�r�r�s    r�0test_make_weak_valued_dict_from_weak_valued_dictz@MappingTestCase.test_make_weak_valued_dict_from_weak_valued_dictsC���1�I���*�*�C��7�3���+�+�D�1������c��A�&rc���|jttjj�|jttjii�|jttjdd�td�}dD]X}tjdi||i��}|j
t|j��|g�|j
|||��Zy)Nr
r��rrqr1�iterable)	r�r�rdrqr)r%r�r	r�)rrf�kwr�s    r�test_make_weak_valued_dict_miscz/MappingTestCase.test_make_weak_valued_dict_miscs������)�W�%@�%@�%I�%I�J����)�W�%@�%@�"�b�I����)�W�%@�%@�"�b�I��1�I��5�B��+�+�6�r�1�g�6�A����T�!�&�&�(�^�b�T�2����Q�r�U�A�&�6rc��tj�}tttt|j���}|D]}|||j<�||fSr)rdrqr	r�r%r�r�r(r�s    rr�z%MappingTestCase.make_weak_valued_dict'sK���*�*�,���s�6�5����#4�5�6���A��D����K���W�}�rc��|�}|||<|||<|jt|�d�|j�\}}|jt|�d�||ur|j||�n|j||�|j�\}}|jt|�d�||ur|j||�y|j||�y)Nr�rMr)r�r�r�r})	r�klass�key1�value1�key2�value2�weakdictrTr�s	         r�
check_popitemzMappingTestCase.check_popitem.s����7��������������X���*����!���1�����X���*���9��M�M�!�V�$��M�M�!�V�$����!���1�����X���*���9��M�M�!�V�$��M�M�!�V�$rc�j�|jtjdt�dt��y)Nr�r�)r�rdrqr
rs r�test_weak_valued_dict_popitemz-MappingTestCase.test_weak_valued_dict_popitem@s%�����7�6�6�!�1�3����	5rc�j�|jtjt�dt�d�y�Nzvalue 1zvalue 2)r�rdr�r
rs r�test_weak_keyed_dict_popitemz,MappingTestCase.test_weak_keyed_dict_popitemDs%�����7�4�4��3�	�1�3�	�	;rc���|j||d�|�}|j||�}|j||�|j||�|j|j	|�|�|j|||�|j||�}|j||�|j||�|j|j	|�|�|j|||�y)Nz9invalid test -- value parameters must be distinct objects)r	�
setdefaultr}rr�get)rr��keyr�r�r�rfs       r�check_setdefaultz MappingTestCase.check_setdefaultHs��������E�	F��7������V�,���
�
�a�� ��
�
�c�8�$��
�
�h�l�l�3�'��0��
�
�h�s�m�V�,�����V�,���
�
�a�� ��
�
�c�8�$��
�
�h�l�l�3�'��0��
�
�h�s�m�V�,rc�h�|jtjdt�t��y)Nr�)r�rdrqr
rs r� test_weak_valued_dict_setdefaultz0MappingTestCase.test_weak_valued_dict_setdefaultYs#�����g�9�9�#�Q�S�!�#�	/rc�X�|jtjt�dd�yr�)r�rdr�r
rs r�test_weak_keyed_dict_setdefaultz/MappingTestCase.test_weak_keyed_dict_setdefault]s!�����g�7�7��c�9�i�	9rc� �|�}|j|�|jt|�t|��|j�D]\}|j	||d�|j|�}|j
|||�|j
||j|���^|j�D]P}|j	||d�||}|j
|||�|j
||j|���Ry)Nz(mysterious new key appeared in weak dictz%original key disappeared in weak dict)r�r�r�r�rrr�r})rr�rqr�rTr�s      r�check_updatezMappingTestCase.check_updateas���
�7�����������X���D�	�2�����A��M�M�!�T�#M�N������A��M�M�!�X�a�[�)��M�M�!�X�\�\�!�_�-�	!�
����A��M�M�!�X�'N�O��Q��A��M�M�!�X�a�[�)��M�M�!�X�\�\�!�_�-�	rc
���|jtjdt�dt�t�t�i�|j	t
tjj�tj�}|j	t
|jii�|j	t
|jdd�|jt|j��g�td�}dD]i}tj�}|jdi||i��|jt|j��|g�|j|||��ky)NrMr+r
r�r�)r�rdrqr
r�r�r�r�r	r�r%)rr�rfr�s    r�test_weak_valued_dict_updatez,MappingTestCase.test_weak_valued_dict_updatets�����'�5�5��a�c�3���Q�S�!�#�6�	8�	
���)�W�%@�%@�%G�%G�H��'�'�)�����)�Q�X�X�r�2�6����)�Q�X�X�r�2�6�����a�f�f�h���,��1�I��5�B��+�+�-�A��A�H�H���A�w�����T�!�&�&�(�^�b�T�2����Q�r�U�A�&�	6rc��t�}t�}t�}tjd|i�}tj||d��}|j�}||d�}d|fd|fg}||z}	|j	t|	�t|�t|�z�|j
t|	�tj�||z}|j	||	�||z}
|j	t|
�t|�|z�|j
t|
�tj�||z}|j	||
�|j�}||z}|j	t|�t|�t|�z�|j
t|�tj�||z}|j	t|�|t|�z�|j
t|�tj�~|jd|	�|jd|
�|jd|�|jd|�y)NrM�rMr�)rMr�r=rr�)	r
rdrqr�r�rqr}r�r�)
rr+r�r��wvd1�wvd2�wvd3�d1�pairs�tmp1�tmp2�tmp3�tmp4s
             r� test_weak_valued_union_operatorsz0MappingTestCase.test_weak_valued_union_operators�s���
�C��
�C��
�C���*�*�A�q�6�2���*�*�q�Q�<�8���y�y�{���q�\���Q��!�Q�� ���d�{������d��T�$�Z�$�t�*�%<�=��
�
�d�4�j�'�"=�"=�>���������t�$��b�y������d��T�$�Z�"�_�5��
�
�d�4�j�'�"=�"=�>���
������t�$��y�y�{����
������d��T�$�Z�$�u�+�%=�>��
�
�d�4�j�'�"=�"=�>��D�y������d��R�$�t�*�_�5��
�
�d�4�j�'�"=�"=�>�
�����D�!�����D�!�����D�!�����D�!rc	��|jtjt�dt�dt�di�y)NrMr�r�)r�rdr�r
rs r�test_weak_keyed_dict_updatez+MappingTestCase.test_weak_keyed_dict_update�s.�����'�3�3��3��1�3��1�3��2�	4rc�2�tj�}td�}td�}d||<d||<|jt	|�d�||=|jt	|�d�|jt|j
��|g�y)N�1�2�	somethingr�rM)rdr�r%r�r�r	r��rr��o1r�s    r�test_weak_keyed_delitemz'MappingTestCase.test_weak_keyed_delitem�s���%�%�'��
�C�[��
�C�[����"����"������Q���#�
�b�E�����Q���#�����a�f�f�h��"��.rc�*�t�}t�}t�}tj|d|di�}tj|d|di�}|j�}|d|di}|df|dfg}||z}	|j	t|	�t|�t|�z�|j
t|	�tj�||z}|j	||	�||z}
|j	t|
�t|�|z�|j
t|
�tj�||z}|j	||
�|j�}||z}|j	t|�t|�t|�z�|j
t|�tj�||z}|j	t|�|t|�z�|j
t|�tj�~|jd|	j��|jd|
j��|jd|j��|jd|j��y)	NrMr�r�r9�5�6��)
r
rdr�r�r�rqr}r�r�r�)
rrr��o3�wkd1�wkd2�wkd3r�r�r�r�r�r�s
             r�test_weak_keyed_union_operatorsz/MappingTestCase.test_weak_keyed_union_operators�s��
�S��
�S��
�S���(�(�"�a��Q��8���(�(�"�a��Q��8���y�y�{���#�r�3�
���a��2�q�'�"���d�{������d��T�$�Z�$�t�*�%<�=��
�
�d�4�j�'�";�";�<���������t�$��b�y������d��T�$�Z�"�_�5��
�
�d�4�j�'�";�";�<���
������t�$��y�y�{����
������d��T�$�Z�$�u�+�%=�>��
�
�d�4�j�'�";�";�<��D�y������d��R�$�t�*�_�5��
�
�d�4�j�'�";�";�<������D�K�K�M�*�����D�K�K�M�*�����D�K�K�M�*�����D�K�K�M�*rc�6�tj�}td�}td�}||d<||d<|jt	|�d�|d=|jt	|�d�|jt|j
��d|fg�y)Nr�r�r�zsomething elser�rM)rdrqr%r�r�r	rars    r�test_weak_valued_delitemz(MappingTestCase.test_weak_valued_delitem�s����'�'�)��
�C�[��
�C�[����+�� ��
������Q���#�
�k�N�����Q���#�����a�g�g�i��,<�b�+A�*B�Crc��tj�}td�}|jt|j
|�|jt|j|�|jt|j
d�|jt|jd�|jt|jdd�y)Nr��
)	rdr�r%r�r�rr�r��__setitem__)rr�rfs   r�test_weak_keyed_bad_delitemz+MappingTestCase.test_weak_keyed_bad_delitem�s����%�%�'���3�K��	
���(�A�M�M�1�5����(�A�M�M�1�5�	
���)�Q�]�]�R�8����)�Q�]�]�R�8����)�Q�]�]�R��<rc����tj�}d�G��fd�dt�}td�D�cgc]
}||���c}��D]}|j||<�~t|j
����j�d�d}�D]
}|dz
}||=�t�|jt|�d�|j|d�ycc}w)	NFc�&��eZdZd�Zd�Z��fd�Zy)�<MappingTestCase.test_weak_keyed_cascading_deletes.<locals>.Cc��||_yrr)rres  rr)zEMappingTestCase.test_weak_keyed_cascading_deletes.<locals>.C.__init__s	����
rc�,�t|j�Sr)r6r�rs rr7zEMappingTestCase.test_weak_keyed_cascading_deletes.<locals>.C.__hash__s���D�J�J�'�'rc�@���r�d=|j|jk(S)Nr�r)rr1�mutate�objss  ��rr2zCMappingTestCase.test_weak_keyed_cascading_deletes.<locals>.C.__eq__s"�����R���z�z�U�[�[�0�0rN)rrrr)r7r2)rrs��rr
r�s���
�
(�
1rr
r9TrrMr�)rdr�r�r�r�r	r��reverserr�r�)rr�r
rerf�countrrs      @@r�!test_weak_keyed_cascading_deletesz1MappingTestCase.test_weak_keyed_cascading_deletes�s����

�%�%�'����
	1��
	1�$�A�h�'�h���!��h�'���A��7�7�A�a�D��
��A�F�F�H�~��	
���������A��Q�J�E��!���	������Q���#������"��1(s�Cc�b�tj�}|jt|�d�y)Nz<WeakValueDictionary at 0x.*>)rdrq�assertRegexre�rrqs  r�test_make_weak_valued_dict_reprz/MappingTestCase.test_make_weak_valued_dict_repr%s%���*�*�,������d��%D�Erc�b�tj�}|jt|�d�y)Nz<WeakKeyDictionary at 0x.*>)rdr�rrer s  r�test_make_weak_keyed_dict_reprz.MappingTestCase.test_make_weak_keyed_dict_repr)s%���(�(�*������d��%B�Crc���tj�}t�5td�D]/}|j	dt��}|j
|d�~�1	ddd�y#1swYyxYw�Ni��r�)rdrqr_r�r�r@r	�rr�rers    r�$test_threaded_weak_valued_setdefaultz4MappingTestCase.test_threaded_weak_valued_setdefault-sU���'�'�)��
�
 ��6�]���L�L��X�Z�0��� � ��D�)��#�!�
 �
 �s�>A'�'A0c���tj�}t�5td�D]3}t	�|d<|jdd�}|j
|d��5	ddd�y#1swYyxYwr%)rdrqr_r�r@r�r	r&s    r�test_threaded_weak_valued_popz-MappingTestCase.test_threaded_weak_valued_pop6sZ���'�'�)��
�
 ��6�]�� �
��"���E�E�"�b�M��� � ��D�)�#�!�
 �
 �s�AA+�+A4c���tj�}t�5td�D].}t	�}||d<|jt
|�d�d}�0	ddd�y#1swYyxYw)Ni@
r�rM)rdrqr_r�r@r�r�)rr�rerfs    r�%test_threaded_weak_valued_consistencyz5MappingTestCase.test_threaded_weak_valued_consistency?s[��
�'�'�)��
�
 ��6�]���J����"��� � ��Q���+���#�!�
 �
 �s�=A&�&A/c���g}Gd�d�}Gd�d�}�fd�}d�}|j|tjtjf�|�}g}	g}
t	d�D];}||�||�}
}|	j|�|
j|
�|
||<~~
�=t
j|||f��}|tjurt
j||	f��}nt
j||
f��}|j�|j�|j�|j�|r|d	�y)
Nc��eZdZd�Zy)�?MappingTestCase.check_threaded_weak_dict_copy.<locals>.DummyKeyc��||_yr��ctr�rr1s  rr)zHMappingTestCase.check_threaded_weak_dict_copy.<locals>.DummyKey.__init__R�	����rNrCr
rr�DummyKeyr.Qrorr4c��eZdZd�Zy)�AMappingTestCase.check_threaded_weak_dict_copy.<locals>.DummyValuec��||_yrr0r2s  rr)zJMappingTestCase.check_threaded_weak_dict_copy.<locals>.DummyValue.__init__Vr3rNrCr
rr�
DummyValuer6Urorr8c���	�durtj|�}y|j�}y#t$r}|j|�Yd}~yd}~wwxYwr�)r��deepcopyrZr�)r��excrI�exr:s    �r�	dict_copyz@MappingTestCase.check_threaded_weak_dict_copy.<locals>.dict_copyYsF���
��t�#��
�
�a�(�A�����A���
��
�
�2����
�s�.�.�	A�A
�
Ac��d}|rXtjdt|�dz
�}|dz
}|j|�|dzdk(rt	j
�|r�Wyy)NrrMi')�random�randintr�r�rTrU)�lst�gc_ctrres   r�pop_and_collectzFMappingTestCase.check_threaded_weak_dict_copy.<locals>.pop_and_collectbsP���F���N�N�1�c�#�h��l�3���!�������
��E�>�Q�&��J�J�L�rip)rXr�r)
rrrdr�rqr�r�rZr[r\r])r�type_r:r;r4r8r=rCr�r�r�rerTr��t_copy�	t_collects  `             r�check_threaded_weak_dict_copyz-MappingTestCase.check_threaded_weak_dict_copyLs&�����	�	�	�	�	�	!�	
�
�
�e�g�7�7��9T�9T�U�V��G�������u��A��A�;�
�1�
�q�A��K�K��N��M�M�!���A�a�D���
��!�!��!�S��C���G�-�-�-�!�(�(��t�g�N�I�!�(�(��v�i�P�I������������
�������a�&�L�rc�D�|jtjd�y�NF�rGrdr�rs r� test_threaded_weak_key_dict_copyz0MappingTestCase.test_threaded_weak_key_dict_copy�s��	
�*�*�7�+D�+D�e�Lr�cpuc�D�|jtjd�yr�rJrs r�$test_threaded_weak_key_dict_deepcopyz4MappingTestCase.test_threaded_weak_key_dict_deepcopy�s��
	
�*�*�7�+D�+D�d�Krc�D�|jtjd�yrI�rGrdrqrs r�"test_threaded_weak_value_dict_copyz2MappingTestCase.test_threaded_weak_value_dict_copy�s��	
�*�*�7�+F�+F��Nrc�D�|jtjd�yr�rPrs r�&test_threaded_weak_value_dict_deepcopyz6MappingTestCase.test_threaded_weak_value_dict_deepcopy�s��
	
�*�*�7�+F�+F��Mrc�v�tj�}|j|jj�yr)rdrqr~�_remove�__closure__)rr�s  r�test_remove_closurez#MappingTestCase.test_remove_closure�s(���'�'�)�����!�)�)�/�/�0rN):rrrr�rirnrrryr|rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr!r#r�requires_working_threadingr'r)r+rGrKr�requires_resourcerNrQrSr�rWr
rrrXrX�s���E� �(K�M�)�0I�K�9�@#�<+�6+�2>�4+�'�2'�BG�4G�2'�
'��'�
'�
'��%�$5�;�-�"/�9�.�&'�"#"�J4�	/�#+�J	D�=�,#�\F�D�1��0�0�2��3��1��0�0�2�*�3�*�1��0�0�2�
�3�
�;�z1��0�0�2�M�3�M�
1��0�0�2��W���u�%�L�&�3�L�
1��0�0�2�O�3�O�
1��0�0�2��W���u�%�N�&�3�N�

���1��1rrX)�
mapping_testsc�^�eZdZdZed�ed�ed�d�ZejZd�Z	y)�WeakValueDictionaryTestCasez?Check that WeakValueDictionary conforms to the mapping protocolrMr�r�)r�r��key3c�6�|jj�Sr)�!_WeakValueDictionaryTestCase__refr�rs r�
_referencez&WeakValueDictionaryTestCase._reference�����z�z��� � rN)
rrr�__doc__r%r_rdrq�	type2testr`r
rrr\r\�s-��I��1�I�f�Q�i��q�	�B�E��+�+�I�!rr\c�b�eZdZdZed�ded�ded�diZejZd�Z	y	)
�WeakKeyDictionaryTestCasez=Check that WeakKeyDictionary conforms to the mapping protocolr�rMr�r�r]r�c�6�|jj�Sr)�_WeakKeyDictionaryTestCase__refr�rs rr`z$WeakKeyDictionaryTestCase._reference�rarN)
rrrrbr%rgrdr�rcr`r
rrrere�s3��G�
�F�^�A�v�f�~�a�����B�E��)�)�I�!rrec�T�eZdZGd�d�Zd�Zd�Zd�Zd�Zd�Ze	d��Z
d	�Zy
)�FinalizeTestCasec��eZdZy)�FinalizeTestCase.ANrr
rrr)rk�s��rr)c�h�tjjdk7rtj�yy)N�cpython)�sys�implementation�namerrrs r�_collect_if_necessaryz&FinalizeTestCase._collect_if_necessary�s'�����"�"�i�/���� �0rc�����fd�}|j�}g�tj||ddd��}|j|jd�|j|j�||dddif�|j|�d	�|j|�d�|j|�d�|j|j�d�|j|j
�d�|j|jd
�|j�d	g�g�tj||ddd�}|j|j�||dif�|j|j
�||dif�|j|�d�|j|�d�|j|j�d�|j|j
�d�|j|jd
�|j�g�g�tj||ddd��}~|j�|j|�d�|j|�d�|j|j�d�|j|j
�d�|j|jd
�|j�d	g�y)
Nc�B���j||z|z�||z|zSrr�)rr�r��ress   �r�addz+FinalizeTestCase.test_finalize.<locals>.add�s%����J�J�q�1�u�q�y�!��q�5�1�9�r�C�+�Y)r�T)rvrwr���F)rvrwrx)rr�r�)r)rd�finalizer��alive�peek�detachrq)rrur+r rts    @r�
test_finalizezFinalizeTestCase.test_finalize�sb���	�
�F�F�H�������Q��R��r�2��������$�'��������A�s�G�c�"�X�#>�?������c�"������d�#������d�#��������4�(��������T�*�������%�(�����s�e�$������Q��R��R�0���������A�s�J��#;�<��������a��j�"�%=�>������d�#������d�#��������4�(��������T�*�������%�(�����b�!������Q��r�R�2�6��
��"�"�$������d�#������d�#��������4�(��������T�*�������%�(�����s�e�$rc	����fd�}|j�}g�tj||dddd��}|j|j	�||dddd�f�|�|j�dddd�fg�|jt�5tj||d��ddd�|jt�5tj||d�	�ddd�|jttj|�|jttj�y#1swY��xYw#1swY�_xYw)
Nc�,���j||f�yrr�)r��kwargsrts  �r�finz-FinalizeTestCase.test_arg_errors.<locals>.fin�s����J�J��f�~�&rrMr�r�r9)�funcrtr�)r�r()rtr�r()r)rdrzr�r|r�r�)rr�r+r rts    @r�test_arg_errorsz FinalizeTestCase.test_arg_errors�s���	'�
�F�F�H�������Q��Q���q�9���������A�s�F�Q�q�4I�#J�K�	��������1�(=�>�?�@�
�
�
�y�
)����Q�S�a�0�*�
�
�
�y�
)������!�4�*����)�W�%5�%5�q�9����)�W�%5�%5�6�*�
)��
)�
)�s�D0�D<�0D9�<Ec��|j�}g}tj||jd�}tj||jd�}tj||jd�}tj||jd�}tj||jd�}~~|j	|j
�|j	|j
�|j	|j
�|j	|j
��|j|j
�|�|jd�|�|j|j
�|jd�|�|jd�~|j�|j|j
�|jd	�|�gd
�}|j||�y)N�f1�f2�f3�f4�f5r)�Br
r�)r)r�r�r
r�r�r�r�)
r)rdrzr�r�r{r}r�rqr�)	rr+rtr�r�r�r�r��expecteds	         r�
test_orderzFinalizeTestCase.test_orderso���F�F�H����
�
�
�a����T�
2��
�
�
�a����T�
2��
�
�
�a����T�
2��
�
�
�a����T�
2��
�
�
�a����T�
2��
��������!�������!�������!�����	�	��$�������"�
���
�
�3��
��������"��
�
�3��
���
�
�3��
��"�"�$�	
������"��
�
�3��
��?������h�'rc����Gd�dtj�}|j�}g��fd�}|||�}tj|�}tj|�}~~|j	|��|j	|��~|j�|j
|��|j
|��|j�dg�y)Nc��eZdZy)�4FinalizeTestCase.test_all_freed.<locals>.MyFinalizerNrr
rr�MyFinalizerr�)rLrr�c�(���jd�y)N�{r�)rts�rrOz1FinalizeTestCase.test_all_freed.<locals>.callback.s����J�J�s�Orr�)rdrzr)rNr�rqr~r�)rr�r+rOr �wr_callback�wr_frts       @r�test_all_freedzFinalizeTestCase.test_all_freed's����	�'�*�*�	�
�F�F�H����	���8�$���k�k�(�+���{�{�1�~���a����[�]�+����T�V�$�
��"�"�$����+�-�(����$�&�!�����s�e�$rc�
���fd�}tj�tdt�}tj�tdt�}tj�|�}tj�tdt�}d|_y)Nc�\��tj�td�}td�ddzy)N�g1�f3 errorrMr)rdrz�print)r��clss �r�errorz,FinalizeTestCase.run_in_child.<locals>.errorBs(����!�!�#�u�d�3�B��*��
�a�Crr�r�r�F)rdrzr��_global_var�atexit)r�r�r�r�r�r�s`     r�run_in_childzFinalizeTestCase.run_in_child@sg���	��
�
�c�5�$��
<��
�
�
�c�5�$��
<��
�
�
�c�5�
)��
�
�
�c�5�$��
<����	rc���d}tjd|�\}}}|jd�j�}|j	|gd��|jd|v�y)NzNfrom test.test_weakref import FinalizeTestCase;FinalizeTestCase.run_in_child()z-c�ascii)z	f4 foobarr�r�z	f1 foobarsZeroDivisionError)r�assert_python_ok�decode�
splitlinesr�r�)r�prog�rc�out�errs     r�test_atexitzFinalizeTestCase.test_atexitTs[��2��$�5�5�d�D�A���C���j�j��!�,�,�.������J�K����,��3�4rN)rrrr)rqr~r�r�r��classmethodr�r�r
rrriri�s@��
�
�!�
'%�R7�&%(�N%�2�!��!�&5rric��eZdZd�Zy)�ModuleTestCasec���dD]k}tt|�}|dk7r|j|jd�|j|j|�|j|j
|��my)N)r4�	ProxyTyper�r2�WeakSetr�rqr�rd)r�rdr�rrr)rrprts   r�
test_nameszModuleTestCase.test_names^sb��Z�D��'�4�(�C��y� �� � �����;����S�\�\�4�0����S�-�-�t�4�
ZrN)rrrr�r
rrr�r�]s��5rr�a Doctest for examples in the library reference: weakref.rst

>>> from test.support import gc_collect
>>> import weakref
>>> class Dict(dict):
...     pass
...
>>> obj = Dict(red=1, green=2, blue=3)   # this object is weak referencable
>>> r = weakref.ref(obj)
>>> print(r() is obj)
True

>>> import weakref
>>> class Object:
...     pass
...
>>> o = Object()
>>> r = weakref.ref(o)
>>> o2 = r()
>>> o is o2
True
>>> del o, o2
>>> gc_collect()  # For PyPy or other GCs.
>>> print(r())
None

>>> import weakref
>>> class ExtendedRef(weakref.ref):
...     def __init__(self, ob, callback=None, **annotations):
...         super().__init__(ob, callback)
...         self.__counter = 0
...         for k, v in annotations.items():
...             setattr(self, k, v)
...     def __call__(self):
...         '''Return a pair containing the referent and the number of
...         times the reference has been called.
...         '''
...         ob = super().__call__()
...         if ob is not None:
...             self.__counter += 1
...             ob = (ob, self.__counter)
...         return ob
...
>>> class A:   # not in docs from here, just testing the ExtendedRef
...     pass
...
>>> a = A()
>>> r = ExtendedRef(a, foo=1, bar="baz")
>>> r.foo
1
>>> r.bar
'baz'
>>> r()[1]
1
>>> r()[1]
2
>>> r()[0] is a
True


>>> import weakref
>>> _id2obj_dict = weakref.WeakValueDictionary()
>>> def remember(obj):
...     oid = id(obj)
...     _id2obj_dict[oid] = obj
...     return oid
...
>>> def id2obj(oid):
...     return _id2obj_dict[oid]
...
>>> a = A()             # from here, just testing
>>> a_id = remember(a)
>>> id2obj(a_id) is a
True
>>> del a
>>> gc_collect()  # For PyPy or other GCs.
>>> try:
...     id2obj(a_id)
... except KeyError:
...     print('OK')
... else:
...     print('WeakValueDictionary error')
OK

�
libreftestc�L�|jtj��|Sr)�addTest�doctest�DocTestSuite)�loader�tests�patterns   r�
load_testsr��s��	�M�M�'�&�&�(�)��Lr�__main__)g-C��6?).rTrnr��unittestr�rdr�r�r�rZrRr?�testr�test.supportrrrrr�r�r
rr!r#r%r@�TestCaserEr�r_rar�r+rXrZ�BasicTestMappingProtocolr\rerir�r��__test__r�r�mainr
rr�<module>r�sg��	�
����������
��1�#�)�����
�
�
��
����*��
�x� � ��������*a
��a
�He+�(�e+�PF.��*�*�F.�Rj1�h�j1�Z�!�-�"H�"H�!�!�
� F� F�!�`5�x�(�(�`5�F5�X�&�&�5�T�
�l
�:�&���
�z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists