Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_dict.cpython-310.opt-1.pyc

o

0�i���@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
Gdd�dej�ZGdd�dej�Z
ddl	mZGdd	�d	ej�ZGd
d�de�ZGdd
�d
ej�Zedkrfe��dSdS)�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^�Z1d_d`�Z2dadb�Z3e4j5dcdd��Z6e4j5dedf��Z7e4j5dgdh��Z8didj�Z9e4j5dkdl��Z:e4j5dmdn��Z;e4j5dodp��Z<e4j5dqdr��Z=e4j5dsdt��Z>e4j5dudv��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��ZTd�d��ZUd�d��ZVe4j5d�d���ZWe4j5d�d���ZXd�d��ZYd�S)��DictTestc	Cs�Gdd�dt�}ddi|ddi�fD];}|�t��tdi|��Wd�n1s+wY|�t��ijdi|��Wd�n1sHwYqdS)Nc@�eZdZdS)z7DictTest.test_invalid_keyword_arguments.<locals>.CustomN��__name__�
__module__�__qualname__�r	r	�5/opt/alt/python310/lib64/python3.10/test/test_dict.py�Custom�r��r	)�dict�assertRaises�	TypeError�update)�selfrZinvalidr	r	r
�test_invalid_keyword_argumentss����z'DictTest.test_invalid_keyword_argumentscCs |�t�i�|�t�i�dS�N)�assertEqualr�assertIsNot�rr	r	r
�test_constructorszDictTest.test_constructorcCs^dD]*}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�ir	r	r
�
<listcomp>!s�z5DictTest.test_literal_constructor.<locals>.<listcomp>css �|]\}}d�||�VqdS)z
{!r}: {:d}N)�format)r"�k�vr	r	r
�	<genexpr>$s�z4DictTest.test_literal_constructor.<locals>.<genexpr>�{z, �})�rangerZshufflerr�evalr)r�n�itemsZformatted_itemsZdictliteralr	r	r
�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
)rr
rr��r
rr0)rr
rr0)r
rr0r)�r
r
�rr�r0r0r	ZBADr)	�copyr�assertIs�__or__�NotImplementedrr�__ior__�
ValueError)r�a�b�cr	r	r
�test_merge_operator(s*zDictTest.test_merge_operatorcCsD|�id�|�ddi�|�ti�d�|�tddi�d�dS)NTr
rF)r6�
assertTrue�boolrr	r	r
�	test_boolHszDictTest.test_boolcCs�i}|�t|���t��ddd�}|��}|�t|�ddh�|�d|�|�d|�|�d|�|�d|�|�t|jd�|�ttdd����d�dS)Nr
r�r;r<r;r<�r;zdict_keys(['a']))r�set�keys�assertInrr�reprr)r�dr&r	r	r
�	test_keysNs
zDictTest.test_keyscCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)Nr
rrCzdict_values([1]))rrD�valuesrrrGr�rrHr	r	r
�test_values[szDictTest.test_valuescCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)Nr
r�r
rrCzdict_items([('a', 1)]))rrDr.rrrGrrKr	r	r
�
test_itemscszDictTest.test_itemsc	Cs�ttj�}Gdd�dt�}t|fD]@}|�}|��j}|��j}|��j}|||fD]}|�||�|�||�q*d|d<|||fD]}|�||�|�||�qBqdS)Nc@r)z)DictTest.test_views_mapping.<locals>.DictNrr	r	r	r
�DictnrrOZbar�foo)	�type�__dict__rrE�mappingrJr.�assertIsInstancer)	r�mappingproxyrO�clsrHZm1Zm2Zm3�mr	r	r
�test_views_mappingls 



��zDictTest.test_views_mappingcCsli}|�d|�|�d|v�|�d|v�ddd�}|�d|�|�d|�|�d|�|�t|j�dS)Nr;r
rrBr<r=)�assertNotIn�assertFalser?rFrr�__contains__rKr	r	r
�
test_contains�s
zDictTest.test_containscCs2i}|�t|�d�ddd�}|�t|�d�dS)Nrr
rrB)r�lenrKr	r	r
�test_len�s
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)Nr
rrBr;r<r0r=�)r;r=c� eZdZ�fdd�Zdd�ZdS)z$DictTest.test_getitem.<locals>.BadEqc����rr	�r�other��Excr	r
�__eq__��z+DictTest.test_getitem.<locals>.BadEq.__eq__cS�dS)N�r	rr	r	r
�__hash__��z-DictTest.test_getitem.<locals>.BadEq.__hash__N�rrrrfrjr	rdr	r
�BadEq��rm�*�c@r)z"DictTest.test_getitem.<locals>.ExcNrr	r	r	r
re��rec�eZdZdZ�fdd�ZdS)z&DictTest.test_getitem.<locals>.BadHashFc�|jr���dS�Nro��failrrdr	r
rj��z/DictTest.test_getitem.<locals>.BadHash.__hash__N�rrrrvrjr	rdr	r
�BadHash��ryT)rrr�__getitem__�object�KeyError�	Exceptionrv)rrHrmry�xr	rdr
�test_getitem�s(

zDictTest.test_getitemcCs4dddd�}|��|�|i�|�t|jd�dS�Nr
rr0r1)�clearrrrrKr	r	r
�
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�r0r1c@�$eZdZdd�Zdd�Zdd�ZdS)z,DictTest.test_update.<locals>.SimpleUserDictcSsdddd�|_dSr��rHrr	r	r
�__init__��z5DictTest.test_update.<locals>.SimpleUserDict.__init__cSs
|j��Sr)rHrErr	r	r
rE��
z1DictTest.test_update.<locals>.SimpleUserDict.keyscSs
|j|Srr�)rr#r	r	r
r{�r�z8DictTest.test_update.<locals>.SimpleUserDict.__getitem__N)rrrr�rEr{r	r	r	r
�SimpleUserDict��r�c@r)z!DictTest.test_update.<locals>.ExcNrr	r	r	r
re�rqrec�eZdZ�fdd�ZdS)�-DictTest.test_update.<locals>.FailingUserDictc���rr	rrdr	r
rE�rk�2DictTest.test_update.<locals>.FailingUserDict.keysN)rrrrEr	rdr	r
�FailingUserDict��r�cr`)r�csG�fdd�d�}|�S)Ncs(eZdZdd�Zdd�Z�fdd�ZdS)�EDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSs
d|_dS�Nr
�r#rr	r	r
r��r��NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__cS�|Srr	rr	r	r
�__iter__�rk�NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cs|jrd|_dS��)Nrr;r�rrdr	r
�__next__�s�NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N�rrrr�r�r�r	rdr	r
�	BogonIter�sr�r	�rr�rdr	r
rE�s
r�cSs|Srr	�r�keyr	r	r
r{�rk�9DictTest.test_update.<locals>.FailingUserDict.__getitem__N�rrrrEr{r	rdr	r
r��sc� eZdZdd�Z�fdd�ZdS)r�cSsGdd�d�}|�S)Nc@r�)r�cSstd�|_dS)Nr;)�ordr#rr	r	r
r���r�cSr�rr	rr	r	r
r��rkr�cSs.|jtd�krt|j�}|jd7_|St�)N�zr
)r#r��chr�
StopIteration)rZrtnr	r	r
r��s

r�Nr�r	r	r	r
r��r�r�r	r�r	r	r
rE�sr�cr�rr	r�rdr	r
r{�rkr�Nr�r	rdr	r
r��s
cr�)z$DictTest.test_update.<locals>.badseqcSr�rr	rr	r	r
r�rkz-DictTest.test_update.<locals>.badseq.__iter__crarr	rrdr	r
r�rgz-DictTest.test_update.<locals>.badseq.__next__N�rrrr�r�r	rdr	r
�badseq�r�)	rrrr�AttributeErrorr�r~r|r:)rrHr�r�r�r	rdr
�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=)r_�rcss�dVdSr�r	r	r	r	r
�gs�
z!DictTest.test_fromkeys.<locals>.gr
r0c@r)z(DictTest.test_fromkeys.<locals>.dictlikeNrr	r	r	r
�dictlikerqr�r;c@�eZdZdd�ZdS)z&DictTest.test_fromkeys.<locals>.mydictcSst��Sr)�collections�UserDict�rVr	r	r
�__new__�z.DictTest.test_fromkeys.<locals>.mydict.__new__N�rrrr�r	r	r	r
�mydict�r�ZabrBc@r)z#DictTest.test_fromkeys.<locals>.ExcNrr	r	r	r
re#rqrecr�)z(DictTest.test_fromkeys.<locals>.baddict1crarr	rrdr	r
r�&rgz1DictTest.test_fromkeys.<locals>.baddict1.__init__N�rrrr�r	rdr	r
�baddict1%r�r�cr�)z&DictTest.test_fromkeys.<locals>.BadSeqcSr�rr	rr	r	r
r�,rkz/DictTest.test_fromkeys.<locals>.BadSeq.__iter__crarr	rrdr	r
r�.rgz/DictTest.test_fromkeys.<locals>.BadSeq.__next__Nr�r	rdr	r
�BadSeq+r�r�cr�)z(DictTest.test_fromkeys.<locals>.baddict2crarr	)rr��valuerdr	r
�__setitem__4rgz4DictTest.test_fromkeys.<locals>.baddict2.__setitem__N)rrrr�r	rdr	r
�baddict23r�r�rcr�)z(DictTest.test_fromkeys.<locals>.baddict3cs�Srr	r�r�r	r
r�>rkz0DictTest.test_fromkeys.<locals>.baddict3.__new__Nr�r	r�r	r
�baddict3=r�r�cS�i|]}||�qSr	r	r!r	r	r
�
<dictcomp>@�z*DictTest.test_fromkeys.<locals>.<dictcomp>�
>r=r<r;)rr�fromkeysrrrrTr�r�r~r|�zipr+r5r)
rr�r�r�Zudr�r�r�r��resr	)rerHr
�
test_fromkeyssB
(zDictTest.test_fromkeyscCs�dddd�}|�|��|�|�|��|�|�|��dddd��|��}d|d<|�||�|�i��i�|�t|jd�dS)Nr
rr0r1r_)rr5r�assertNotEqualrr)rrHr5r	r	r
�	test_copyEszDictTest.test_copyc	Cs�dD]W}t�|d||d�}|j|d��;i}t|�D]}|||<q|��}|�||�|�||�d|d<|�||�|�t|�t|�d�Wd�n1sTwYqdS)N)r�r���i'i��r)�	dict_sizer�r�r
)	r�	randrange�subTestr+r5rrr�r])rr�rHr#�d2r	r	r
�test_copy_fuzzRs"�
���zDictTest.test_copy_fuzzcCsPGdd�d�}|�}iddi|difD]}|��}|�t�|�t�|��qdS)Nc@r)z0DictTest.test_copy_maintains_tracking.<locals>.ANrr	r	r	r
�Acrr�r;r
�val)r5r�gc�
is_tracked)rr�r�rHr�r	r	r
�test_copy_maintains_trackingbs�z%DictTest.test_copy_maintains_trackingcCs>dd�td�D�}td�D]}||=q
|��}|�||�dS)NcSr�r	r	�r"r&r	r	r
r�sr�z1DictTest.test_copy_noncompact.<locals>.<dictcomp>r�i�)r+r5r)rrHr&r�r	r	r
�test_copy_noncompactls
zDictTest.test_copy_noncompactcCs�i}|�|�d�d�|�|�dd�d�ddd�}|�|�d�d�|�|�dd�d�|�|�d�d�|�|�dd�d�|�t|j�|�t|jddd�dS)Nr=r0r
rrBr;)r6�getrrrrKr	r	r
�test_getys
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�r0rr_rc@r)z%DictTest.test_setdefault.<locals>.ExcNrr	r	r	r
re�rqrecrr)z)DictTest.test_setdefault.<locals>.BadHashFcrsrtrurrdr	r
rj�rwz2DictTest.test_setdefault.<locals>.BadHash.__hash__Nrxr	rdr	r
ry�rzryroT)
r6�
setdefault�appendrr]rrr~r|rv)rrHryrr	rdr
�test_setdefault�szDictTest.test_setdefaultcCsdGdd�dt�}|�}|di}|�}|�|g�|�|jd�|�|jd�|�|j|jd�dS)Nc@r�)z/DictTest.test_setdefault_atomic.<locals>.HashedcS�d|_d|_dS�Nr��
hash_count�eq_countrr	r	r
r���
z8DictTest.test_setdefault_atomic.<locals>.Hashed.__init__cS�|jd7_dS�Nr
ro�r�rr	r	r
rj��z8DictTest.test_setdefault_atomic.<locals>.Hashed.__hash__cS�|jd7_t|�t|�kSr��r��idrbr	r	r
rf��z6DictTest.test_setdefault_atomic.<locals>.Hashed.__eq__N�rrrr�rjrfr	r	r	r
�Hashed��r�r�r
)r|r�rr�r��rr�Zhashed1�yZhashed2r	r	r
�test_setdefault_atomic�s
zDictTest.test_setdefault_atomicc
CspGdd�dt�}|�}|dddddddddi}|�}g||<|�|jd�|�|jd�|�|j|jd�dS)Nc@r�)z6DictTest.test_setitem_atomic_at_resize.<locals>.HashedcSr�r�r�rr	r	r
r��r�z?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__init__cSr�r�r�rr	r	r
rj�r�z?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__hash__cSr�r�r�rbr	r	r
rf�r�z=DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__eq__Nr�r	r	r	r
r��r�r�r�rr
rr0)r|rr�r�r�r	r	r
�test_setitem_atomic_at_resize�s
z&DictTest.test_setitem_atomic_at_resizecCs�dD]l}td�D]e}d|}i}i}t|�D]}||t|�<|dkr(||t|�<q|dkr1|��}t|�D]-}|��\}}}	|�|t|��|��\}
}}|�|t|
��|�|dko`|	|k�q5|�|�|�|�qqi}
|�t|
j�dS)N)���r
�rr)	r+rGr5�popitemr�intrZrr})rZcopymodeZlog2size�sizer;r<r#ZkaZvaZtaZkbZvb�tbrHr	r	r
�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��defZghirr
c@r)zDictTest.test_pop.<locals>.ExcNrr	r	r	r
re�rqrecrr)z"DictTest.test_pop.<locals>.BadHashFcrsrtrurrdr	r
rj�rwz+DictTest.test_pop.<locals>.BadHash.__hash__Nrxr	rdr	r
ry�rzryroT)	rr}�poprr]rr~r|rv)rrHr&r'ryrr	rdr
�test_pop�s"zDictTest.test_popcCsRi}d|d<|�t��|D]}d||d<qWd�dS1s"wYdSr��r�RuntimeError�rrHr#r	r	r
�test_mutating_iterations�"�z DictTest.test_mutating_iterationcCsTi}d|d<|�t��|D]	}|d=d|d<qWd�dS1s#wYdSr�r�r�r	r	r
�test_mutating_iteration_delete
s
�"�z'DictTest.test_mutating_iteration_deletecC�Xi}d|d<|�t��|��D]	}|d=d|d<qWd�dS1s%wYdSr�)rr�rJr�r	r	r
�*test_mutating_iteration_delete_over_values�
�"�z3DictTest.test_mutating_iteration_delete_over_valuescCrr��rr�r.r�r	r	r
�)test_mutating_iteration_delete_over_itemsrz2DictTest.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>.NastyKeyNcS�
||_dSr)r�)rr�r	r	r
r�-r�z8DictTest.test_mutating_lookup.<locals>.NastyKey.__init__cSrhr�r	rr	r	r
rj0sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__cs(�jr�j\}}d�_||=|j|jkSr)�mutate_dictr�)rrcr�r���NastyKeyr	r
rf4s

z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__)rrrrr�rjrfr	r	r	r
r
*s
r
r
r)rr)r�key1�key2rHr	r	r
�test_mutating_lookup(s
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{}rr
z{1: 2}z
{1: {...}}c@r)zDictTest.test_repr.<locals>.ExcNrr	r	r	r
reKrqrecr�)z#DictTest.test_repr.<locals>.BadReprcrarr	rrdr	r
�__repr__Nrgz,DictTest.test_repr.<locals>.BadRepr.__repr__N)rrrrr	rdr	r
�BadReprMr�r)rrGr~r|r)rrHrr	rdr
�	test_reprBs
zDictTest.test_reprcCs4i}tt��d�D]}d|i}q
|�tt|�dS)Nr�r
)r+�sys�getrecursionlimitr�RecursionErrorrGr�r	r	r
�test_repr_deepTs
zDictTest.test_repr_deepcs�|�ii�|�ddiddi�Gdd�dt��G�fdd�dt�}|�di}ddi}|����
||kWd�dS1s@wYdS)Nr
rc@r)zDictTest.test_eq.<locals>.ExcNrr	r	r	r
re^rqrecr`)z DictTest.test_eq.<locals>.BadCmpcrarr	rbrdr	r
rfargz'DictTest.test_eq.<locals>.BadCmp.__eq__cSrhr�r	rr	r	r
rjcrkz)DictTest.test_eq.<locals>.BadCmp.__hash__Nrlr	rdr	r
�BadCmp`rnr)rr~r|r)rr�d1r�r	rdr
�test_eqZs

"�zDictTest.test_eqcCs |�dd��|�dd��dS)NcS�|��Sr)rE�rr	r	r
�<lambda>m�z.DictTest.test_keys_contained.<locals>.<lambda>cSrr�r.rr	r	r
rnr)�helper_keys_containedrr	r	r
�test_keys_containedlszDictTest.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)Nr
rrMr0r1)r_rr0)rr?rZ)r�fn�emptyZempty2ZsmallerZlargerZlarger2Zlarger3r	r	r
rps<

zDictTest.helper_keys_containedcCs�Gdd�d�}d|�i}d|�i}|�t��|��|��kWd�n1s)wY|�t��|��|��kWd�n1sFwY|�t��|��|��kWd�n1scwY|�t��|��|��kWd�n1s�wY|�|�d�}|�t��|��|��kWd�n1s�wY|�t��|��|��kWd�dS1s�wYdS)Nc@r�)z9DictTest.test_errors_in_view_containment_check.<locals>.CcSst�r�r�rbr	r	r
rf�rkz@DictTest.test_errors_in_view_containment_check.<locals>.C.__eq__N�rrrrfr	r	r	r
�C�r�r#r
rMr)rr#rr�Zd3r	r	r
�%test_errors_in_view_containment_check�s,

�����"�z.DictTest.test_errors_in_view_containment_checkcCs�ddd���}dddd���}ddi��}|�||t��|�||ddh�|�||dh�|�||dh�|�||@ddh�|�||@t��|�||Bhd��|�||Adh�|�||Ahd��dS)	Nr
rrMr0r1r_>r
rr0>r
rr_)rErrD�r�k1�k2Zk3r	r	r
�$test_dictview_set_operations_on_keys��z-DictTest.test_dictview_set_operations_on_keyscCs�ddd���}dddd���}ddi��}|�||t��|�||ddh�|�||d	h�|�||d
h�|�||@ddh�|�||@t��|�||Bhd��|�||Ad	h�|�||Ahd��dS)
Nr
rrMr0r1r_r2r3r4�r_r_>r2r4r3>r*r2r3)r.rrDr%r	r	r
�%test_dictview_set_operations_on_items�r)z.DictTest.test_dictview_set_operations_on_itemsc	s�tj�td�D]I}�fdd�td�D�}�fdd�td�D�}|j||d��"t|���t|���A}|��|��A}|�||�Wd�n1sKwYqdS)Nr�c�i|]}�d�r|�d��qS�rr0r	�r"r�Zrrr	r
r���z<DictTest.test_items_symmetric_difference.<locals>.<dictcomp>r�cr,r-r	r.r/r	r
r��r0)�left�right)rr�r+r�rDr.r)r�_r1r2�expectedZactualr	r/r
�test_items_symmetric_difference�s���z(DictTest.test_items_symmetric_differencecCs�|�ddi��dhk�|�dhddi��k�|�ddi��dhBddh�|�dhddi��Bddh�|�ddi��dhk�|�dhddi��k�|�ddi��dhBddh�|�dhddi��Bddh�dS)Nr
rr2)r?rErr.rr	r	r
�"test_dictview_mixed_set_operations�s"z+DictTest.test_dictview_mixed_set_operationsc
Cs�|�ttd��|�tid��Gdd�dt�}|ddd��}|�|dd�|�|dd�|�d|�|�d|���|�|dd	�Gd
d�dt�}|�}|�t��}|d	Wd�n1sdwY|�|jj	d�Gd
d�dt�}|�}|�t
��}|d	Wd�n1s�wY|�|jj	d�Gdd�dt�}|�}	|�t
��}|	d	Wd�n1s�wY|�|jj	d�dS)N�__missing__c@r�)z DictTest.test_missing.<locals>.DcSrhrtr	r�r	r	r
r7�rkz,DictTest.test_missing.<locals>.D.__missing__N�rrrr7r	r	r	r
�D�r�r9rr_)r
r0r
r0roc@r�)z DictTest.test_missing.<locals>.EcSst|��rr!r�r	r	r
r7�r�z,DictTest.test_missing.<locals>.E.__missing__Nr8r	r	r	r
�E�r�r:�roc@r�)z DictTest.test_missing.<locals>.FcSsdd�|_dS)NcSsdSrr	)r�r	r	r
rsz;DictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>)r7rr	r	r
r�sz)DictTest.test_missing.<locals>.F.__init__Nr�r	r	r	r
�Fr�r<c@r)z DictTest.test_missing.<locals>.GNrr	r	r	r
�G
rr=)rZ�hasattrrrrYrErr��	exception�argsr})
rr9rHr:�er=r<�fr=r�r	r	r
�test_missing�s6
�
�
�zDictTest.test_missingcCsJi}|�t��}|dWd�n1swY|�|jjd�dS)N�r
)rD)rr}rr?r@)rrHr=r	r	r
�test_tuple_keyerrors

�zDictTest.test_tuple_keyerrorc	s~Gdd�dt��G�fdd�d�}i}|�}|�}d||<dD]}|����t|t��Wd�n1s7wYqdS)Nc@r)z.DictTest.test_bad_key.<locals>.CustomExceptionNrr	r	r	r
�CustomExceptionrrFcr�)z)DictTest.test_bad_key.<locals>.BadDictKeycSs
t|j�Sr)�hash�	__class__rr	r	r
rjr�z2DictTest.test_bad_key.<locals>.BadDictKey.__hash__cst||j�r��|Sr)�
isinstancerHrb�rFr	r
rf!sz0DictTest.test_bad_key.<locals>.BadDictKey.__eq__N�rrrrjrfr	rJr	r
�
BadDictKey�rLr
)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}))r~r�exec�locals)rrLrHZx1Zx2Zstmtr	rJr
�test_bad_keys	���zDictTest.test_bad_keycCsJi}td�D]}|||<qtd�D]}||=qtdd�D]}|||<qdS)Nr��	)r+r�r	r	r
�test_resize14s

�zDictTest.test_resize1cs`G��fdd�dt�}i�d�d�|�<d�|�<d�|�<d�|�<d�|�<d	�d
�d<dS)Nc�"eZdZdd�Z��fdd�ZdS)z DictTest.test_resize2.<locals>.XcSrh)Nr�r	rr	r	r
rjIrkz)DictTest.test_resize2.<locals>.X.__hash__cs�r���dS�NF�r�rb�rHZresizingr	r
rfKsz'DictTest.test_resize2.<locals>.X.__eq__NrKr	rVr	r
�XHsrWFr
rr0r_r�TrrQ)r|�rrWr	rVr
�test_resize2Ds




zDictTest.test_resize2c
CsR|�t��dddddddddd�}Wd�i}dS1s wYi}dS)Nr
r)r;r<r=rHrArBr��h)r�ZeroDivisionErrorrKr	r	r
�$test_empty_presized_dict_in_freelistZs�
��z-DictTest.test_empty_presized_dict_in_freelistcCsxGdd�dt�}tjtjtjf}|D]'}|�}t�|�}|di}||�|_t|j�|_	~~t
��|�|�dd�qdS)Nc@r)z+DictTest.test_container_iterator.<locals>.CNrr	r	r	r
r#err#r
zCycle was not collected)
r|rr.rJrE�weakref�refr'�iterrr��collectr6)rr#Zviewsr'�objr^Z	containerr	r	r
�test_container_iteratorbs

�z DictTest.test_container_iteratorcCs&t��t��|�t�|�|�dSr)r�r`rZr��r�tr	r	r
�_not_trackedrszDictTest._not_trackedcCs8|�t�|�|�t��t��|�t�|�|�dSr)r?r�r�r`rcr	r	r
�_trackedxszDictTest._trackedcCs�dddgf\}}}}|�i�|�|d|||di�|�ddd��|�dtd��|�dt�i�|�dgi�|�dgfi�|�dii�|�dt�i�dS)	N��?r;)r
Nr	r
r)r
r<)r
)NTFr	)rer�r|rfrD)rrr�r��wr	r	r
�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@r)z-DictTest.test_track_dynamic.<locals>.MyObjectNrr	r	r	r
�MyObject�rrjrgr;r
rr0r_�rr�r�)rr�r�rh)rh)r|rrer5rfr�r)	rrjrr�r�rh�orHZddr	r	r
�test_track_dynamic�sh 





















zDictTest.test_track_dynamiccCs Gdd�dt�}|�|��dS)Nc@r)z,DictTest.test_track_subtypes.<locals>.MyDictNrr	r	r	r
�MyDict�rrn)rrf)rrnr	r	r
�test_track_subtypes�szDictTest.test_track_subtypescCsFGdd�d�}g}t|�D]}|�}d\|_|_|_|�|j�q
|S)Nc@r)z(DictTest.make_shared_key_dict.<locals>.CNrr	r	r	r
r#�rr#r1)r+rr�r�r�rR)rr-r#�dictsr#r;r	r	r
�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 orderrr
r;r<)rr�r�r;r<)rr�r�r<r;N)rqr�	getsizeofr��
assertGreaterr�list)rr;r<Zsize_aZsize_br	r	r
�test_splittable_setdefault�s

z#DictTest.test_splittable_setdefaultcCs�|�d�\}}t�|�}|d=|�t��|d=Wd�n1s"wY|�t�|�|�|�t|�ddg�|�t|�gd��d|d<|�t|�gd��|�t|�gd��dS)	z*split table must be combined when del d[k]rr�Nrr�rkro�rr�r�)rqrrrrr}rsrrt�rr;r<�	orig_sizer	r	r
�test_splittable_del�s
�zDictTest.test_splittable_delcCs�|�d�\}}t�|�}|�d�|�t��
|�d�Wd�n1s&wY|�t�|�|�|�t|�ddg�|�t|�gd��d|d<|�t|�gd��|�t|�gd��dS)	z*split table must be combined when d.pop(k)rr�Nrr�rkrorv)	rqrrrr�rr}rsrrtrwr	r	r
�test_splittable_pops

�zDictTest.test_splittable_popcCsP|�d�\}}d|d<|�t��|�d�Wd�dS1s!wYdS)z3pop a pending key in a split table should not crashrr_r;N)rqrr}r�)rr;r<r	r	r
�test_splittable_pop_pendings
"�z$DictTest.test_splittable_pop_pendingcCs�|�d�\}}t�|�}|��}|�|d�|�t��|d=Wd�n1s)wY|�t�|�|�|�t|�ddg�|�t|�gd��dS)z-split table must be combined when d.popitem()r)r�r0r�Nrr�rk)	rqrrrr�rrr}rsrt)rr;r<rx�itemr	r	r
�test_splittable_popitem%s
�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@r)z5DictTest.test_splittable_setattr_after_pop.<locals>.CNrr	r	r	r
r#;rr#r
r;rr0)�	_testcapir;r?Zdict_hassplittablerRr�rZr�)rr~r#r;r	r	r
�!test_splittable_setattr_after_pop5s 
z*DictTest.test_splittable_setattr_after_popc	Cs�ttjd�D]N}dddd�}t|�}t�||�}t�|�}|�t|�t|��t�|�}zt|�}Wn	t	y<Yqwt�||�}t�|�}||=|�t|�t|��qdS�Nr
r;r<r=r1)
r+�pickle�HIGHEST_PROTOCOLr_�dumps�loadsrrt�nextr��r�proto�data�itrH�dropr	r	r
�test_iterator_picklingSs"

�
�zDictTest.test_iterator_picklingcC�ttjd�D]J}dddd�}t|���}t�||�}t�|�}|�|tj	j
�|�t|�|�t�|�}t
|�}t�||�}t�|�}||d=|�t|�|�qdS�Nr
r;r<r=r1r)r+r�r�r_r.r�r�rTr�r��Iteratorrrr��rr�r�ZitorgrHr�r�r	r	r
�test_itemiterator_picklinge�



�z#DictTest.test_itemiterator_picklingcCs�ttjd�D]N}dddd�}t|���}t�||�}t�|�}|�t|�t|����t�|�}t	|�}t�||�}t�|�}t|�|g}|�t
|�t
t|�����qdSr�)r+r�r�r_rJr�r�rrtr��sorted�rr�r�r�rHr�rJr	r	r
�test_valuesiterator_pickling{s


�z%DictTest.test_valuesiterator_picklingc	Cs�ttjd�D]R}dddd�}t|�}t�||�}t�|�}|�t|�tt|���t�|�}zt|�}Wn	t	y>Yqwt�||�}t�|�}||=|�t|�tt|���qdSr�)
r+r�r��reversedr�r�rrtr�r�r�r	r	r
�test_reverseiterator_pickling�s"

�
�z&DictTest.test_reverseiterator_picklingcCr�r�)r+r�r�r�r.r�r�rTr�r�r�rrr�r�r	r	r
�!test_reverseitemiterator_pickling�r�z*DictTest.test_reverseitemiterator_picklingcCs�ttjd�D]N}dddd�}t|���}t�||�}t�|�}|�t|�tt|�����t�|�}t	|�}t�||�}t�|�}t|�|g}|�t
|�t
|����qdSr�)r+r�r�r�rJr�r�rrtr�r�r�r	r	r
�#test_reversevaluesiterator_pickling�s


�z,DictTest.test_reversevaluesiterator_picklingcCsZGdd�d�}|d�}Gdd�dt�}|�|jt||d���|�|j|j|d��dS)Nc@r�)z=DictTest.test_instance_dict_getattr_str_subclass.<locals>.FoocSrr)�msg)rr�r	r	r
r��r�zFDictTest.test_instance_dict_getattr_str_subclass.<locals>.Foo.__init__Nr�r	r	r	r
�Foo�r�r�Z123c@r)z>DictTest.test_instance_dict_getattr_str_subclass.<locals>._strNrr	r	r	r
�_str�rr�r�)�strrr��getattrrR)rr�rBr�r	r	r
�'test_instance_dict_getattr_str_subclass�s
z0DictTest.test_instance_dict_getattr_str_subclasscCs<Gdd�d�}|�}d|jd<d|_|�|jddd��dS)Nc@r)zFDictTest.test_object_set_item_single_instance_non_str_key.<locals>.FooNrr	r	r	r
r��rqr�r
r;)r
r;)rRr;r)rr�rBr	r	r
�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]}|�|<qdS)NcseZdZ��fdd�ZdS)z4DictTest.check_reentrant_insertion.<locals>.Mutatingcs���dSrr	r�rH�mutater	r
�__del__��z<DictTest.check_reentrant_insertion.<locals>.Mutating.__del__N�rrrr�r	r�r	r
�Mutating�sr�csi|]}|���qSr	r	r�)r�r	r
r���z6DictTest.check_reentrant_insertion.<locals>.<dictcomp>Zabcdefghijklmnopqr)rt)rr�r&r	)r�rHr�r
�check_reentrant_insertion�s

�z"DictTest.check_reentrant_insertioncs>dd�}��|��fdd�}��|�dd�}��|�dS)NcSsd|d<dS)Nr�r<r	r�r	r	r
r��r�z1DictTest.test_reentrant_insertion.<locals>.mutatecs|��j�|��dSr)rrRr�r�rr	r
r��scSs|r
|��|sdSdSr)r�r�r	r	r
r��s�)r�)rr�r	rr
�test_reentrant_insertion�s

z!DictTest.test_reentrant_insertioncsZG�fdd�d�}dd�tdd�D�}t|��d�|�<|�dddi}|�t|j��dS)Ncr�)z)DictTest.test_merge_and_mutate.<locals>.XcSrhr�r	rr	r	r
rj�rkz2DictTest.test_merge_and_mutate.<locals>.X.__hash__c����dSrTrU)rrl�rcr	r
rf��z0DictTest.test_merge_and_mutate.<locals>.X.__eq__NrKr	r�r	r
rW�rMrWcSsg|]}|df�qS)rr	r!r	r	r
r$�r�z2DictTest.test_merge_and_mutate.<locals>.<listcomp>r
i9r)r+rrr�r)rrW�lrHr	r�r
�test_merge_and_mutate�s
zDictTest.test_merge_and_mutatecCsHt�|tt�t�|dd�t�t�|dd�t�t�|dd�t�dS)NcS�t|���Sr)r_rEr�r	r	r
rrqz4DictTest.test_free_after_iterating.<locals>.<lambda>cSr�r)r_rJr�r	r	r
rrqcSr�r)r_r.r�r	r	r
rrq)rZcheck_free_after_iteratingr_rrr	r	r
�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>.Xc����dSrrUr)�dict_br	r
r�r�zADictTest.test_equal_operator_modifying_operand.<locals>.X.__del__cr��NTrUrb)�dict_ar	r
rfr�z@DictTest.test_equal_operator_modifying_operand.<locals>.X.__eq__cSrh�N�
r	rr	r	r
rjrkzBDictTest.test_equal_operator_modifying_operand.<locals>.X.__hash__N)rrrr�rfrjr	)r�r�r	r
rWsrWrcr�)z9DictTest.test_equal_operator_modifying_operand.<locals>.Ycr�r�rUrb��dict_dr	r
rfr�z@DictTest.test_equal_operator_modifying_operand.<locals>.Y.__eq__Nr"r	r�r	r
�Yr�r�)r?rD)rrWr�Zdict_cr	)r�r�r�r
�%test_equal_operator_modifying_operands


z.DictTest.test_equal_operator_modifying_operandcsRG�fdd�dt�}i�|d�d|d�di�zt���WdSty(YdSw)Ncr�)zADictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.XcSrhr�r	rr	r	r
rj#rkzJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__c�t��dkr
���dS�Nr
F�r]r�rbr�r	r
rf&�zHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__NrKr	r�r	r
rW"rMrWr
r�r�rr�r�rXr	r�r
�-test_fromkeys_operator_modifying_dict_operand s	�z6DictTest.test_fromkeys_operator_modifying_dict_operandcsNG�fdd�dt�}i�|d�|d�h�zt���WdSty&YdSw)Ncr�)z@DictTest.test_fromkeys_operator_modifying_set_operand.<locals>.XcSrhr�r	rr	r	r
rj5rkzIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__cr�r�r�rbr�r	r
rf8r�zGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__NrKr	r�r	r
rW4rMrWr
rr�rXr	r�r
�,test_fromkeys_operator_modifying_set_operand2s	�z5DictTest.test_fromkeys_operator_modifying_set_operandcs2G�fdd�d�}dt�i�d|�f���vdS)Ncr�)z:DictTest.test_dictitems_contains_use_after_free.<locals>.Xc����tSr�r�r8rbr�r	r
rfFr�zADictTest.test_dictitems_contains_use_after_free.<locals>.X.__eq__Nr"r	r�r	r
rWEr�rWr)rDr.rXr	r�r
�&test_dictitems_contains_use_after_freeDs
z/DictTest.test_dictitems_contains_use_after_freecs0G�fdd�dt�}|�di�|�d�v�dS)Ncr`)z4DictTest.test_dict_contain_use_after_free.<locals>.Scr�rr�rbr�r	r
rfPr�z;DictTest.test_dict_contain_use_after_free.<locals>.S.__eq__cS�td�S)N�test�rGrr	r	r
rjTr�z=DictTest.test_dict_contain_use_after_free.<locals>.S.__hash__Nrlr	r�r	r
�SOsr�r�r�)r�rZ)rr�r	r�r
� test_dict_contain_use_after_freeMs
z)DictTest.test_dict_contain_use_after_freecs*G�fdd�d�}|�dg�t�g�dS)Ncr�)z,DictTest.test_init_use_after_free.<locals>.Xcsg�dd�<dSr�r	r�Zpairr	r
rj\sz5DictTest.test_init_use_after_free.<locals>.X.__hash__N)rrrrjr	r�r	r
rW[r�rW�{)rrXr	r�r
�test_init_use_after_freeZs
z!DictTest.test_init_use_after_freecsFG�fdd�dt���fdd�td�D���fdd�}|�t|�dS)Ncr�)z;DictTest.test_oob_indexing_dictiter_iternextitem.<locals>.Xcr�rrUrr�r	r
r�er�zCDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.X.__del__Nr�r	r�r	r
rWdr�rWcsi|]}|�|��qSr	r	r!)rWr	r
r�hszDDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.<dictcomp>rcs&���D]}|ddkrd�d<qdS)Nrrr)�resultr�r	r
�iter_and_mutatejs
��zIDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.iter_and_mutate)r�r+rr�)rr�r	)rWrHr
�'test_oob_indexing_dictiter_iternextitemcsz0DictTest.test_oob_indexing_dictiter_iternextitemcCsDdddddd�}|d=t|�}|�t|�td��|�tt|�dS)	Nr
rrr0r_)r;r<rPr=rHrPZdcba)r�rrtrr�r�)rrH�rr	r	r
�
test_reversedqs
zDictTest.test_reversedcCs�|�tti��g�|�tti����g�|�tti����g�|�tti����g�|�ttt���g�|�ttt�����g�|�ttt�����g�|�ttt�����g�dSr)rrtr�r.rJrErrr	r	r
�$test_reverse_iterator_for_empty_dictxsz-DictTest.test_reverse_iterator_for_empty_dictcCsnGdd�d�}|�tt|dd�j��ddg�|�tt|dd�j��dg�|�tt|dd�j��dg�dS)Nc@r�)zADictTest.test_reverse_iterator_for_shared_shared_dicts.<locals>.AcSs|r||_|r||_dSdSr)rr�)rrr�r	r	r
r��s
zJDictTest.test_reverse_iterator_for_shared_shared_dicts.<locals>.A.__init__Nr�r	r	r	r
r��r�r�r
rr�rr)rrtr�rR)rr�r	r	r
�-test_reverse_iterator_for_shared_shared_dicts�s "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<rr;c@r)z1DictTest.test_dict_copy_order.<locals>.CustomDictNrr	r	r	r
�
CustomDict�rr�)r�r�)r=r0c@s eZdZdd�ZeZdd�ZdS)z9DictTest.test_dict_copy_order.<locals>.CustomReversedDictcSsttt�|���Sr)r�rtrrErr	r	r
rE�r�z>DictTest.test_dict_copy_order.<locals>.CustomReversedDict.keyscSstt�|��Sr)r�rr.rr	r	r
r.�r�z?DictTest.test_dict_copy_order.<locals>.CustomReversedDict.itemsN)rrrrEr�r.r	r	r	r
�CustomReversedDict�sr�r�)r��OrderedDict�move_to_endrtr.rr)rZodr4r5r�ZpairsrHr�r	r	r
�test_dict_copy_order�s
	&zDictTest.test_dict_copy_ordercC�0tdgi���}t��|�t�t|���dSr)r_r.r�r`r?r�r��rr�r	r	r
�test_dict_items_result_gc�sz"DictTest.test_dict_items_result_gccCr�r)r�r.r�r`r?r�r�r�r	r	r
�"test_dict_items_result_gc_reversed�sz+DictTest.test_dict_items_result_gc_reversedc
	s Gdd�dt�}d�G��fdd�d��|d�}��}��}g}||fD]z�|�ddd	d
�di�dd
d�}d|�<|�|�dd
d�}|�|��d�d�|�|�dd
d�}|��di�|�|�dd
d�}|�diO}|�|��fd
d�}t|��}|�|�|��}|�|�dd�tdd	�g�D�}|�|�q$|D]l}|j|d��[|�|�	d�d�d}|d7}t
jdd�r�d}	|�||	u�|�|�	|�d�|�|�	d�d�|�|�	|�d�|�|�	|�d�d�|�|�	|�d�|�
�d�Wd�n	1�swYq�dS)Nc@r)z(DictTest.test_str_nonstr.<locals>.StrSubNrr	r	r	r
�StrSub�rr�rcrS)z&DictTest.test_str_nonstr.<locals>.Key3cSr�)N�key3r�rr	r	r
rj�r�z/DictTest.test_str_nonstr.<locals>.Key3.__hash__cs,t|��st|t�r|dkr�d7�dSdS)Nr�r
TF)rIr�rb��Key3r�r	r
rf�sz-DictTest.test_str_nonstr.<locals>.Key3.__eq__NrKr	r�r	r
r��sr�r�rror�+�,)rrc3s�dVdV�dfVdS)N)rro)rr�r�r	r	)r�r	r
�
make_pairs�s�z,DictTest.test_str_nonstr.<locals>.make_pairscSsi|]	\}}|d|�qSr;r	)r"r#r�r	r	r
r�sz,DictTest.test_str_nonstr.<locals>.<dictcomp>r�ZkeZy1T)Zcpythonr
)r�r�rr�rrr5�	enumerater�r�rZcheck_impl_detailrZZassertGreaterEqual)
rr�Zkey3_1Zkey3_2Zkey3_3rprHr�Znoninterned_key1Z
interned_key1r	)r�r�r�r
�test_str_nonstr�s\










	���zDictTest.test_str_nonstrN)Zrrrrrr/r>rArIrLrNrXr\r^r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr
rrrrrr$r(r+r5r6rCrErPrRrYr\rbrerfr�cpython_onlyrirmrorqruryrzr{r}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	r	r	r
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_knownhashr
rr0rkrr�r�c@r)z,CAPITest.test_getitem_knownhash.<locals>.ExcNrr	r	r	r
re8rqrecr`)z.CAPITest.test_getitem_knownhash.<locals>.BadEqcr�rr	rbrdr	r
rf:rkz5CAPITest.test_getitem_knownhash.<locals>.BadEq.__eq__cSrh)N�r	rr	r	r
rj<rkz7CAPITest.test_getitem_knownhash.<locals>.BadEq.__hash__Nrlr	rdr	r
rm9rnrm)r~r�rrGr�SystemErrorr}r~)rr�rHrmr&r'r	rdr
�test_getitem_knownhash*szCAPITest.test_getitem_knownhashN)rrrrr�r�r	r	r	r
r�'sr�)�
mapping_testsc@�eZdZeZdS)�GeneralMappingTestsN)rrrr�	type2testr	r	r	r
r�G�r�c@r)rONrr	r	r	r
rOJrrOc@r�)�SubclassMappingTestsN)rrrrOr�r	r	r	r
r�Mr�r��__main__)r�Zcollections.abcr�r�rr rZunittestr]r�rZTestCaserr�r�ZBasicTestMappingProtocolr�rrOr�r�mainr	r	r	r
�<module>s>&�