Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.188.42.190
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_dict.cpython-310.pyc
o

`b���@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���ZWd�d��ZXd�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	�7/usr/local/python-3.10/lib/python3.10/test/test_dict.py�Custom�r��r	)�dict�assertRaises�	TypeError�update)�selfr�invalidr	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�random�sample�string�
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, �})�ranger �shufflerr�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
rr4)rr
rr4)r
rr4r)�r
r
�rr�r4r4r	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)r:�
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
rrGzdict_values([1]))rrH�valuesrrrKr�rrLr	r	r
�test_values[szDictTest.test_valuescCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)Nr
r�r
rrGzdict_items([('a', 1)]))rrHr2rrrKrrOr	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rSZbar�foo)	�type�__dict__rrI�mappingrNr2�assertIsInstancer)	r�mappingproxyrS�clsrLZm1Zm2Zm3�mr	r	r
�test_views_mappingls 



��zDictTest.test_views_mappingcCsli}|�d|�|�d|v�|�d|v�ddd�}|�d|�|�d|�|�d|�|�t|j�dS)Nr?r
rrFr@rA)�assertNotIn�assertFalserCrJrr�__contains__rOr	r	r
�
test_contains�s
zDictTest.test_containscCs2i}|�t|�d�ddd�}|�t|�d�dS)Nrr
rrF)r�lenrOr	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
rrFr?r@r4rA�)r?rAc� 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�rrrrjrnr	rhr	r
�BadEq��rq�*�c@r)z"DictTest.test_getitem.<locals>.ExcNrr	r	r	r
ri��ric�eZdZdZ�fdd�ZdS)z&DictTest.test_getitem.<locals>.BadHashFc�|jr���dS�Nrs��failrrhr	r
rn��z/DictTest.test_getitem.<locals>.BadHash.__hash__N�rrrrzrnr	rhr	r
�BadHash��r}T)rrr�__getitem__�object�KeyError�	Exceptionrz)rrLrqr}�xr	rhr
�test_getitem�s(

zDictTest.test_getitemcCs4dddd�}|��|�|i�|�t|jd�dS�Nr
rr4r5)�clearrrrrOr	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�r4r5c@�$eZdZdd�Zdd�Zdd�ZdS)z,DictTest.test_update.<locals>.SimpleUserDictcSsdddd�|_dSr��rLrr	r	r
�__init__��z5DictTest.test_update.<locals>.SimpleUserDict.__init__cSs
|j��Sr)rLrIrr	r	r
rI��
z1DictTest.test_update.<locals>.SimpleUserDict.keyscSs
|j|Srr�)rr&r	r	r
r�r�z8DictTest.test_update.<locals>.SimpleUserDict.__getitem__N)rrrr�rIrr	r	r	r
�SimpleUserDict��r�c@r)z!DictTest.test_update.<locals>.ExcNrr	r	r	r
ri�ruric�eZdZ�fdd�ZdS)�-DictTest.test_update.<locals>.FailingUserDictc���rr	rrhr	r
rI�ro�2DictTest.test_update.<locals>.FailingUserDict.keysN)rrrrIr	rhr	r
�FailingUserDict��r�crd)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__�ro�NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cs|jrd|_dS��)Nrr?r�rrhr	r
�__next__�s�NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N�rrrr�r�r�r	rhr	r
�	BogonIter�sr�r	�rr�rhr	r
rI�s
r�cSs|Srr	�r�keyr	r	r
r�ro�9DictTest.test_update.<locals>.FailingUserDict.__getitem__N�rrrrIrr	rhr	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��ror�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
rI�sr�cr�rr	r�rhr	r
r�ror�Nr�r	rhr	r
r��s
cr�)z$DictTest.test_update.<locals>.badseqcSr�rr	rr	r	r
r�roz-DictTest.test_update.<locals>.badseq.__iter__crerr	rrhr	r
r�rkz-DictTest.test_update.<locals>.badseq.__next__N�rrrr�r�r	rhr	r
�badseq�r�)	rrrr�AttributeErrorr�r�r�r>)rrLr�r�r�r	rhr
�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@rA)rc�rcss�dVdSr�r	r	r	r	r
�gs�
z!DictTest.test_fromkeys.<locals>.gr
r4c@r)z(DictTest.test_fromkeys.<locals>.dictlikeNrr	r	r	r
�dictlikerur�r?c@�eZdZdd�ZdS)z&DictTest.test_fromkeys.<locals>.mydictcSst��Sr)�collections�UserDict�rZr	r	r
�__new__�z.DictTest.test_fromkeys.<locals>.mydict.__new__N�rrrr�r	r	r	r
�mydict�r��abrFc@r)z#DictTest.test_fromkeys.<locals>.ExcNrr	r	r	r
ri#ruricr�)z(DictTest.test_fromkeys.<locals>.baddict1crerr	rrhr	r
r�&rkz1DictTest.test_fromkeys.<locals>.baddict1.__init__N�rrrr�r	rhr	r
�baddict1%r�r�cr�)z&DictTest.test_fromkeys.<locals>.BadSeqcSr�rr	rr	r	r
r�,roz/DictTest.test_fromkeys.<locals>.BadSeq.__iter__crerr	rrhr	r
r�.rkz/DictTest.test_fromkeys.<locals>.BadSeq.__next__Nr�r	rhr	r
�BadSeq+r�r�cr�)z(DictTest.test_fromkeys.<locals>.baddict2crerr	)rr��valuerhr	r
�__setitem__4rkz4DictTest.test_fromkeys.<locals>.baddict2.__setitem__N)rrrr�r	rhr	r
�baddict23r�r�rcr�)z(DictTest.test_fromkeys.<locals>.baddict3cs�Srr	r�r�r	r
r�>roz0DictTest.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?rAr@)rr�fromkeysrrrrXr�r�r�r��zipr.r9r)
rr�r�r�Zudr�r�r�r��resr	)rirLr
�
test_fromkeyssB
(zDictTest.test_fromkeyscCs�dddd�}|�|��|�|�|��|�|�|��dddd��|��}d|d<|�||�|�i��i�|�t|jd�dS)Nr
rr4r5rc)rr9r�assertNotEqualrr)rrLr9r	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.r9rrr�ra)rr�rLr&�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)r9r�gc�
is_tracked)rr�r�rLr�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.r9r)rrLr)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)NrAr4r
rrFr?)r:�getrrrrOr	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�r4rrcrc@r)z%DictTest.test_setdefault.<locals>.ExcNrr	r	r	r
ri�ruricrv)z)DictTest.test_setdefault.<locals>.BadHashFcrwrxryrrhr	r
rn�r{z2DictTest.test_setdefault.<locals>.BadHash.__hash__Nr|r	rhr	r
r}�r~r}rsT)
r:�
setdefault�appendrrarrr�r�rz)rrLr}r�r	rhr
�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
rs�r�rr	r	r
rn��z8DictTest.test_setdefault_atomic.<locals>.Hashed.__hash__cS�|jd7_t|�t|�kSr��r��idrfr	r	r
rj��z6DictTest.test_setdefault_atomic.<locals>.Hashed.__eq__N�rrrr�rnrjr	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
rn�r�z?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__hash__cSr�r�r�rfr	r	r
rj�r�z=DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__eq__Nr�r	r	r	r
r��r�r�r�rr
rr4)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.rKr9�popitemr�intr^rr�)r�copymodeZlog2size�sizer?r@r&�ka�va�taZkbZvb�tbrLr	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
ri�ruricrv)z"DictTest.test_pop.<locals>.BadHashFcrwrxryrrhr	r
rn�r{z+DictTest.test_pop.<locals>.BadHash.__hash__Nr|r	rhr	r
r}�r~r}rsT)	rr��poprrarr�r�rz)rrLr)r*r}r�r	rhr
�test_pop�s"zDictTest.test_popcCsRi}d|d<|�t��|D]}d||d<qWd�dS1s"wYdSr��r�RuntimeError�rrLr&r	r	r
�test_mutating_iterations�"�z DictTest.test_mutating_iterationcCsTi}d|d<|�t��|D]	}|d=d|d<qWd�dS1s#wYdSr�rrr	r	r
�test_mutating_iteration_delete
s
�"�z'DictTest.test_mutating_iteration_deletecC�Xi}d|d<|�t��|��D]	}|d=d|d<qWd�dS1s%wYdSr�)rrrNrr	r	r
�*test_mutating_iteration_delete_over_values�
�"�z3DictTest.test_mutating_iteration_delete_over_valuescCrr��rrr2rr	r	r
�)test_mutating_iteration_delete_over_itemsr
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>.NastyKeyNcS�
||_dSr)r�)rr�r	r	r
r�-r�z8DictTest.test_mutating_lookup.<locals>.NastyKey.__init__cSrlr�r	rr	r	r
rn0sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__cs(�jr�j\}}d�_||=|j|jkSr)�mutate_dictr�)rrgr�r���NastyKeyr	r
rj4s

z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__)rrrrr�rnrjr	rr	r
r*s
rr
r)rr)r�key1�key2rLr	rr
�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
riKruricr�)z#DictTest.test_repr.<locals>.BadReprcrerr	rrhr	r
�__repr__Nrkz,DictTest.test_repr.<locals>.BadRepr.__repr__N)rrrrr	rhr	r
�BadReprMr�r)rrKr�r�r)rrLrr	rhr
�	test_reprBs
zDictTest.test_reprcCs4i}tt��d�D]}d|i}q
|�tt|�dS)Nr�r
)r.�sys�getrecursionlimitr�RecursionErrorrKrr	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
ri^ruricrd)z DictTest.test_eq.<locals>.BadCmpcrerr	rfrhr	r
rjarkz'DictTest.test_eq.<locals>.BadCmp.__eq__cSrlr�r	rr	r	r
rncroz)DictTest.test_eq.<locals>.BadCmp.__hash__Nrpr	rhr	r
�BadCmp`rrr)rr�r�r)rr�d1r�r	rhr
�test_eqZs

"�zDictTest.test_eqcCs |�dd��|�dd��dS)NcS�|��Sr)rI�r�r	r	r
�<lambda>m�z.DictTest.test_keys_contained.<locals>.<lambda>cSr!r�r2r"r	r	r
r#nr$)�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
rrQr4r5)rcrr4)rrCr^)r�fn�emptyZempty2ZsmallerZlargerZlarger2Zlarger3r	r	r
r&ps<

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�rrfr	r	r
rj�roz@DictTest.test_errors_in_view_containment_check.<locals>.C.__eq__N�rrrrjr	r	r	r
�C�r�r,r
rQr)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
rrQr4r5rc>r
rr4>r
rrc)rIrrH�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
rrQr4r5rcr6r7r8�rcrc>r6r8r7>r3r6r7)r2rrHr.r	r	r
�%test_dictview_set_operations_on_items�r2z.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�rr4r	�r%r��Zrrr	r
r���z<DictTest.test_items_symmetric_difference.<locals>.<dictcomp>r�cr5r6r	r7r8r	r
r��r9)�left�right)r r�r.r�rHr2r)r�_r:r;�expected�actualr	r8r
�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
rr6)rCrIrr2rr	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>.DcSrlrxr	r�r	r	r
rA�roz,DictTest.test_missing.<locals>.D.__missing__N�rrrrAr	r	r	r
�D�r�rCrrc)r
r4r
r4rsc@r�)z DictTest.test_missing.<locals>.EcSst|��rr*r�r	r	r
rA�r�z,DictTest.test_missing.<locals>.E.__missing__NrBr	r	r	r
�E�r�rD�rsc@r�)z DictTest.test_missing.<locals>.FcSsdd�|_dS)NcSsdSrr	)r�r	r	r
r#sz;DictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>)rArr	r	r
r�sz)DictTest.test_missing.<locals>.F.__init__Nr�r	r	r	r
�Fr�rFc@r)z DictTest.test_missing.<locals>.GNrr	r	r	r
�G
rrG)r^�hasattrrrr]rIrr�	exception�argsr�)
rrCrLrD�erArF�frGr�r	r	r
�test_missing�s6
�
�
�zDictTest.test_missingcCsJi}|�t��}|dWd�n1swY|�|jjd�dS)N�r
)rN)rr�rrIrJ)rrLrAr	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rPcr�)z)DictTest.test_bad_key.<locals>.BadDictKeycSs
t|j�Sr)�hash�	__class__rr	r	r
rnr�z2DictTest.test_bad_key.<locals>.BadDictKey.__hash__cst||j�r��|Sr)�
isinstancerRrf�rPr	r
rj!sz0DictTest.test_bad_key.<locals>.BadDictKey.__eq__N�rrrrnrjr	rTr	r
�
BadDictKey�rVr
)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)rrVrLZx1Zx2Zstmtr	rTr
�test_bad_keys	���zDictTest.test_bad_keycCsJi}td�D]}|||<qtd�D]}||=qtdd�D]}|||<qdS)Nr��	)r.rr	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>.XcSrl)Nr�r	rr	r	r
rnIroz)DictTest.test_resize2.<locals>.X.__hash__cs�r���dS�NF�r�rf�rLZresizingr	r
rjKsz'DictTest.test_resize2.<locals>.X.__eq__NrUr	r`r	r
�XHsraFr
rr4rcr�Trr[)r��rrar	r`r
�test_resize2Ds




zDictTest.test_resize2c
CsR|�t��dddddddddd�}Wd�i}dS1s wYi}dS)Nr
r)r?r@rArLrKrLr��h)r�ZeroDivisionErrorrOr	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�rr2rNrI�weakref�refr*�iterr�r��collectr:)rr,Zviewsr*�objrh�	containerr	r	r
�test_container_iteratorbs

�z DictTest.test_container_iteratorcCs&t��t��|�t�|�|�dSr)r�rjr^r��r�tr	r	r
�_not_trackedrszDictTest._not_trackedcCs8|�t�|�|�t��t��|�t�|�|�dSr)rCr�r�rjrnr	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	)rpr�r�rqrH)rr�r�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rurrr?r
rr4rc�r�r�r�)r�r�r�rs)rs)r�rrpr9rqr�r)	rrur�r�r�rs�orL�ddr	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rz)rrq)rrzr	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,r5)r.r�r�r�r�rV)rr1r,�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@)r�r�r�r?r@)r�r�r�r@r?N)r}r�	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�Nr�r�rvrs�r�r�r�)r}rr~rr�rrr��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�Nr�r�rvrsr�)	r}rr~rrr�rrr�r�r	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 crashrrcr?N)r}rr�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�r4r�Nr�r�rv)	r}rr~r�rrr�rr�)rr?r@r��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?rr4)�	_testcapir?rCZdict_hassplittablerVrr^r�)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@rAr5)
r.�pickle�HIGHEST_PROTOCOLri�dumps�loadsrr��nextr��r�proto�data�itrL�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@rAr5r)r.r�r�rir2r�r�rXr�r��Iteratorrrr��rr�r�ZitorgrLr�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�rirNr�r�rr�r��sorted�rr�r�r�rLr�rNr	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�rr�r�r�r�r	r	r
�test_reverseiterator_pickling�s"

�
�z&DictTest.test_reverseiterator_picklingcCr�r�)r.r�r�r�r2r�r�rXr�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�rNr�r�rr�r�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��getattrrV)rr�rLr�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��rur�r
r?)r
r?)rVr?r)rr�rLr	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�rL�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)r�)rr�r)r	)r�rLr�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)rrVr�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>.XcSrlr�r	rr	r	r
rn�roz2DictTest.test_merge_and_mutate.<locals>.X.__hash__c����dSr^r_)rrw�rgr	r
rj��z0DictTest.test_merge_and_mutate.<locals>.X.__eq__NrUr	r�r	r
ra�rWracSsg|]}|df�qS)rr	r$r	r	r
r'�r�z2DictTest.test_merge_and_mutate.<locals>.<listcomp>r
i9r)r.rrrr)rra�lrLr	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)rirIr�r	r	r
r#ruz4DictTest.test_free_after_iterating.<locals>.<lambda>cSr�r)rirNr�r	r	r
r#rucSr�r)rir2r�r	r	r
r#ru)rZcheck_free_after_iteratingrirrr	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����dSrr_r)�dict_br	r
r�r�zADictTest.test_equal_operator_modifying_operand.<locals>.X.__del__cr��NTr_rf)�dict_ar	r
rjr�z@DictTest.test_equal_operator_modifying_operand.<locals>.X.__eq__cSrl�N�
r	rr	r	r
rnrozBDictTest.test_equal_operator_modifying_operand.<locals>.X.__hash__N)rrrr�rjrnr	)r�r�r	r
rasrarcr�)z9DictTest.test_equal_operator_modifying_operand.<locals>.Ycr�r�r_rf��dict_dr	r
rjr�z@DictTest.test_equal_operator_modifying_operand.<locals>.Y.__eq__Nr+r	r�r	r
�Yr�r�)rCrH)rrar�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>.XcSrlr�r	rr	r	r
rn#rozJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__c�t��dkr
���dS�Nr
F�rar�rfr�r	r
rj&�zHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__NrUr	r�r	r
ra"rWrar
r�r�rr�rrbr	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>.XcSrlr�r	rr	r	r
rn5rozIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__cr�r�r�rfr�r	r
rj8r�zGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__NrUr	r�r	r
ra4rWrar
rr�rbr	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�r<rfr�r	r
rjFr�zADictTest.test_dictitems_contains_use_after_free.<locals>.X.__eq__Nr+r	r�r	r
raEr�rar)rHr2rbr	r�r
�&test_dictitems_contains_use_after_freeDs
z/DictTest.test_dictitems_contains_use_after_freecs0G�fdd�dt�}|�di�|�d�v�dS)Ncrd)z4DictTest.test_dict_contain_use_after_free.<locals>.Scr�rr�rfr�r	r
rjPr�z;DictTest.test_dict_contain_use_after_free.<locals>.S.__eq__cS�td�S)N�test�rQrr	r	r
rnTr�z=DictTest.test_dict_contain_use_after_free.<locals>.S.__hash__Nrpr	r�r	r
�SOsr�r�r�)r�r^)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
rn\sz5DictTest.test_init_use_after_free.<locals>.X.__hash__N)rrrrnr	r�r	r
ra[r�ra�{)rrbr	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�rr_rr�r	r
r�er�zCDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.X.__del__Nr�r	r�r	r
radr�racsi|]}|�|��qSr	r	r$)rar	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	)rarLr
�'test_oob_indexing_dictiter_iternextitemcsz0DictTest.test_oob_indexing_dictiter_iternextitemcCsDdddddd�}|d=t|�}|�t|�td��|�tt|�dS)	Nr
rrr4rc)r?r@rTrArLrTZdcba)r�rr�rr�r�)rrL�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)rr�r�r2rNrIrrr	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)r�r�)rr�r�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�r�r)rr�r�rV)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�)rAr4c@s eZdZdd�ZeZdd�ZdS)z9DictTest.test_dict_copy_order.<locals>.CustomReversedDictcSsttt�|���Sr)r�r�rrIrr	r	r
rI�r�z>DictTest.test_dict_copy_order.<locals>.CustomReversedDict.keyscSstt�|��Sr)r�rr2rr	r	r
r2�r�z?DictTest.test_dict_copy_order.<locals>.CustomReversedDict.itemsN)rrrrIr�r2r	r	r	r
�CustomReversedDict�sr�r�)r��OrderedDict�move_to_endr�r2rr)rZodr=r9r��pairsrLr�r	r	r
�test_dict_copy_order�s
	&zDictTest.test_dict_copy_ordercC�0tdgi���}t��|�t�t|���dSr)rir2r�rjrCr�r��rr�r	r	r
�test_dict_items_result_gc�sz"DictTest.test_dict_items_result_gccCr�r)r�r2r�rjrCr�r�r�r	r	r
r��sc
	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�rcr])z&DictTest.test_str_nonstr.<locals>.Key3cSr�)N�key3r�rr	r	r
rn�r�z/DictTest.test_str_nonstr.<locals>.Key3.__hash__cs,t|��st|t�r|dkr�d7�dSdS)Nr�r
TF)rSr�rf��Key3r�r	r
rj�sz-DictTest.test_str_nonstr.<locals>.Key3.__eq__NrUr	r�r	r
r��sr�r�rrsr�+�,)rrc3s�dVdV�dfVdS)N)rrs)rr�r�r	r	)r�r	r
�
make_pairs�s�z,DictTest.test_str_nonstr.<locals>.make_pairscSsi|]	\}}|d|�qSrEr	)r%r&r�r	r	r
r�sz,DictTest.test_str_nonstr.<locals>.<dictcomp>r�ZkeZy1T)Zcpythonr
)r�r�rr�rrr9�	enumerater�r�rZcheck_impl_detailr^ZassertGreaterEqual)
rr�Zkey3_1Zkey3_2Zkey3_3r|rLr�Znoninterned_key1Z
interned_key1r	)r�r�r�r
�test_str_nonstr�s\










	���zDictTest.test_str_nonstrN)Yrrrrrr3rBrErMrPrRr\r`rbr�r�r�r�r�r�r�r�r�r�r�r�rrr	r
rrrrrr r'r&r-r1r4r?r@rMrOrZr\rcrfrmrprqr�cpython_onlyrtryr{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�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
rr4rvr�r�r�c@r)z,CAPITest.test_getitem_knownhash.<locals>.ExcNrr	r	r	r
ri8ruricrd)z.CAPITest.test_getitem_knownhash.<locals>.BadEqcr�rr	rfrhr	r
rj:roz5CAPITest.test_getitem_knownhash.<locals>.BadEq.__eq__cSrl)N�r	rr	r	r
rn<roz7CAPITest.test_getitem_knownhash.<locals>.BadEq.__hash__Nrpr	rhr	r
rq9rrrq)r�r�rrQr�SystemErrorr�r�)rr�rLrqr/r0r	rhr
�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)rSNrr	r	r	r
rSJrrSc@r�)�SubclassMappingTestsN)rrrrSr�r	r	r	r
r�Mr�r��__main__)r��collections.abcr�r�r r"rZunittestrgr�rZTestCaserr�r�ZBasicTestMappingProtocolr�rrSr�r�mainr	r	r	r
�<module>s>&�
© 2025 GrazzMean