Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_dict.cpython-38.pyc
U

>��g��@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\�Z0e1j2d]d^��Z3e1j2d_d`��Z4e1j2dadb��Z5dcdd�Z6e1j2dedf��Z7e1j2dgdh��Z8e1j2didj��Z9e1j2dkdl��Z:e1j2dmdn��Z;e1j2dodp��Z<dqdr�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��ZRe1j2d�d���ZSe1j2d�d���ZSd�S)��DictTestc
CspGdd�dt�}ddi|ddi�fD]F}|�t��tf|�W5QRX|�t��ijf|�W5QRXq$dS)Nc@seZdZdS)z7DictTest.test_invalid_keyword_arguments.<locals>.CustomN��__name__�
__module__�__qualname__�rr�-/opt/cppython/lib/python3.8/test/test_dict.py�Customsr
��)�dict�assertRaises�	TypeError�update)�selfr
�invalidrrr	�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�random�sample�string�
ascii_letters��.0�irrr	�
<listcomp>!s�z5DictTest.test_literal_constructor.<locals>.<listcomp>css|]\}}d�||�VqdS)z
{!r}: {:d}N)�format)r#�k�vrrr	�	<genexpr>$sz4DictTest.test_literal_constructor.<locals>.<genexpr>�{z, �})�ranger�shufflerr�evalr
)r�n�itemsZformatted_itemsZdictliteralrrr	�test_literal_constructors�
z!DictTest.test_literal_constructorcCsD|�id�|�ddi�|�ti�d�|�tddi�d�dS)NTrrF)�assertIs�
assertTrue�boolrrrr	�	test_bool(szDictTest.test_boolcCs�i}|�t|���t��ddd�}|��}|�t|�ddh�|�d|�|�d|�|�d|�|�d|�|�t|jd�|�ttdd����d�dS)Nrr��a�br7r8�r7zdict_keys(['a']))r�set�keys�assertInrr�reprr
)r�dr'rrr	�	test_keys.s
zDictTest.test_keyscCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)Nrrr9zdict_values([1]))rr:�valuesrrr=r
�rr>rrr	�test_values;szDictTest.test_valuescCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)Nrr�rrr9zdict_items([('a', 1)]))rr:r0rrr=r
rArrr	�
test_itemsCszDictTest.test_itemscCsli}|�d|�|�d|k�|�d|k�ddd�}|�d|�|�d|�|�d|�|�t|j�dS)Nr7rrr6r8�c)�assertNotIn�assertFalser3r<rr�__contains__rArrr	�
test_containsLs
zDictTest.test_containscCs2i}|�t|�d�ddd�}|�t|�d�dS)Nrrrr6)r�lenrArrr	�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r6r7r8�rE�)r7rEcs eZdZ�fdd�Zdd�ZdS)z$DictTest.test_getitem.<locals>.BadEqcs
���dSrr�r�other��Excrr	�__eq__lsz+DictTest.test_getitem.<locals>.BadEq.__eq__cSsdS)N�rrrrr	�__hash__nsz-DictTest.test_getitem.<locals>.BadEq.__hash__N�rrrrRrTrrPrr	�BadEqksrV�*�c@seZdZdS)z"DictTest.test_getitem.<locals>.ExcNrrrrr	rQusrQcseZdZdZ�fdd�ZdS)z&DictTest.test_getitem.<locals>.BadHashFcs|jr���ndSdS�NrW��failrrPrr	rTysz/DictTest.test_getitem.<locals>.BadHash.__hash__N�rrrr[rTrrPrr	�BadHashwsr]T)rrr�__getitem__�object�KeyError�	Exceptionr[)rr>rVr]�xrrPr	�test_getitem^s(

zDictTest.test_getitemcCs4dddd�}|��|�|i�|�t|jd�dS�NrrrL�rrrL)�clearrrrrArrr	�
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�rLrec@s$eZdZdd�Zdd�Zdd�ZdS)z,DictTest.test_update.<locals>.SimpleUserDictcSsdddd�|_dSrd�r>rrrr	�__init__�sz5DictTest.test_update.<locals>.SimpleUserDict.__init__cSs
|j��Sr)r>r;rrrr	r;�sz1DictTest.test_update.<locals>.SimpleUserDict.keyscSs
|j|Srrj)rr$rrr	r^�sz8DictTest.test_update.<locals>.SimpleUserDict.__getitem__N)rrrrkr;r^rrrr	�SimpleUserDict�srlc@seZdZdS)z!DictTest.test_update.<locals>.ExcNrrrrr	rQ�srQcseZdZ�fdd�ZdS)�-DictTest.test_update.<locals>.FailingUserDictcs��dSrrrrPrr	r;�s�2DictTest.test_update.<locals>.FailingUserDict.keysN)rrrr;rrPrr	�FailingUserDict�srocs eZdZ�fdd�Zdd�ZdS)rmcsG�fdd�d�}|�S)Ncs(eZdZdd�Zdd�Z�fdd�ZdS)�EDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSs
d|_dS�Nr�r$rrrr	rk�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)Nrr7rrrrPrr	�__next__�s�NDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N�rrrrkrtrvrrPrr	�	BogonIter�sryr�rryrPrr	r;�s
rncSs|Srr�r�keyrrr	r^�s�9DictTest.test_update.<locals>.FailingUserDict.__getitem__N�rrrr;r^rrPrr	ro�scs eZdZdd�Z�fdd�ZdS)rmcSsGdd�d�}|�S)Nc@s$eZdZdd�Zdd�Zdd�ZdS)rpcSstd�|_dS)Nr7)�ordr$rrrr	rk�srscSs|Srrrrrr	rt�srucSs2|jtd�kr*t|j�}|jd7_|St�dS)N�zr)r$r�chr�
StopIteration)rZrtnrrr	rv�s

rwNrxrrrr	ry�sryrrzrrr	r;�srncs��dSrrr{rPrr	r^�sr}Nr~rrPrr	ro�s
cs eZdZdd�Z�fdd�ZdS)z$DictTest.test_update.<locals>.badseqcSs|Srrrrrr	rt�sz-DictTest.test_update.<locals>.badseq.__iter__cs
���dSrrrrPrr	rv�sz-DictTest.test_update.<locals>.badseq.__next__N�rrrrtrvrrPrr	�badseq�sr�)	rrrr�AttributeErrorrfrar_�
ValueError)rr>rlror�rrPr	�test_update�s.zDictTest.test_updatec
sl|�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�|�|�dddh�|	�dS) N�abc)r7r8rE)rM�rcss
dVdSrqrrrrr	�g�sz!DictTest.test_fromkeys.<locals>.grrLc@seZdZdS)z(DictTest.test_fromkeys.<locals>.dictlikeNrrrrr	�dictlike�sr�r7c@seZdZdd�ZdS)z&DictTest.test_fromkeys.<locals>.mydictcSst��Sr)�collections�UserDict��clsrrr	�__new__�sz.DictTest.test_fromkeys.<locals>.mydict.__new__N�rrrr�rrrr	�mydict�sr��abr6c@seZdZdS)z#DictTest.test_fromkeys.<locals>.ExcNrrrrr	rQ�srQcseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict1cs
���dSrrrrPrr	rk�sz1DictTest.test_fromkeys.<locals>.baddict1.__init__N�rrrrkrrPrr	�baddict1�sr�cs eZdZdd�Z�fdd�ZdS)z&DictTest.test_fromkeys.<locals>.BadSeqcSs|Srrrrrr	rt�sz/DictTest.test_fromkeys.<locals>.BadSeq.__iter__cs
���dSrrrrPrr	rv�sz/DictTest.test_fromkeys.<locals>.BadSeq.__next__Nr�rrPrr	�BadSeq�sr�cseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict2cs
���dSrr)rr|�valuerPrr	�__setitem__sz4DictTest.test_fromkeys.<locals>.baddict2.__setitem__N)rrrr�rrPrr	�baddict2�sr�rcseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict3cs�Srrr�rjrr	r�
sz0DictTest.test_fromkeys.<locals>.baddict3.__new__Nr�rrjrr	�baddict3	sr�cSsi|]
}||�qSrrr"rrr	�
<dictcomp>sz*DictTest.test_fromkeys.<locals>.<dictcomp>�
r8rE)rr
�fromkeysrrr�assertIsInstancer�r�rar_�zipr,�copyr)
rr�r�r�Zudr�r�r�r��resr)rQr>r	�
test_fromkeys�sB
(zDictTest.test_fromkeyscCs�dddd�}|�|��|�|�|��|�|�|��dddd��|��}d|d<|�||�|�i��i�|�t|jd�dS)NrrrLrerM)rr�r�assertNotEqualrr)rr>r�rrr	�	test_copyszDictTest.test_copyc
Cs�dD]�}t�|d||d�}|j|d��li}t|�D]}|||<q:|��}|�||�|�||�d|d<|�||�|�t|�t|�d�W5QRXqdS)N)r�rh��i'i��r)�	dict_sizer�r|r)	r�	randrangeZsubTestr,r�rrr�rJ)rr�r>r$�d2rrr	�test_copy_fuzzs
�
zDictTest.test_copy_fuzzcCsPGdd�d�}|�}iddi|difD]$}|��}|�t�|�t�|��q&dS)Nc@seZdZdS)z0DictTest.test_copy_maintains_tracking.<locals>.ANrrrrr	�A/sr�r7r�val)r�r�gc�
is_tracked)rr�r|r>r�rrr	�test_copy_maintains_tracking.s
z%DictTest.test_copy_maintains_trackingcCs>dd�td�D�}td�D]
}||=q|��}|�||�dS)NcSsi|]
}||�qSrr�r#r'rrr	r�?sz1DictTest.test_copy_noncompact.<locals>.<dictcomp>r�i�)r,r�r)rr>r'r�rrr	�test_copy_noncompact8s
zDictTest.test_copy_noncompactcCs�i}|�|�d�d�|�|�dd�d�ddd�}|�|�d�d�|�|�dd�d�|�|�d�d�|�|�dd�d�|�t|j�|�t|jddd�dS)NrErLrrr6r7)r2�getrrrrArrr	�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|rLrrMrc@seZdZdS)z%DictTest.test_setdefault.<locals>.ExcNrrrrr	rQ]srQcseZdZdZ�fdd�ZdS)z)DictTest.test_setdefault.<locals>.BadHashFcs|jr���ndSdSrYrZrrPrr	rTasz2DictTest.test_setdefault.<locals>.BadHash.__hash__Nr\rrPrr	r]_sr]rWT)
r2�
setdefault�appendrrJrrrar_r[)rr>r]rbrrPr	�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	rkosz8DictTest.test_setdefault_atomic.<locals>.Hashed.__init__cSs|jd7_dS�NrrW�r�rrrr	rTrsz8DictTest.test_setdefault_atomic.<locals>.Hashed.__hash__cSs|jd7_t|�t|�kSrq�r��idrNrrr	rRusz6DictTest.test_setdefault_atomic.<locals>.Hashed.__eq__N�rrrrkrTrRrrrr	�Hashednsr�r�r)r_r�rr�r��rr�Zhashed1�yZhashed2rrr	�test_setdefault_atomicls
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	rk�sz?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__init__cSs|jd7_dSr�r�rrrr	rT�sz?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__hash__cSs|jd7_t|�t|�kSrqr�rNrrr	rR�sz=DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__eq__Nr�rrrr	r��sr�r�rrrrL)r_rr�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,r=r��popitemr�intrGrr`)r�copymodeZlog2size�sizer7r8r$�kaZva�taZkbZvb�tbr>rrr	�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	rQ�srQcseZdZdZ�fdd�ZdS)z"DictTest.test_pop.<locals>.BadHashFcs|jr���ndSdSrYrZrrPrr	rT�sz+DictTest.test_pop.<locals>.BadHash.__hash__Nr\rrPrr	r]�sr]rWT)	rr`�poprrJrrar_r[)rr>r'r(r]rbrrPr	�test_pop�s"zDictTest.test_popc	Cs<i}d|d<|�t��|D]}d||d<qW5QRXdSrq�r�RuntimeError�rr>r$rrr	�test_mutating_iteration�s
z DictTest.test_mutating_iterationc	Cs>i}d|d<|�t��|D]}|d=d|d<qW5QRXdSr�r�r�rrr	�test_mutating_iteration_delete�sz'DictTest.test_mutating_iteration_deletec	CsBi}d|d<|�t��"|��D]}|d=d|d<q W5QRXdSr�)rr�r@r�rrr	�*test_mutating_iteration_delete_over_values�sz3DictTest.test_mutating_iteration_delete_over_valuesc	CsBi}d|d<|�t��"|��D]}|d=d|d<q W5QRXdSr��rr�r0r�rrr	�)test_mutating_iteration_delete_over_items�s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	rk�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__init__cSsdSrqrrrrr	rT�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__cs(�jr�j\}}d�_||=|j|jkSr)�mutate_dictr�)rrOr�r|��NastyKeyrr	rRs

z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__)rrrr�rkrTrRrr�rr	r��sr�rr)r�r)rZkey1Zkey2r>rr�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{}rrz{1: 2}z
{1: {...}}c@seZdZdS)zDictTest.test_repr.<locals>.ExcNrrrrr	rQsrQcseZdZ�fdd�ZdS)z#DictTest.test_repr.<locals>.BadReprcs
���dSrrrrPrr	�__repr__sz,DictTest.test_repr.<locals>.BadRepr.__repr__N)rrrr�rrPrr	�BadReprsr�)rr=rar_r)rr>r�rrPr	�	test_reprs
zDictTest.test_reprcCs4i}tt��d�D]}d|i}q|�tt|�dS)Nrhr)r,�sys�getrecursionlimitr�RecursionErrorr=r�rrr	�test_repr_deep s
zDictTest.test_repr_deepc	sx|�ii�|�ddiddi�Gdd�dt��G�fdd�dt�}|�di}ddi}|����||kW5QRXdS)Nrrc@seZdZdS)zDictTest.test_eq.<locals>.ExcNrrrrr	rQ*srQcs eZdZ�fdd�Zdd�ZdS)z DictTest.test_eq.<locals>.BadCmpcs
���dSrrrNrPrr	rR-sz'DictTest.test_eq.<locals>.BadCmp.__eq__cSsdSrqrrrrr	rT/sz)DictTest.test_eq.<locals>.BadCmp.__hash__NrUrrPrr	�BadCmp,sr�)rrar_r)rr��d1r�rrPr	�test_eq&s
zDictTest.test_eqcCs |�dd��|�dd��dS)NcSs|��Sr)r;�rbrrr	�<lambda>9�z.DictTest.test_keys_contained.<locals>.<lambda>cSs|��Sr�r0r�rrr	r�:r�)�helper_keys_containedrrrr	�test_keys_contained8szDictTest.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rCrLre)rMrrL)r
r3rG)r�fn�emptyZempty2ZsmallerZlargerZlarger2Zlarger3rrr	r�<s<

zDictTest.helper_keys_containedc	CsGdd�d�}d|�i}d|�i}|�t��|��|��kW5QRX|�t��|��|��kW5QRX|�t��|��|��kW5QRX|�t��|��|��kW5QRX|�|�d�}|�t��|��|��kW5QRX|�t��|��|��kW5QRXdS)Nc@seZdZdd�ZdS)z9DictTest.test_errors_in_view_containment_check.<locals>.CcSst�dSr�r�rNrrr	rRjsz@DictTest.test_errors_in_view_containment_check.<locals>.C.__eq__N�rrrrRrrrr	�Cisr�rrCr�)rr�r�r�Zd3rrr	�%test_errors_in_view_containment_checkhs 

z.DictTest.test_errors_in_view_containment_checkcCs�ddd���}dddd���}ddi��}|�||t��|�||ddh�|�||dh�|�||dh�|�||@ddh�|�||@t��|�||Bdddh�|�||Adh�|�||Adddh�dS)NrrrCrLrerM)r;rr:�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��|�||Bddd	h�|�||Ad	h�|�||Addd
h�dS)NrrrCrLrerM�rr)rr)rLrL)rMrM)r0rr:r�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r�)r3r;rr0rrrr	�"test_dictview_mixed_set_operations�sz+DictTest.test_dictview_mixed_set_operationsc
	CsZ|�ttd��|�tid��Gdd�dt�}|ddd��}|�|dd�|�|dd�|�d|�|�d|���|�|dd	�Gd
d�dt�}|�}|�t��}|d	W5QRX|�|jj	d�Gd
d�dt�}|�}|�t
��}|d	W5QRX|�|jj	d�Gdd�dt�}|�}	|�t
��}|	d	W5QRX|�|jj	d�dS)N�__missing__c@seZdZdd�ZdS)z DictTest.test_missing.<locals>.DcSsdSrYrr{rrr	r��sz,DictTest.test_missing.<locals>.D.__missing__N�rrrr�rrrr	�D�sr�rrM)rrLrrLrWc@seZdZdd�ZdS)z DictTest.test_missing.<locals>.EcSst|��dSrr�r{rrr	r��sz,DictTest.test_missing.<locals>.E.__missing__Nr�rrrr	�E�sr�)rWc@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	rk�sz)DictTest.test_missing.<locals>.F.__init__Nr�rrrr	�F�sr�c@seZdZdS)z DictTest.test_missing.<locals>.GNrrrrr	�G�sr�)rG�hasattrr
rrFr;rr��	exception�argsr`)
rr�r>r��erEr��fr�r�rrr	�test_missing�s0zDictTest.test_missingc	Cs6i}|�t��}|dW5QRX|�|jjd�dS)N�r)r)rr`rrr)rr>rErrr	�test_tuple_keyerror�szDictTest.test_tuple_keyerrorc
sjGdd�dt��G�fdd�d�}i}|�}|�}d||<dD]&}|����t|t��W5QRXq>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	rT�sz2DictTest.test_bad_key.<locals>.BadDictKey.__hash__cst||j�r��|Sr)�
isinstancer
rN�rrr	rR�sz0DictTest.test_bad_key.<locals>.BadDictKey.__eq__N�rrrrTrRrrrr	�
BadDictKey�srr)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}))rar�exec�locals)rrr>Zx1Zx2Zstmtrrr	�test_bad_key�s	zDictTest.test_bad_keycCsJi}td�D]}|||<qtd�D]
}||=q"tdd�D]}|||<q8dS)Nr��	)r,r�rrr	�test_resize1�s
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	rTsz)DictTest.test_resize2.<locals>.X.__hash__cs�r���dS�NF�rfrN�r>Zresizingrr	rR
sz'DictTest.test_resize2.<locals>.X.__eq__Nr
rrrr	�X
srFrrrLrMr�Trr)r_�rrrrr	�test_resize2s




zDictTest.test_resize2c
Cs8|�t�� dddddddddd�}W5QRXi}dS)Nrr)r7r8rEr>rrr��h)r�ZeroDivisionErrorrArrr	�$test_empty_presized_dict_in_freelists�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�'sr�rzCycle was not collected)
r_r
r0r@r;�weakref�refr(�iterrbr��collectr2)rr�Zviewsr(�objr�	containerrrr	�test_container_iterator$s

z DictTest.test_container_iteratorcCs&t��t��|�t�|�|�dSr)r�r rGr��r�trrr	�_not_tracked4szDictTest._not_trackedcCs8|�t�|�|�t��t��|�t�|�|�dSr)r3r�r�r r$rrr	�_tracked:szDictTest._trackedcCs�dddgf\}}}}|�i�|�|d|||di�|�ddd��|�dtd��|�dt�i�|�dgi�|�dgfi�|�dii�|�dt�i�dS)	N��?r7)rNrrr)rr8)r)NTFr)r&r�r_r'r:)rrbr�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(r7rrrLrM�rbr�r�)rbr�r�r))r))r_r
r&r�r'r�r)	rr+rbr�r�r)�or>�ddrrr	�test_track_dynamicRsh 





















zDictTest.test_track_dynamiccCs Gdd�dt�}|�|��dS)Nc@seZdZdS)z,DictTest.test_track_subtypes.<locals>.MyDictNrrrrr	�MyDict�sr0)r
r')rr0rrr	�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�re)r,rbr�r�r��__dict__)rr/r�Zdictsr$r7rrr	�make_shared_key_dict�szDictTest.make_shared_key_dictcCs�|�d�\}}d|d<t�|�}d|d<|�dd�t�|�}d|d<|�||�|�t|�dddddg�|�t|�dddddg�dS)	zMsplit table must be combined when setdefault()
        breaks insertion orderrrr7r8rbr�r�N)r3r��	getsizeofr��
assertGreaterr�list)rr7r8Zsize_aZsize_brrr	�test_splittable_setdefault�s

z#DictTest.test_splittable_setdefaultc	Cs�|�d�\}}t�|�}|d=|�t��|d=W5QRX|�t�|�|�|�t|�ddg�|�t|�dddg�d|d<|�t|�dddg�|�t|�dddg�dS)z*split table must be combined when del d[k]rr�rbr�rWN)r3r�r4rr`r5rr6�rr7r8�	orig_sizerrr	�test_splittable_del�s
zDictTest.test_splittable_delc	Cs�|�d�\}}t�|�}|�d�|�t��|�d�W5QRX|�t�|�|�|�t|�ddg�|�t|�dddg�d|d<|�t|�dddg�|�t|�dddg�dS)z*split table must be combined when d.pop(k)rr�rbr�rWN)	r3r�r4r�rr`r5rr6r8rrr	�test_splittable_pop�s

zDictTest.test_splittable_popc	Cs:|�d�\}}d|d<|�t��|�d�W5QRXdS)z6pop a pending key in a splitted table should not crashrrMr7N)r3rr`r�)rr7r8rrr	�test_splittable_pop_pending�sz$DictTest.test_splittable_pop_pendingc	Cs�|�d�\}}t�|�}|��}|�|d�|�t��|d=W5QRX|�t�|�|�|�t|�ddg�|�t|�dddg�dS)z-split table must be combined when d.popitem()r)r�rLr�rbr�N)	r3r�r4r�rrr`r5r6)rr7r8r9�itemrrr	�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@seZdZdS)z5DictTest.test_splittable_setattr_after_pop.<locals>.CNrrrrr	r��sr�rr7rrL)�	_testcapir7r3Zdict_hassplittabler2r�rGr�)rr?r�r7rrr	�!test_splittable_setattr_after_pop�s 
z*DictTest.test_splittable_setattr_after_popc	Cs�ttjd�D]�}dddd�}t|�}t�||�}t�|�}|�t|�t|��t�|�}zt|�}Wnt	k
r~YqYnXt�||�}t�|�}||=|�t|�t|��qdS�Nrr7r8rEre)
r,�pickle�HIGHEST_PROTOCOLr�dumps�loadsrr6�nextr��r�proto�data�itr>�droprrr	�test_iterator_picklings



zDictTest.test_iterator_picklingcCs�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�|tj	j
�|�t|�|�t�|�}t
|�}t�||�}t�|�}||d=|�t|�|�qdS�Nrr7r8rErer)r,rBrCrr0rDrEr�r�r��Iteratorrr
rF�rrHrIZitorgr>rJrKrrr	�test_itemiterator_pickling's



z#DictTest.test_itemiterator_picklingcCs�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�t|�t|����t�|�}t	|�}t�||�}t�|�}t|�|g}|�t
|�t
t|�����qdSrA)r,rBrCrr@rDrErr6rF�sorted�rrHrIrJr>rKr@rrr	�test_valuesiterator_pickling=s


z%DictTest.test_valuesiterator_picklingc	Cs�ttjd�D]�}dddd�}t|�}t�||�}t�|�}|�t|�tt|���t�|�}zt|�}Wnt	k
r�YqYnXt�||�}t�|�}||=|�t|�tt|���qdSrA)
r,rBrC�reversedrDrErr6rFr�rGrrr	�test_reverseiterator_picklingMs



z&DictTest.test_reverseiterator_picklingcCs�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�|tj	j
�|�t|�|�t�|�}t
|�}t�||�}t�|�}||d=|�t|�|�qdSrM)r,rBrCrTr0rDrEr�r�r�rNrr
rFrOrrr	�!test_reverseitemiterator_pickling_s



z*DictTest.test_reverseitemiterator_picklingcCs�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�t|�tt|�����t�|�}t	|�}t�||�}t�|�}t|�|g}|�t
|�t
|����qdSrA)r,rBrCrTr@rDrErr6rFrQrRrrr	�#test_reversevaluesiterator_picklingus


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)rrXrrr	rk�szFDictTest.test_instance_dict_getattr_str_subclass.<locals>.Foo.__init__Nr�rrrr	�Foo�srYZ123c@seZdZdS)z>DictTest.test_instance_dict_getattr_str_subclass.<locals>._strNrrrrr	�_str�srZrX)�strrrX�getattrr2)rrYrrZrrr	�'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	rY�srYrr7)rr7)r2r7r)rrYrrrr	�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�r>�mutaterr	�__del__�sz<DictTest.check_reentrant_insertion.<locals>.Mutating.__del__N�rrrrarr_rr	�Mutating�srccsi|]}|���qSrrr�)rcrr	r��sz6DictTest.check_reentrant_insertion.<locals>.<dictcomp>Zabcdefghijklmnopqr)r6)rr`r'r)rcr>r`r	�check_reentrant_insertion�sz"DictTest.check_reentrant_insertioncs>dd�}��|��fdd�}��|�dd�}��|�dS)NcSsd|d<dS)Nr�r8rrjrrr	r`�sz1DictTest.test_reentrant_insertion.<locals>.mutatecs|��j�|��dSr)rr2rfrjrrr	r`�scSs|r|��qdSr)r�rjrrr	r`�s)rd)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	rT�sz2DictTest.test_merge_and_mutate.<locals>.X.__hash__cs���dSrr)rr-�rOrr	rR�sz0DictTest.test_merge_and_mutate.<locals>.X.__eq__Nr
rrfrr	r�srcSsg|]}|df�qS)rrr"rrr	r%�sz2DictTest.test_merge_and_mutate.<locals>.<listcomp>ri9r)r,r
rr�r)rr�lr>rrfr	�test_merge_and_mutate�s
zDictTest.test_merge_and_mutatecCsHt�|tt�t�|dd�t�t�|dd�t�t�|dd�t�dS)NcSst|���Sr)rr;rjrrr	r��r�z4DictTest.test_free_after_iterating.<locals>.<lambda>cSst|���Sr)rr@rjrrr	r��r�cSst|���Sr)rr0rjrrr	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	ra�szADictTest.test_equal_operator_modifying_operand.<locals>.X.__del__cs���dS�NTrrN)�dict_arr	rR�sz@DictTest.test_equal_operator_modifying_operand.<locals>.X.__eq__cSsdS�N�
rrrrr	rT�szBDictTest.test_equal_operator_modifying_operand.<locals>.X.__hash__N)rrrrarRrTr)rlrjrr	r�srrcseZdZ�fdd�ZdS)z9DictTest.test_equal_operator_modifying_operand.<locals>.Ycs���dSrkrrN��dict_drr	rR�sz@DictTest.test_equal_operator_modifying_operand.<locals>.Y.__eq__Nr�rrorr	�Y�srq)r3r:)rrrqZdict_cr)rlrjrpr	�%test_equal_operator_modifying_operand�s


z.DictTest.test_equal_operator_modifying_operandcsTG�fdd�dt�}i�|d�d|d�di�zt���Wntk
rNYnXdS)Ncs eZdZdd�Z�fdd�ZdS)zADictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.XcSsdSrmrrrrr	rT�szJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__cst��dkr���dS�NrF�rJrfrNrjrr	rR�szHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__Nr
rrjrr	r�srrr�r�r
r�r�rrrjr	�-test_fromkeys_operator_modifying_dict_operand�s	z6DictTest.test_fromkeys_operator_modifying_dict_operandcsPG�fdd�dt�}i�|d�|d�h�zt���Wntk
rJYnXdS)Ncs eZdZdd�Z�fdd�ZdS)z@DictTest.test_fromkeys_operator_modifying_set_operand.<locals>.XcSsdSrmrrrrr	rT�szIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__cst��dkr���dSrsrtrNrjrr	rR�szGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__Nr
rrjrr	r�srrrrurrrjr	�,test_fromkeys_operator_modifying_set_operand�s	z5DictTest.test_fromkeys_operator_modifying_set_operandcs2G�fdd�d�}dt�i�d|�f���kdS)NcseZdZ�fdd�ZdS)z:DictTest.test_dictitems_contains_use_after_free.<locals>.Xcs���tSr)rf�NotImplementedrNrjrr	rRszADictTest.test_dictitems_contains_use_after_free.<locals>.X.__eq__Nr�rrjrr	rsrr)r:r0rrrjr	�&test_dictitems_contains_use_after_frees
z/DictTest.test_dictitems_contains_use_after_freecs*G�fdd�d�}|�dg�t�g�dS)NcseZdZ�fdd�ZdS)z,DictTest.test_init_use_after_free.<locals>.Xcsg�dd�<dSrmrr�Zpairrr	rTsz5DictTest.test_init_use_after_free.<locals>.X.__hash__N)rrrrTrrzrr	rsr�{)r
rrrzr	�test_init_use_after_frees
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���dSrrrrjrr	raszCDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.X.__del__Nrbrrjrr	rsrcsi|]}|�|��qSrrr")rrr	r�szDDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.<dictcomp>rcs&���D]}|ddkrd�d<qdS)Nrrr�)�resultrjrr	�iter_and_mutateszIDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.iter_and_mutate)r�r,rr�)rr~r)rr>r	�'test_oob_indexing_dictiter_iternextitemsz0DictTest.test_oob_indexing_dictiter_iternextitemcCsDdddddd�}|d=t|�}|�t|�td��|�tt|�dS)	NrrrrLrM)r7r8�foorEr>r�Zdcba)rTrr6rr�rF)rr>�rrrr	�
test_reversed&s
zDictTest.test_reversedcCs�|�tti��g�|�tti����g�|�tti����g�|�tti����g�|�ttt���g�|�ttt�����g�|�ttt�����g�|�ttt�����g�dSr)rr6rTr0r@r;r
rrrr	�$test_reverse_iterator_for_empty_dict-sz-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)rbr�)rrbr�rrr	rk>szJDictTest.test_reverse_iterator_for_shared_shared_dicts.<locals>.A.__init__Nr�rrrr	r�=sr�rrr�rbr)rr6rTr2)rr�rrr	�-test_reverse_iterator_for_shared_shared_dicts<s z6DictTest.test_reverse_iterator_for_shared_shared_dictscCs�t�ddg�}|�d�t|���}t|�}|�t|���|�Gdd�dt�}dddg}||�}|�|tt|�����Gdd�dt�}||�}|�|ddd	�tt|�����dS)
N)r7r)r8rr7c@seZdZdS)z1DictTest.test_dict_copy_order.<locals>.CustomDictNrrrrr	�
CustomDictPsr�)rErLc@s eZdZdd�ZeZdd�ZdS)z9DictTest.test_dict_copy_order.<locals>.CustomReversedDictcSsttt�|���Sr)rTr6r
r;rrrr	r;Ysz>DictTest.test_dict_copy_order.<locals>.CustomReversedDict.keyscSstt�|��Sr)rTr
r0rrrr	r0^sz?DictTest.test_dict_copy_order.<locals>.CustomReversedDict.itemsN)rrrr;rtr0rrrr	�CustomReversedDictXsr�r�)r��OrderedDict�move_to_endr6r0r
r)rZodZexpectedr�r�Zpairsr>r�rrr	�test_dict_copy_orderFs

	zDictTest.test_dict_copy_ordercCs0tdgi���}t��|�t�t|���dSr)rr0r�r r3r�rF�rrJrrr	�test_dict_items_result_gcdsz"DictTest.test_dict_items_result_gccCs0tdgi���}t��|�t�t|���dSr)rTr0r�r r3r�rFr�rrr	r�psN)Trrrrrr1r5r?rBrDrIrKrcrgr�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/r1r3r7r:r;r<r>r@rLrPrSrUrVrWr]r^rdrerhrirrrvrwryr|rr�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rLr,rbr�r�c@seZdZdS)z,CAPITest.test_getitem_knownhash.<locals>.ExcNrrrrr	rQ�srQcs eZdZ�fdd�Zdd�ZdS)z.CAPITest.test_getitem_knownhash.<locals>.BadEqcs��dSrrrNrPrr	rR�sz5CAPITest.test_getitem_knownhash.<locals>.BadEq.__eq__cSsdS)N�rrrrr	rT�sz7CAPITest.test_getitem_knownhash.<locals>.BadEq.__hash__NrUrrPrr	rV�srV)r?r�rr	r�SystemErrorr`ra)rr�r>rVr�r�rrPr	�test_getitem_knownhash{szCAPITest.test_getitem_knownhashN)rrrrr�r�rrrr	r�xsr�)�
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�rBrr r�Zunittestr�testrZTestCaserr�r�ZBasicTestMappingProtocolr�r
r�r�r�mainrrrr	�<module>s6u

F1le Man4ger