Your IP : 216.73.216.213


Current Path : /opt/alt/python39/lib64/python3.9/test/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/__pycache__/test_dict.cpython-39.pyc

a

XC?h
��@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
Gdd�dej�ZGdd�dej�Z
ddl	mZGdd	�d	ej�ZGd
d�de�ZGdd
�d
ej�Zedkr�e��dS)�N)�supportc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1e2j3d_d`��Z4e2j3dadb��Z5e2j3dcdd��Z6dedf�Z7e2j3dgdh��Z8e2j3didj��Z9e2j3dkdl��Z:e2j3dmdn��Z;e2j3dodp��Z<e2j3dqdr��Z=dsdt�Z>dudv�Z?dwdx�Z@dydz�ZAd{d|�ZBd}d~�ZCdd��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTe2j3d�d���ZUe2j3d�d���ZVd�S)��DictTestc	Cs�Gdd�dt�}ddi|ddi�fD]v}|�t��tfi|��Wd�n1sV0Y|�t�� ijfi|��Wd�q$1s�0Yq$dS)Nc@seZdZdS)z7DictTest.test_invalid_keyword_arguments.<locals>.CustomN��__name__�
__module__�__qualname__�rr�3/opt/alt/python39/lib64/python3.9/test/test_dict.py�Customsr
��)�dict�assertRaises�	TypeError�update)�selfr
Zinvalidrrr	�test_invalid_keyword_argumentss,z'DictTest.test_invalid_keyword_argumentscCs |�t�i�|�t�i�dS�N)�assertEqualr
�assertIsNot�rrrr	�test_constructorszDictTest.test_constructorcCs^dD]T}dd�t|�D�}t�|�dd�|D�}dd�|�d}|�t|�t|��qdS)	N)rr��i�cSs$g|]}d�t�tjd��|f�qS)��)�join�randomZsample�stringZ
ascii_letters��.0�irrr	�
<listcomp>!s�z5DictTest.test_literal_constructor.<locals>.<listcomp>css|]\}}d�||�VqdS)z
{!r}: {:d}N)�format)r �k�vrrr	�	<genexpr>$�z4DictTest.test_literal_constructor.<locals>.<genexpr>�{z, �})�rangerZshufflerr�evalr
)r�n�itemsZformatted_itemsZdictliteralrrr	�test_literal_constructors�
z!DictTest.test_literal_constructorcCsbdddd�}dddd�}|��}||O}|�||Bddddd��|�|ddddd��|��}||O}|�||Bddddd��|�|ddddd��|��}|gd	�O}|�|ddddd��|�|�d�t�|�|�d
�t�|�|�d�t�|�|�d�t�|�t|jd�|�|�d
�dddd��|�t|jd�|�|�d�dddd��dS)
Nrr)rrrr��rrr/)rrrr/)rrr/r)�rr�rr�r/r/rZBADr)	�copyr�assertIs�__or__�NotImplementedrr�__ior__�
ValueError)r�a�b�crrr	�test_merge_operator(s*zDictTest.test_merge_operatorcCsD|�id�|�ddi�|�ti�d�|�tddi�d�dS)NTrrF)r5�
assertTrue�boolrrrr	�	test_boolHszDictTest.test_boolcCs�i}|�t|���t��ddd�}|��}|�t|�ddh�|�d|�|�d|�|�d|�|�d|�|�t|jd�|�ttdd����d�dS)Nrr�r:r;r:r;�r:zdict_keys(['a']))r�set�keys�assertInrr�reprr
)r�dr$rrr	�	test_keysNs
zDictTest.test_keyscCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)NrrrBzdict_values([1]))rrC�valuesrrrFr
�rrGrrr	�test_values[szDictTest.test_valuescCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)Nrr�rrrBzdict_items([('a', 1)]))rrCr-rrrFr
rJrrr	�
test_itemscszDictTest.test_itemscCsli}|�d|�|�d|v�|�d|v�ddd�}|�d|�|�d|�|�d|�|�t|j�dS)Nr:rrrAr;r<)�assertNotIn�assertFalser>rErr�__contains__rJrrr	�
test_containsls
zDictTest.test_containscCs2i}|�t|�d�ddd�}|�t|�d�dS)NrrrrA)r�lenrJrrr	�test_lenxs
zDictTest.test_lencs�ddd�}|�|dd�|�|dd�d|d<d|d<|�|dd�|�|dd�|d=|�|ddd	��|�t|j�G�fd
d�dt�}i}d||�<|�t|jd
�Gdd�dt��G�fdd�dt�}|�}d||<d|_|��|j|�dS)NrrrAr:r;r/r<�)r:r<cs eZdZ�fdd�Zdd�ZdS)z$DictTest.test_getitem.<locals>.BadEqcs
���dSrr�r�other��Excrr	�__eq__�sz+DictTest.test_getitem.<locals>.BadEq.__eq__cSsdS)N�rrrrr	�__hash__�sz-DictTest.test_getitem.<locals>.BadEq.__hash__N�rrrrYr[rrWrr	�BadEq�sr]�*�c@seZdZdS)z"DictTest.test_getitem.<locals>.ExcNrrrrr	rX�r'rXcseZdZdZ�fdd�ZdS)z&DictTest.test_getitem.<locals>.BadHashFcs|jr���ndSdS�Nr^��failrrWrr	r[�sz/DictTest.test_getitem.<locals>.BadHash.__hash__N�rrrrbr[rrWrr	�BadHash�srdT)rrr�__getitem__�object�KeyError�	Exceptionrb)rrGr]rd�xrrWr	�test_getitem~s(

zDictTest.test_getitemcCs4dddd�}|��|�|i�|�t|jd�dS�Nrrr/r0)�clearrrrrJrrr	�
test_clear�szDictTest.test_clearcsli}|�ddi�|�ddi�|�dddd��|�|dddd��|��|�|dddd��|�ttf|jd�Gdd�d�}|��|�|��|�|dddd��Gd	d
�d
t��|��G�fdd�d�}|��|j|��G�fd
d�d�}|��|j|��G�fdd�d�}|��|j|��G�fdd�dt�}|��ij|��|�tijdg�dS)Nr�dr�r/r0c@s$eZdZdd�Zdd�Zdd�ZdS)z,DictTest.test_update.<locals>.SimpleUserDictcSsdddd�|_dSrk�rGrrrr	�__init__�sz5DictTest.test_update.<locals>.SimpleUserDict.__init__cSs
|j��Sr)rGrDrrrr	rD�sz1DictTest.test_update.<locals>.SimpleUserDict.keyscSs
|j|Srrp)rr!rrr	re�sz8DictTest.test_update.<locals>.SimpleUserDict.__getitem__N)rrrrqrDrerrrr	�SimpleUserDict�srrc@seZdZdS)z!DictTest.test_update.<locals>.ExcNrrrrr	rX�r'rXcseZdZ�fdd�ZdS)�-DictTest.test_update.<locals>.FailingUserDictcs��dSrrrrWrr	rD�s�2DictTest.test_update.<locals>.FailingUserDict.keysN)rrrrDrrWrr	�FailingUserDict�srucs eZdZ�fdd�Zdd�ZdS)rscsG�fdd�d�}|�S)Ncs(eZdZdd�Zdd�Z�fdd�ZdS)�EDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSs
d|_dS�Nr�r!rrrr	rq�s�NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__cSs|Srrrrrr	�__iter__�s�NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cs|jrd|_dS��dS)Nrr:rxrrWrr	�__next__�s�NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N�rrrrqrzr|rrWrr	�	BogonIter�srr�rrrWrr	rD�s
rtcSs|Srr�r�keyrrr	re�s�9DictTest.test_update.<locals>.FailingUserDict.__getitem__N�rrrrDrerrWrr	ru�scs eZdZdd�Z�fdd�ZdS)rscSsGdd�d�}|�S)Nc@s$eZdZdd�Zdd�Zdd�ZdS)rvcSstd�|_dS)Nr:)�ordr!rrrr	rq�srycSs|Srrrrrr	rz�sr{cSs2|jtd�kr*t|j�}|jd7_|St�dS)N�zr)r!r��chr�
StopIteration)rZrtnrrr	r|�s

r}Nr~rrrr	r�srrr�rrr	rD�srtcs��dSrrr�rWrr	re�sr�Nr�rrWrr	ru�s
cs eZdZdd�Z�fdd�ZdS)z$DictTest.test_update.<locals>.badseqcSs|Srrrrrr	rz�sz-DictTest.test_update.<locals>.badseq.__iter__cs
���dSrrrrWrr	r|�sz-DictTest.test_update.<locals>.badseq.__next__N�rrrrzr|rrWrr	�badseq�sr�)	rrrr�AttributeErrorrlrhrfr9)rrGrrrur�rrWr	�test_update�s.zDictTest.test_updatec
sj|�t�d�dddd��i�|���d���|���d�dddd��|���dd�ddd��|���g�i�dd�}|���|��ddi�|�tijd�Gd	d
�d
t�}|�|�d�ddi�|�|��d�ddi�|�|�d�|�|�|��d�|�Gdd
�d
t�}|�d�}|�|ddd��|�|tj�|�ttj�Gdd�dt	��G�fdd�dt�}|��|jdg�G�fdd�dt
�}|��tj|��G�fdd�dt�}|��|jdg�tttd�td����|�t��d�tttd�dgd���G�fdd�dt�}dd�td�D����
�}	|	jdddd�|�|�hd��|	�dS)N�abc)r:r;r<)rT�rcss
dVdSrwrrrrr	�g�sz!DictTest.test_fromkeys.<locals>.grr/c@seZdZdS)z(DictTest.test_fromkeys.<locals>.dictlikeNrrrrr	�dictliker'r�r:c@seZdZdd�ZdS)z&DictTest.test_fromkeys.<locals>.mydictcSst��Sr)�collections�UserDict��clsrrr	�__new__sz.DictTest.test_fromkeys.<locals>.mydict.__new__N�rrrr�rrrr	�mydictsr�ZabrAc@seZdZdS)z#DictTest.test_fromkeys.<locals>.ExcNrrrrr	rXr'rXcseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict1cs
���dSrrrrWrr	rqsz1DictTest.test_fromkeys.<locals>.baddict1.__init__N�rrrrqrrWrr	�baddict1sr�cs eZdZdd�Z�fdd�ZdS)z&DictTest.test_fromkeys.<locals>.BadSeqcSs|Srrrrrr	rzsz/DictTest.test_fromkeys.<locals>.BadSeq.__iter__cs
���dSrrrrWrr	r|sz/DictTest.test_fromkeys.<locals>.BadSeq.__next__Nr�rrWrr	�BadSeqsr�cseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict2cs
���dSrr)rr��valuerWrr	�__setitem__ sz4DictTest.test_fromkeys.<locals>.baddict2.__setitem__N)rrrr�rrWrr	�baddict2sr�rcseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict3cs�Srrr�rprr	r�*sz0DictTest.test_fromkeys.<locals>.baddict3.__new__Nr�rrprr	�baddict3)sr�cSsi|]
}||�qSrrrrrr	�
<dictcomp>,r'z*DictTest.test_fromkeys.<locals>.<dictcomp>�
>r<r;r:)rr
�fromkeysrrr�assertIsInstancer�r�rhrf�zipr*r4r)
rr�r�r�Zudr�r�r�r��resr)rXrGr	�
test_fromkeys�sB
(zDictTest.test_fromkeyscCs�dddd�}|�|��|�|�|��|�|�|��dddd��|��}d|d<|�||�|�i��i�|�t|jd�dS)Nrrr/r0rT)rr4r�assertNotEqualrr)rrGr4rrr	�	test_copy1szDictTest.test_copyc	Cs�dD]�}t�|d||d�}|j|d��vi}t|�D]}|||<q:|��}|�||�|�||�d|d<|�||�|�t|�t|�d�Wd�q1s�0YqdS)N)r�rn��i'i��r)�	dict_sizer�r�r)	rZ	randrangeZsubTestr*r4rrr�rR)rr�rGr!�d2rrr	�test_copy_fuzz>s�
zDictTest.test_copy_fuzzcCsPGdd�d�}|�}iddi|difD]$}|��}|�t�|�t�|��q&dS)Nc@seZdZdS)z0DictTest.test_copy_maintains_tracking.<locals>.ANrrrrr	�AOsr�r:r�val)r4r�gc�
is_tracked)rr�r�rGr�rrr	�test_copy_maintains_trackingNs
z%DictTest.test_copy_maintains_trackingcCs>dd�td�D�}td�D]
}||=q|��}|�||�dS)NcSsi|]
}||�qSrr�r r$rrr	r�_r'z1DictTest.test_copy_noncompact.<locals>.<dictcomp>r�i�)r*r4r)rrGr$r�rrr	�test_copy_noncompactXs
zDictTest.test_copy_noncompactcCs�i}|�|�d�d�|�|�dd�d�ddd�}|�|�d�d�|�|�dd�d�|�|�d�d�|�|�dd�d�|�t|j�|�t|jddd�dS)Nr<r/rrrAr:)r5�getrrrrJrrr	�test_getes
zDictTest.test_getcs�i}|�|�d�d�|�dg�|�|�d�d�|�dg��d�|�|ddd�|�dg��d�|�t|d�d�|�t|j�Gdd�dt��G�fd	d
�d
t�}|�}d||<d|_	|��|j|g�dS)
NZkey0r�r/rrTrc@seZdZdS)z%DictTest.test_setdefault.<locals>.ExcNrrrrr	rX}r'rXcseZdZdZ�fdd�ZdS)z)DictTest.test_setdefault.<locals>.BadHashFcs|jr���ndSdSr`rarrWrr	r[�sz2DictTest.test_setdefault.<locals>.BadHash.__hash__NrcrrWrr	rdsrdr^T)
r5�
setdefault�appendrrRrrrhrfrb)rrGrdrirrWr	�test_setdefaultqszDictTest.test_setdefaultcCsdGdd�dt�}|�}|di}|�}|�|g�|�|jd�|�|jd�|�|j|jd�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z/DictTest.test_setdefault_atomic.<locals>.HashedcSsd|_d|_dS�Nr��
hash_count�eq_countrrrr	rq�sz8DictTest.test_setdefault_atomic.<locals>.Hashed.__init__cSs|jd7_dS�Nrr^�r�rrrr	r[�sz8DictTest.test_setdefault_atomic.<locals>.Hashed.__hash__cSs|jd7_t|�t|�kSrw�r��idrUrrr	rY�sz6DictTest.test_setdefault_atomic.<locals>.Hashed.__eq__N�rrrrqr[rYrrrr	�Hashed�sr�r�r)rfr�rr�r��rr�Zhashed1�yZhashed2rrr	�test_setdefault_atomic�s
zDictTest.test_setdefault_atomicc
CspGdd�dt�}|�}|dddddddddi}|�}g||<|�|jd�|�|jd�|�|j|jd�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z6DictTest.test_setitem_atomic_at_resize.<locals>.HashedcSsd|_d|_dSr�r�rrrr	rq�sz?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__init__cSs|jd7_dSr�r�rrrr	r[�sz?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__hash__cSs|jd7_t|�t|�kSrwr�rUrrr	rY�sz=DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__eq__Nr�rrrr	r��sr�r�rrrr/)rfrr�r�r�rrr	�test_setitem_atomic_at_resize�s
z&DictTest.test_setitem_atomic_at_resizecCs�dD]�}td�D]�}d|}i}i}t|�D]$}||t|�<|dkr,||t|�<q,|dkrb|��}t|�D]Z}|��\}}}	|�|t|��|��\}
}}|�|t|
��|�|dko�|	|k�qj|�|�|�|�qqi}
|�t|
j�dS)N)���r�rr)	r*rFr4�popitemr�intrOrrg)rZcopymodeZlog2size�sizer:r;r!ZkaZvaZtaZkbZvb�tbrGrrr	�test_popitem�s*
zDictTest.test_popitemcs�i}d\}}|||<|�t|jd�|�|�|�|�|�t|�d�|�t|j|�|�|�||�|�|||<|�|�|d�|�|�t|j�Gdd�dt��G�fdd�dt�}|�}d	||<d
|_|��|j|�dS)N)r��defZghirrc@seZdZdS)zDictTest.test_pop.<locals>.ExcNrrrrr	rX�r'rXcseZdZdZ�fdd�ZdS)z"DictTest.test_pop.<locals>.BadHashFcs|jr���ndSdSr`rarrWrr	r[�sz+DictTest.test_pop.<locals>.BadHash.__hash__NrcrrWrr	rd�srdr^T)	rrg�poprrRrrhrfrb)rrGr$r%rdrirrWr	�test_pop�s"zDictTest.test_popcCsPi}d|d<|�t��&|D]}d||d<qWd�n1sB0YdSrw�r�RuntimeError�rrGr!rrr	�test_mutating_iteration�s
z DictTest.test_mutating_iterationcCsRi}d|d<|�t��(|D]}|d=d|d<qWd�n1sD0YdSr�r�r�rrr	�test_mutating_iteration_delete�sz'DictTest.test_mutating_iteration_deletecCsVi}d|d<|�t��,|��D]}|d=d|d<q Wd�n1sH0YdSr�)rr�rIr�rrr	�*test_mutating_iteration_delete_over_valuessz3DictTest.test_mutating_iteration_delete_over_valuescCsVi}d|d<|�t��,|��D]}|d=d|d<q Wd�n1sH0YdSr��rr�r-r�rrr	�)test_mutating_iteration_delete_over_itemssz2DictTest.test_mutating_iteration_delete_over_itemscsPG�fdd�d���d�}�d�}|di}||f�_d||<|�||di�dS)Ncs,eZdZdZdd�Zdd�Z�fdd�ZdS)z/DictTest.test_mutating_lookup.<locals>.NastyKeyNcSs
||_dSr)r�)rr�rrr	rqsz8DictTest.test_mutating_lookup.<locals>.NastyKey.__init__cSsdSrwrrrrr	r[sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__cs(�jr�j\}}d�_||=|j|jkSr)�mutate_dictr�)rrVr�r���NastyKeyrr	rY s

z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__)rrrr�rqr[rYrr�rr	r�sr�rr)r�r)rZkey1Zkey2rGrr�r	�test_mutating_lookups
zDictTest.test_mutating_lookupcs�i}|�t|�d�d|d<|�t|�d�i}||d<|�t|�d�Gdd�dt��G�fdd	�d	t�}d|�i}|��t|�dS)
Nz{}rrz{1: 2}z
{1: {...}}c@seZdZdS)zDictTest.test_repr.<locals>.ExcNrrrrr	rX7r'rXcseZdZ�fdd�ZdS)z#DictTest.test_repr.<locals>.BadReprcs
���dSrrrrWrr	�__repr__:sz,DictTest.test_repr.<locals>.BadRepr.__repr__N)rrrr�rrWrr	�BadRepr9sr�)rrFrhrfr)rrGr�rrWr	�	test_repr.s
zDictTest.test_reprcCs4i}tt��d�D]}d|i}q|�tt|�dS)Nrnr)r*�sys�getrecursionlimitr�RecursionErrorrFr�rrr	�test_repr_deep@s
zDictTest.test_repr_deepcs�|�ii�|�ddiddi�Gdd�dt��G�fdd�dt�}|�di}ddi}|����||kWd�n1s~0YdS)Nrrc@seZdZdS)zDictTest.test_eq.<locals>.ExcNrrrrr	rXJr'rXcs eZdZ�fdd�Zdd�ZdS)z DictTest.test_eq.<locals>.BadCmpcs
���dSrrrUrWrr	rYMsz'DictTest.test_eq.<locals>.BadCmp.__eq__cSsdSrwrrrrr	r[Osz)DictTest.test_eq.<locals>.BadCmp.__hash__Nr\rrWrr	�BadCmpLsr�)rrhrfr)rr��d1r�rrWr	�test_eqFs
zDictTest.test_eqcCs |�dd��|�dd��dS)NcSs|��Sr)rD�rirrr	�<lambda>Yr'z.DictTest.test_keys_contained.<locals>.<lambda>cSs|��Sr�r-r�rrr	r�Zr')�helper_keys_containedrrrr	�test_keys_containedXszDictTest.test_keys_containedcCs�|t��}|t��}|ddd��}|dddd��}|dddd��}|dddd��}|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�dS)NrrrLr/r0)rTrr/)r
r>rO)r�fn�emptyZempty2ZsmallerZlargerZlarger2Zlarger3rrr	r�\s<

zDictTest.helper_keys_containedcCs�Gdd�d�}d|�i}d|�i}|�t�� |��|��kWd�n1sR0Y|�t�� |��|��kWd�n1s�0Y|�t�� |��|��kWd�n1s�0Y|�t�� |��|��kWd�n1�s0Y|�|�d�}|�t�� |��|��kWd�n1�sL0Y|�t�� |��|��kWd�n1�s�0YdS)Nc@seZdZdd�ZdS)z9DictTest.test_errors_in_view_containment_check.<locals>.CcSst�dSr�r�rUrrr	rY�sz@DictTest.test_errors_in_view_containment_check.<locals>.C.__eq__N�rrrrYrrrr	�C�sr�rrLr�)rr�r�r�Zd3rrr	�%test_errors_in_view_containment_check�s 

...00z.DictTest.test_errors_in_view_containment_checkcCs�ddd���}dddd���}ddi��}|�||t��|�||ddh�|�||dh�|�||dh�|�||@ddh�|�||@t��|�||Bhd��|�||Adh�|�||Ahd��dS)	NrrrLr/r0rT>rrr/>rrrT)rDrrC�r�k1�k2Zk3rrr	�$test_dictview_set_operations_on_keys�sz-DictTest.test_dictview_set_operations_on_keyscCs�ddd���}dddd���}ddi��}|�||t��|�||ddh�|�||d	h�|�||d
h�|�||@ddh�|�||@t��|�||Bhd��|�||Ad	h�|�||Ahd��dS)
NrrrLr/r0rTr1r2r3�rTrT>r1r3r2>r�r1r2)r-rrCr�rrr	�%test_dictview_set_operations_on_items�sz.DictTest.test_dictview_set_operations_on_itemscCs�|�ddi��dhk�|�dhddi��k�|�ddi��dhBddh�|�dhddi��Bddh�|�ddi��dhk�|�dhddi��k�|�ddi��dhBddh�|�dhddi��Bddh�dS)Nrrr1)r>rDrr-rrrr	�"test_dictview_mixed_set_operations�sz+DictTest.test_dictview_mixed_set_operationsc
Cs�|�ttd��|�tid��Gdd�dt�}|ddd��}|�|dd�|�|dd�|�d|�|�d|���|�|dd	�Gd
d�dt�}|�}|�t��}|d	Wd�n1s�0Y|�|jj	d�Gd
d�dt�}|�}|�t
��}|d	Wd�n1�s"0Y|�|jj	d�Gdd�dt�}|�}	|�t
��}|	d	Wd�n1�s|0Y|�|jj	d�dS)N�__missing__c@seZdZdd�ZdS)z DictTest.test_missing.<locals>.DcSsdSr`rr�rrr	r��sz,DictTest.test_missing.<locals>.D.__missing__N�rrrr�rrrr	�D�sr�rrT)rr/rr/r^c@seZdZdd�ZdS)z DictTest.test_missing.<locals>.EcSst|��dSrr�r�rrr	r��sz,DictTest.test_missing.<locals>.E.__missing__Nr�rrrr	�E�sr�)r^c@seZdZdd�ZdS)z DictTest.test_missing.<locals>.FcSsdd�|_dS)NcSsdSrr)r�rrr	r��r'z;DictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>)r�rrrr	rq�sz)DictTest.test_missing.<locals>.F.__init__Nr�rrrr	�F�sr�c@seZdZdS)z DictTest.test_missing.<locals>.GNrrrrr	�G�sr�)rO�hasattrr
rrNrDrr��	exception�argsrg)
rr�rGr��er<r��fr�r�rrr	�test_missing�s0&((zDictTest.test_missingcCsJi}|�t��}|dWd�n1s,0Y|�|jjd�dS)N�r)r)rrgrr�r)rrGr<rrr	�test_tuple_keyerror�s&zDictTest.test_tuple_keyerrorc	s~Gdd�dt��G�fdd�d�}i}|�}|�}d||<dD]:}|����t|t��Wd�q>1sn0Yq>dS)Nc@seZdZdS)z.DictTest.test_bad_key.<locals>.CustomExceptionNrrrrr	�CustomException�srcs eZdZdd�Z�fdd�ZdS)z)DictTest.test_bad_key.<locals>.BadDictKeycSs
t|j�Sr)�hash�	__class__rrrr	r[sz2DictTest.test_bad_key.<locals>.BadDictKey.__hash__cst||j�r��|Sr)�
isinstancerrU�rrr	rYsz0DictTest.test_bad_key.<locals>.BadDictKey.__eq__N�rrrr[rYrr
rr	�
BadDictKey�srr)z	d[x2] = 2z	z = d[x2]zx2 in dz	d.get(x2)zd.setdefault(x2, 42)z	d.pop(x2)zd.update({x2: 2}))rhr�exec�locals)rrrGZx1Zx2Zstmtrr
r	�test_bad_key�s	zDictTest.test_bad_keycCsJi}td�D]}|||<qtd�D]
}||=q"tdd�D]}|||<q8dS)Nr��	)r*r�rrr	�test_resize1s
zDictTest.test_resize1cs`G��fdd�dt�}i�d�d�|�<d�|�<d�|�<d�|�<d�|�<d	�d
�d<dS)Ncs"eZdZdd�Z��fdd�ZdS)z DictTest.test_resize2.<locals>.XcSsdS)Nr�rrrrr	r[+sz)DictTest.test_resize2.<locals>.X.__hash__cs�r���dS�NF�rlrU�rGZresizingrr	rY-sz'DictTest.test_resize2.<locals>.X.__eq__Nrrrrr	�X*srFrrr/rTr�Trr)rf�rrrrr	�test_resize2&s




zDictTest.test_resize2c
CsL|�t��*dddddddddd�}Wd�n1s:0Yi}dS)Nrr)r:r;r<rGrrr��h)r�ZeroDivisionErrorrJrrr	�$test_empty_presized_dict_in_freelist<s
�$z-DictTest.test_empty_presized_dict_in_freelistcCsxGdd�dt�}tjtjtjf}|D]N}|�}t�|�}|di}||�|_t|j�|_	~~t
��|�|�dd�q$dS)Nc@seZdZdS)z+DictTest.test_container_iterator.<locals>.CNrrrrr	r�Gsr�rzCycle was not collected)
rfr
r-rIrD�weakref�refr%�iterrir��collectr5)rr�Zviewsr%�objrZ	containerrrr	�test_container_iteratorDs

z DictTest.test_container_iteratorcCs&t��t��|�t�|�|�dSr)r�rrOr��r�trrr	�_not_trackedTszDictTest._not_trackedcCs8|�t�|�|�t��t��|�t�|�|�dSr)r>r�r�rr!rrr	�_trackedZszDictTest._trackedcCs�dddgf\}}}}|�i�|�|d|||di�|�ddd��|�dtd��|�dt�i�|�dgi�|�dgfi�|�dii�|�dt�i�dS)	N��?r:)rNrrr)rr;)r)NTFr)r#r�rfr$rC)rrir�r��wrrr	�test_track_literals`s
zDictTest.test_track_literalsc	CsVGdd�dt�}dddt�fg|�f\}}}}}t�}|�|�d|d<|�|�d||<|�|�d||<|�|�|�|���||d<|�|�|�|���d|d<|�|�|�|���t�}t�}||d<|�|�|�|�||d<|�|�t�|||g�}|�|�t�}|�|�|�|�t�||||g�}|�|�t�}|�|�|�|�t|||d	�}|�|�t||||d
�}|�|�t�}|j|||d	�|�|�|j|d�|�|�t||f|dfg�}|�|�t||f||fg�}|�|�t�}|�||f|dfg�|�|�|�||f||fg�|�|�dS)Nc@seZdZdS)z-DictTest.test_track_dynamic.<locals>.MyObjectNrrrrr	�MyObjectusr(r%r:rrr/rT�rir�r�)rir�r�r&)r&)rfr
r#r4r$r�r)	rr(rir�r�r&�orGZddrrr	�test_track_dynamicrsh 





















zDictTest.test_track_dynamiccCs Gdd�dt�}|�|��dS)Nc@seZdZdS)z,DictTest.test_track_subtypes.<locals>.MyDictNrrrrr	�MyDict�sr,)r
r$)rr,rrr	�test_track_subtypes�szDictTest.test_track_subtypescCsFGdd�d�}g}t|�D]&}|�}d\|_|_|_|�|j�q|S)Nc@seZdZdS)z(DictTest.make_shared_key_dict.<locals>.CNrrrrr	r��sr�r0)r*rir�r�r��__dict__)rr,r�Zdictsr!r:rrr	�make_shared_key_dict�szDictTest.make_shared_key_dictcCs~|�d�\}}d|d<t�|�}d|d<|�dd�t�|�}d|d<|�||�|�t|�gd��|�t|�gd��dS)zMsplit table must be combined when setdefault()
        breaks insertion orderrrr:r;)rir�r�r:r;)rir�r�r;r:N)r/r��	getsizeofr��
assertGreaterr�list)rr:r;Zsize_aZsize_brrr	�test_splittable_setdefault�s

z#DictTest.test_splittable_setdefaultcCs�|�d�\}}t�|�}|d=|�t��|d=Wd�n1sD0Y|�t�|�|�|�t|�ddg�|�t|�gd��d|d<|�t|�gd��|�t|�gd��dS)	z*split table must be combined when del d[k]rr�Nrir�r)r^�rir�r�)r/r�r0rrgr1rr2�rr:r;�	orig_sizerrr	�test_splittable_del�s
$zDictTest.test_splittable_delcCs�|�d�\}}t�|�}|�d�|�t��|�d�Wd�n1sL0Y|�t�|�|�|�t|�ddg�|�t|�gd��d|d<|�t|�gd��|�t|�gd��dS)	z*split table must be combined when d.pop(k)rr�Nrir�r)r^r4)	r/r�r0r�rrgr1rr2r5rrr	�test_splittable_pop�s

(zDictTest.test_splittable_popcCsN|�d�\}}d|d<|�t��|�d�Wd�n1s@0YdS)z3pop a pending key in a split table should not crashrrTr:N)r/rrgr�)rr:r;rrr	�test_splittable_pop_pending�sz$DictTest.test_splittable_pop_pendingcCs�|�d�\}}t�|�}|��}|�|d�|�t��|d=Wd�n1sR0Y|�t�|�|�|�t|�ddg�|�t|�gd��dS)z-split table must be combined when d.popitem()r)r�r/r�Nrir�r))	r/r�r0r�rrrgr1r2)rr:r;r6�itemrrr	�test_splittable_popitems
$z DictTest.test_splittable_popitemcCs�ddl}Gdd�d�}|�}d|_|�|�|j��|j�d�|�|�|j��d|_|�|�|j��|�}d|_|�|�|j��|j��|�|�|j��d|_|�|�|j��dS)	z;setattr() must not convert combined table into split table.rNc@seZdZdS)z5DictTest.test_splittable_setattr_after_pop.<locals>.CNrrrrr	r�sr�rr:rr/)�	_testcapir:r>Zdict_hassplittabler.r�rOr�)rr<r�r:rrr	�!test_splittable_setattr_after_pops 
z*DictTest.test_splittable_setattr_after_popc	Cs�ttjd�D]�}dddd�}t|�}t�||�}t�|�}|�t|�t|��t�|�}zt|�}Wnt	y|YqYn0t�||�}t�|�}||=|�t|�t|��qdS�Nrr:r;r<r0)
r*�pickle�HIGHEST_PROTOCOLr�dumps�loadsrr2�nextr��r�proto�data�itrG�droprrr	�test_iterator_pickling5s



zDictTest.test_iterator_picklingcCs�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�|tj	j
�|�t|�|�t�|�}t
|�}t�||�}t�|�}||d=|�t|�|�qdS�Nrr:r;r<r0r)r*r?r@rr-rArBr�r�r��Iteratorrr
rC�rrErFZitorgrGrGrHrrr	�test_itemiterator_picklingGs



z#DictTest.test_itemiterator_picklingcCs�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�t|�t|����t�|�}t	|�}t�||�}t�|�}t|�|g}|�t
|�t
t|�����qdSr>)r*r?r@rrIrArBrr2rC�sorted�rrErFrGrGrHrIrrr	�test_valuesiterator_pickling]s


z%DictTest.test_valuesiterator_picklingc	Cs�ttjd�D]�}dddd�}t|�}t�||�}t�|�}|�t|�tt|���t�|�}zt|�}Wnt	y�YqYn0t�||�}t�|�}||=|�t|�tt|���qdSr>)
r*r?r@�reversedrArBrr2rCr�rDrrr	�test_reverseiterator_picklingms



z&DictTest.test_reverseiterator_picklingcCs�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�|tj	j
�|�t|�|�t�|�}t
|�}t�||�}t�|�}||d=|�t|�|�qdSrJ)r*r?r@rQr-rArBr�r�r�rKrr
rCrLrrr	�!test_reverseitemiterator_picklings



z*DictTest.test_reverseitemiterator_picklingcCs�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�t|�tt|�����t�|�}t	|�}t�||�}t�|�}t|�|g}|�t
|�t
|����qdSr>)r*r?r@rQrIrArBrr2rCrNrOrrr	�#test_reversevaluesiterator_pickling�s


z,DictTest.test_reversevaluesiterator_picklingcCsZGdd�d�}|d�}Gdd�dt�}|�|jt||d���|�|j|j|d��dS)Nc@seZdZdd�ZdS)z=DictTest.test_instance_dict_getattr_str_subclass.<locals>.FoocSs
||_dSr)�msg)rrUrrr	rq�szFDictTest.test_instance_dict_getattr_str_subclass.<locals>.Foo.__init__Nr�rrrr	�Foo�srVZ123c@seZdZdS)z>DictTest.test_instance_dict_getattr_str_subclass.<locals>._strNrrrrr	�_str�srWrU)�strrrU�getattrr.)rrVrrWrrr	�'test_instance_dict_getattr_str_subclass�s
z0DictTest.test_instance_dict_getattr_str_subclasscCs<Gdd�d�}|�}d|jd<d|_|�|jddd��dS)Nc@seZdZdS)zFDictTest.test_object_set_item_single_instance_non_str_key.<locals>.FooNrrrrr	rV�r'rVrr:)rr:)r.r:r)rrVrrrr	�0test_object_set_item_single_instance_non_str_key�s

z9DictTest.test_object_set_item_single_instance_non_str_keycs@G��fdd�d���fdd�dD��t��D]}|�|<q.dS)NcseZdZ��fdd�ZdS)z4DictTest.check_reentrant_insertion.<locals>.Mutatingcs���dSrrr�rG�mutaterr	�__del__�sz<DictTest.check_reentrant_insertion.<locals>.Mutating.__del__N�rrrr^rr\rr	�Mutating�sr`csi|]}|���qSrrr�)r`rr	r��r'z6DictTest.check_reentrant_insertion.<locals>.<dictcomp>Zabcdefghijklmnopqr)r2)rr]r$r)r`rGr]r	�check_reentrant_insertion�sz"DictTest.check_reentrant_insertioncs>dd�}��|��fdd�}��|�dd�}��|�dS)NcSsd|d<dS)Nr�r;rrprrr	r]�sz1DictTest.test_reentrant_insertion.<locals>.mutatecs|��j�|��dSr)rr.rlrprrr	r]�scSs|r|��qdSr)r�rprrr	r]�s)ra)rr]rrr	�test_reentrant_insertion�s

z!DictTest.test_reentrant_insertioncsZG�fdd�d�}dd�tdd�D�}t|��d�|�<|�dddi}|�t|j��dS)Ncs eZdZdd�Z�fdd�ZdS)z)DictTest.test_merge_and_mutate.<locals>.XcSsdSr�rrrrr	r[�sz2DictTest.test_merge_and_mutate.<locals>.X.__hash__cs���dSrr)rr*�rVrr	rY�sz0DictTest.test_merge_and_mutate.<locals>.X.__eq__Nrrrcrr	r�srcSsg|]}|df�qS)rrrrrr	r"�r'z2DictTest.test_merge_and_mutate.<locals>.<listcomp>ri9r)r*r
rr�r)rr�lrGrrcr	�test_merge_and_mutate�s
zDictTest.test_merge_and_mutatecCsHt�|tt�t�|dd�t�t�|dd�t�t�|dd�t�dS)NcSst|���Sr)rrDrprrr	r��r'z4DictTest.test_free_after_iterating.<locals>.<lambda>cSst|���Sr)rrIrprrr	r��r'cSst|���Sr)rr-rprrr	r��r')rZcheck_free_after_iteratingrr
rrrr	�test_free_after_iterating�sz"DictTest.test_free_after_iteratingcspG��fdd�d�}|�di�|�|�i�|���k�G�fdd�d�}d|�i}dt�i�|�|�k�dS)Ncs,eZdZ�fdd�Z�fdd�Zdd�ZdS)z9DictTest.test_equal_operator_modifying_operand.<locals>.Xcs���dSrrr)�dict_brr	r^�szADictTest.test_equal_operator_modifying_operand.<locals>.X.__del__cs���dS�NTrrU)�dict_arr	rY�sz@DictTest.test_equal_operator_modifying_operand.<locals>.X.__eq__cSsdS�N�
rrrrr	r[�szBDictTest.test_equal_operator_modifying_operand.<locals>.X.__hash__N)rrrr^rYr[r)rirgrr	r�srrcseZdZ�fdd�ZdS)z9DictTest.test_equal_operator_modifying_operand.<locals>.Ycs���dSrhrrU��dict_drr	rY�sz@DictTest.test_equal_operator_modifying_operand.<locals>.Y.__eq__Nr�rrlrr	�Y�srn)r>rC)rrrnZdict_cr)rirgrmr	�%test_equal_operator_modifying_operand�s


z.DictTest.test_equal_operator_modifying_operandcsRG�fdd�dt�}i�|d�d|d�di�zt���WntyLYn0dS)Ncs eZdZdd�Z�fdd�ZdS)zADictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.XcSsdSrjrrrrr	r[szJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__cst��dkr���dS�NrF�rRrlrUrprr	rYszHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__Nrrrprr	rsrrr�r�r
r�r�rrrpr	�-test_fromkeys_operator_modifying_dict_operands	z6DictTest.test_fromkeys_operator_modifying_dict_operandcsNG�fdd�dt�}i�|d�|d�h�zt���WntyHYn0dS)Ncs eZdZdd�Z�fdd�ZdS)z@DictTest.test_fromkeys_operator_modifying_set_operand.<locals>.XcSsdSrjrrrrr	r[szIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__cst��dkr���dSrprqrUrprr	rYszGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__Nrrrprr	rsrrrrrrrrpr	�,test_fromkeys_operator_modifying_set_operands	z5DictTest.test_fromkeys_operator_modifying_set_operandcs2G�fdd�d�}dt�i�d|�f���vdS)NcseZdZ�fdd�ZdS)z:DictTest.test_dictitems_contains_use_after_free.<locals>.Xcs���tSr�rlr7rUrprr	rY(szADictTest.test_dictitems_contains_use_after_free.<locals>.X.__eq__Nr�rrprr	r'srr)rCr-rrrpr	�&test_dictitems_contains_use_after_free&s
z/DictTest.test_dictitems_contains_use_after_freecs0G�fdd�dt�}|�di�|�d�v�dS)Ncs eZdZ�fdd�Zdd�ZdS)z4DictTest.test_dict_contain_use_after_free.<locals>.Scs���tSrrurUrprr	rY2sz;DictTest.test_dict_contain_use_after_free.<locals>.S.__eq__cSstd�S)N�test)rrrrr	r[6sz=DictTest.test_dict_contain_use_after_free.<locals>.S.__hash__Nr\rrprr	�S1srxr�rw)rXrO)rrxrrpr	� test_dict_contain_use_after_free/s
z)DictTest.test_dict_contain_use_after_freecs*G�fdd�d�}|�dg�t�g�dS)NcseZdZ�fdd�ZdS)z,DictTest.test_init_use_after_free.<locals>.Xcsg�dd�<dSrjrr�Zpairrr	r[>sz5DictTest.test_init_use_after_free.<locals>.X.__hash__N)rrrr[rrzrr	r=sr�{)r
rrrzr	�test_init_use_after_free<s
z!DictTest.test_init_use_after_freecsFG�fdd�dt���fdd�td�D���fdd�}|�t|�dS)NcseZdZ�fdd�ZdS)z;DictTest.test_oob_indexing_dictiter_iternextitem.<locals>.Xcs���dSrrrrprr	r^GszCDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.X.__del__Nr_rrprr	rFsrcsi|]}|�|��qSrrr)rrr	r�Jr'zDDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.<dictcomp>rcs&���D]}|ddkrd�d<qdS)Nrrr�)�resultrprr	�iter_and_mutateLszIDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.iter_and_mutate)r�r*rr�)rr~r)rrGr	�'test_oob_indexing_dictiter_iternextitemEsz0DictTest.test_oob_indexing_dictiter_iternextitemcCsDdddddd�}|d=t|�}|�t|�td��|�tt|�dS)	Nrrrr/rT)r:r;�foor<rGr�Zdcba)rQrr2rr�rC)rrG�rrrr	�
test_reversedSs
zDictTest.test_reversedcCs�|�tti��g�|�tti����g�|�tti����g�|�tti����g�|�ttt���g�|�ttt�����g�|�ttt�����g�|�ttt�����g�dSr)rr2rQr-rIrDr
rrrr	�$test_reverse_iterator_for_empty_dictZsz-DictTest.test_reverse_iterator_for_empty_dictcCsnGdd�d�}|�tt|dd�j��ddg�|�tt|dd�j��dg�|�tt|dd�j��dg�dS)Nc@seZdZdd�ZdS)zADictTest.test_reverse_iterator_for_shared_shared_dicts.<locals>.AcSs|r
||_|r||_dSr)rir�)rrir�rrr	rqks
zJDictTest.test_reverse_iterator_for_shared_shared_dicts.<locals>.A.__init__Nr�rrrr	r�jsr�rrr�rir)rr2rQr.)rr�rrr	�-test_reverse_iterator_for_shared_shared_dictsis z6DictTest.test_reverse_iterator_for_shared_shared_dictscCs�t�ddg�}|�d�t|���}t|�}|�t|���|�Gdd�dt�}gd�}||�}|�|tt|�����Gdd�dt�}||�}|�|ddd	�tt|�����dS)
N�r:r�r;rr:c@seZdZdS)z1DictTest.test_dict_copy_order.<locals>.CustomDictNrrrrr	�
CustomDict}sr�)r�r�)r<r/c@s eZdZdd�ZeZdd�ZdS)z9DictTest.test_dict_copy_order.<locals>.CustomReversedDictcSsttt�|���Sr)rQr2r
rDrrrr	rD�sz>DictTest.test_dict_copy_order.<locals>.CustomReversedDict.keyscSstt�|��Sr)rQr
r-rrrr	r-�sz?DictTest.test_dict_copy_order.<locals>.CustomReversedDict.itemsN)rrrrDrzr-rrrr	�CustomReversedDict�sr�r�)r��OrderedDict�move_to_endr2r-r
r)rZodZexpectedr4r�ZpairsrGr�rrr	�test_dict_copy_orderss
	zDictTest.test_dict_copy_ordercCs0tdgi���}t��|�t�t|���dSr)rr-r�rr>r�rC�rrGrrr	�test_dict_items_result_gc�sz"DictTest.test_dict_items_result_gccCs0tdgi���}t��|�t�t|���dSr)rQr-r�rr>r�rCr�rrr	�"test_dict_items_result_gc_reversed�sz+DictTest.test_dict_items_result_gc_reversedN)Wrrrrrr.r=r@rHrKrMrQrSrjrmr�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�rrrrrrr r#r$r�cpython_onlyr'r+r-r/r3r7r8r9r;r=rIrMrPrRrSrTrZr[rarbrerfrorsrtrvryr|rr�r�r�r�r�r�rrrr	r
s�	 
	&L:


!			,+

?







	
	

rc@seZdZejdd��ZdS)�CAPITestcs�ddlm}dddd�}|�||dtd��d�|�||dtd��d�|�||d	td	��d�|�t|gdtd��|�t|idtd��Gd
d�dt��G�fdd
�d
�}|�|�}}|di}|�|||t|��d�|��|||t|��dS)Nr)�dict_getitem_knownhashrrr/r)rir�r�c@seZdZdS)z,CAPITest.test_getitem_knownhash.<locals>.ExcNrrrrr	rX�r'rXcs eZdZ�fdd�Zdd�ZdS)z.CAPITest.test_getitem_knownhash.<locals>.BadEqcs��dSrrrUrWrr	rY�sz5CAPITest.test_getitem_knownhash.<locals>.BadEq.__eq__cSsdS)N�rrrrr	r[�sz7CAPITest.test_getitem_knownhash.<locals>.BadEq.__hash__Nr\rrWrr	r]�sr])r<r�rrr�SystemErrorrgrh)rr�rGr]r�r�rrWr	�test_getitem_knownhash�szCAPITest.test_getitem_knownhashN)rrrrr�r�rrrr	r��sr�)�
mapping_testsc@seZdZeZdS)�GeneralMappingTestsN)rrrr
�	type2testrrrr	r��sr�c@seZdZdS)�DictNrrrrr	r��sr�c@seZdZeZdS)�SubclassMappingTestsN)rrrr�r�rrrr	r��sr��__main__)r��collections.abcr�r?rrr�ZunittestrrwrZTestCaserr�r�ZBasicTestMappingProtocolr�r
r�r�r�mainrrrr	�<module>s8#