HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_dict.cpython-37.opt-1.pyc
B

��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@sjeZdZdd�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-e.j/dWdX��Z0e.j/dYdZ��Z1e.j/d[d\��Z2d]d^�Z3e.j/d_d`��Z4e.j/dadb��Z5e.j/dcdd��Z6e.j/dedf��Z7e.j/dgdh��Z8e.j/didj��Z9dkdl�Z:dmdn�Z;dodp�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�S)��DictTestc
CstGdd�dt�}x^ddi|ddi�fD]F}|�t��tf|�WdQRX|�t��ijf|�WdQRXq&WdS)Nc@seZdZdS)z7DictTest.test_invalid_keyword_arguments.<locals>.CustomN)�__name__�
__module__�__qualname__�rr�*/usr/local/lib/python3.7/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_constructorcCsbx\dD]T}dd�t|�D�}t�|�dd�|D�}dd�|�d}|�t|�t|��qWdS)	N)rr
��i�cSs$g|]}d�t�tjd��|f�qS)��)�join�randomZsample�stringZ
ascii_letters)�.0�irrr�
<listcomp>!sz5DictTest.test_literal_constructor.<locals>.<listcomp>css|]\}}d�||�VqdS)z
{!r}: {:d}N)�format)r�k�vrrr�	<genexpr>$sz4DictTest.test_literal_constructor.<locals>.<genexpr>�{z, �})�rangerZshufflerr�evalr)r�n�itemsZformatted_itemsZdictliteralrrr�test_literal_constructors

z!DictTest.test_literal_constructorcCsD|�id�|�ddi�|�ti�d�|�tddi�d�dS)NTr
rF)�assertIs�
assertTrue�bool)rrrr�	test_bool(szDictTest.test_boolcCs�i}|�t|���t��ddd�}|��}|�t|�ddh�|�d|�|�d|�|�d|�|�d|�|�t|jd�|�ttdd����d�dS)Nr
r)�a�br.r/)r.zdict_keys(['a']))r�set�keys�assertInr
r�reprr)r�dr rrr�	test_keys.s
zDictTest.test_keyscCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)Nr
r)r.zdict_values([1]))rr0�valuesr
rr3r)rr4rrr�test_values;szDictTest.test_valuescCsfi}|�t|���t��ddi}|�t|���dh�|�t|jd�|�ttdd����d�dS)Nr
r)r
r)r.zdict_items([('a', 1)]))rr0r(r
rr3r)rr4rrr�
test_itemsCszDictTest.test_itemscCsli}|�d|�|�d|k�|�d|k�ddd�}|�d|�|�d|�|�d|�|�t|j�dS)Nr.r
r)r.r/r/�c)�assertNotIn�assertFalser+r2r
r�__contains__)rr4rrr�
test_containsLs
zDictTest.test_containscCs2i}|�t|�d�ddd�}|�t|�d�dS)Nrr
r)r.r/)r�len)rr4rrr�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)Nr
r)r.r/r.r/�r9�)r.r9cs eZdZ�fdd�Zdd�ZdS)z$DictTest.test_getitem.<locals>.BadEqcs
���dS)Nr)r�other)�Excrr�__eq__lsz+DictTest.test_getitem.<locals>.BadEq.__eq__cSsdS)N�r)rrrr�__hash__nsz-DictTest.test_getitem.<locals>.BadEq.__hash__N)rrrrDrFr)rCrr�BadEqksrG�*�c@seZdZdS)z"DictTest.test_getitem.<locals>.ExcN)rrrrrrrrCusrCcseZdZdZ�fdd�ZdS)z&DictTest.test_getitem.<locals>.BadHashFcs|jr���ndSdS)NrH)�fail)r)rCrrrFysz/DictTest.test_getitem.<locals>.BadHash.__hash__N)rrrrJrFr)rCrr�BadHashwsrKT)rr
r�__getitem__�object�KeyError�	ExceptionrJ)rr4rGrK�xr)rCr�test_getitem^s(

zDictTest.test_getitemcCs4dddd�}|��|�|i�|�t|jd�dS)Nr
rr@)r
rr@)�clearrr
r)rr4rrr�
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@)r
rr@c@s$eZdZdd�Zdd�Zdd�ZdS)z,DictTest.test_update.<locals>.SimpleUserDictcSsdddd�|_dS)Nr
rr@)r
rr@)r4)rrrr�__init__�sz5DictTest.test_update.<locals>.SimpleUserDict.__init__cSs
|j��S)N)r4r1)rrrrr1�sz1DictTest.test_update.<locals>.SimpleUserDict.keyscSs
|j|S)N)r4)rrrrrrL�sz8DictTest.test_update.<locals>.SimpleUserDict.__getitem__N)rrrrVr1rLrrrr�SimpleUserDict�srWc@seZdZdS)z!DictTest.test_update.<locals>.ExcN)rrrrrrrrC�srCcseZdZ�fdd�ZdS)z-DictTest.test_update.<locals>.FailingUserDictcs��dS)Nr)r)rCrrr1�sz2DictTest.test_update.<locals>.FailingUserDict.keysN)rrrr1r)rCrr�FailingUserDict�srXcs eZdZ�fdd�Zdd�ZdS)z-DictTest.test_update.<locals>.FailingUserDictcsG�fdd�d�}|�S)Ncs(eZdZdd�Zdd�Z�fdd�ZdS)zEDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSs
d|_dS)Nr
)r)rrrrrV�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__cSs|S)Nr)rrrr�__iter__�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cs|jrd|_dS��dS)Nrr.)r)r)rCrr�__next__�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N)rrrrVrYrZr)rCrr�	BogonIter�sr[r)rr[)rCrrr1�s
z2DictTest.test_update.<locals>.FailingUserDict.keyscSs|S)Nr)r�keyrrrrL�sz9DictTest.test_update.<locals>.FailingUserDict.__getitem__N)rrrr1rLr)rCrrrX�scs eZdZdd�Z�fdd�ZdS)z-DictTest.test_update.<locals>.FailingUserDictcSsGdd�d�}|�S)Nc@s$eZdZdd�Zdd�Zdd�ZdS)zEDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSstd�|_dS)Nr.)�ordr)rrrrrV�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__cSs|S)Nr)rrrrrY�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cSs2|jtd�kr*t|j�}|jd7_|St�dS)N�zr
)rr]�chr�
StopIteration)rZrtnrrrrZ�s

zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N)rrrrVrYrZrrrrr[�sr[r)rr[rrrr1�sz2DictTest.test_update.<locals>.FailingUserDict.keyscs��dS)Nr)rr\)rCrrrL�sz9DictTest.test_update.<locals>.FailingUserDict.__getitem__N)rrrr1rLr)rCrrrX�s
cs eZdZdd�Z�fdd�ZdS)z$DictTest.test_update.<locals>.badseqcSs|S)Nr)rrrrrY�sz-DictTest.test_update.<locals>.badseq.__iter__cs
���dS)Nr)r)rCrrrZ�sz-DictTest.test_update.<locals>.badseq.__next__N)rrrrYrZr)rCrr�badseq�sra)	rrr
r�AttributeErrorrRrOrM�
ValueError)rr4rWrXrar)rCr�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)r.r/r9)rA�rcss
dVdS)Nr
rrrrr�g�sz!DictTest.test_fromkeys.<locals>.gr
r@c@seZdZdS)z(DictTest.test_fromkeys.<locals>.dictlikeN)rrrrrrr�dictlike�srhr.c@seZdZdd�ZdS)z&DictTest.test_fromkeys.<locals>.mydictcSst��S)N)�collections�UserDict)�clsrrr�__new__�sz.DictTest.test_fromkeys.<locals>.mydict.__new__N)rrrrlrrrr�mydict�srmZab)r.r/c@seZdZdS)z#DictTest.test_fromkeys.<locals>.ExcN)rrrrrrrrC�srCcseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict1cs
���dS)Nr)r)rCrrrV�sz1DictTest.test_fromkeys.<locals>.baddict1.__init__N)rrrrVr)rCrr�baddict1�srncs eZdZdd�Z�fdd�ZdS)z&DictTest.test_fromkeys.<locals>.BadSeqcSs|S)Nr)rrrrrY�sz/DictTest.test_fromkeys.<locals>.BadSeq.__iter__cs
���dS)Nr)r)rCrrrZ�sz/DictTest.test_fromkeys.<locals>.BadSeq.__next__N)rrrrYrZr)rCrr�BadSeq�srocseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict2cs
���dS)Nr)rr\�value)rCrr�__setitem__sz4DictTest.test_fromkeys.<locals>.baddict2.__setitem__N)rrrrqr)rCrr�baddict2�srrrcseZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict3cs�S)Nr)rk)r4rrrl
sz0DictTest.test_fromkeys.<locals>.baddict3.__new__N)rrrrlr)r4rr�baddict3	srscSsi|]
}||�qSrr)rrrrr�
<dictcomp>sz*DictTest.test_fromkeys.<locals>.<dictcomp>�
r/r9)rr�fromkeysrr
r�assertIsInstancerirjrOrM�zipr%�copyr)
rrgrhrmZudrnrorrrsZresr)rCr4r�
test_fromkeys�sB
(zDictTest.test_fromkeyscCs�dddd�}|�|��|�|�|��|�|�|��dddd��|��}d|d<|�||�|�i��i�|�t|jd�dS)Nr
rr@)r
rr@rA)rryr�assertNotEqualr
r)rr4ryrrr�	test_copyszDictTest.test_copyc
Cs�x�dD]�}t�|d||d�}|j|d��pi}xt|�D]}|||<q>W|��}|�||�|�||�d|d<|�||�|�t|�t|�d�WdQRXqWdS)N)rurTi�i'i��r)�	dict_sizerpr\r
)	rZ	randrangeZsubTestr%ryrrr{r>)rr}r4r�d2rrr�test_copy_fuzzs
zDictTest.test_copy_fuzzcCsTGdd�d�}|�}x:iddi|difD]$}|��}|�t�|�t�|��q(WdS)Nc@seZdZdS)z0DictTest.test_copy_maintains_tracking.<locals>.AN)rrrrrrr�A/sr�r.r
�val)ryr�gc�
is_tracked)rr�r\r4r~rrr�test_copy_maintains_tracking.s
z%DictTest.test_copy_maintains_trackingcCsBdd�td�D�}xtd�D]
}||=qW|��}|�||�dS)NcSsi|]
}||�qSrr)rr rrrrt?sz1DictTest.test_copy_noncompact.<locals>.<dictcomp>i�i�)r%ryr)rr4r 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)Nr9r@r
r)r.r/r.)r*�getrr
r)rr4rrr�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@rrArc@seZdZdS)z%DictTest.test_setdefault.<locals>.ExcN)rrrrrrrrC]srCcseZdZdZ�fdd�ZdS)z)DictTest.test_setdefault.<locals>.BadHashFcs|jr���ndSdS)NrH)rJ)r)rCrrrFasz2DictTest.test_setdefault.<locals>.BadHash.__hash__N)rrrrJrFr)rCrrrK_srKrHT)
r*�
setdefault�appendrr>r
rrOrMrJ)rr4rKrPr)rCr�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_count)rrrrrVosz8DictTest.test_setdefault_atomic.<locals>.Hashed.__init__cSs|jd7_dS)Nr
rH)r�)rrrrrFrsz8DictTest.test_setdefault_atomic.<locals>.Hashed.__hash__cSs|jd7_t|�t|�kS)Nr
)r��id)rrBrrrrDusz6DictTest.test_setdefault_atomic.<locals>.Hashed.__eq__N)rrrrVrFrDrrrr�Hashednsr�rfr
)rMr�rr�r�)rr��hashed1�y�hashed2rrr�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|_dS)Nr)r�r�)rrrrrV�sz?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__init__cSs|jd7_dS)Nr
rH)r�)rrrrrF�sz?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__hash__cSs|jd7_t|�t|�kS)Nr
)r�r�)rrBrrrrD�sz=DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__eq__N)rrrrVrFrDrrrrr��sr�rfrr
rr@)rMrr�r�)rr�r�r�r�rrr�test_setitem_atomic_at_resize�s
z&DictTest.test_setitem_atomic_at_resizecCsx�dD]�}x�td�D]�}d|}i}i}x0t|�D]$}||t|�<|dkr2||t|�<q2W|dkrj|��}xft|�D]Z}|��\}}}	|�|t|��|��\}
}}|�|t|
��|�|dko�|	|k�qtW|�|�|�|�qWqWi}
|�t|
j�dS)N)���r
�rr)	r%r3ry�popitemr�intr;r
rN)rZcopymodeZlog2size�sizer.r/r�kaZva�taZkbZvb�tbr4rrr�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)re�defZghirr
c@seZdZdS)zDictTest.test_pop.<locals>.ExcN)rrrrrrrrC�srCcseZdZdZ�fdd�ZdS)z"DictTest.test_pop.<locals>.BadHashFcs|jr���ndSdS)NrH)rJ)r)rCrrrF�sz+DictTest.test_pop.<locals>.BadHash.__hash__N)rrrrJrFr)rCrrrK�srKrHT)	r
rN�poprr>rrOrMrJ)rr4r r!rKrPr)rCr�test_pop�s"zDictTest.test_popc	Cs@i}d|d<|�t�� x|D]}d||d<qWWdQRXdS)Nr
)r
�RuntimeError)rr4rrrr�test_mutating_iteration�s

z DictTest.test_mutating_iterationcsPG�fdd�d���d�}�d�}|di}||f�_d||<|�||di�dS)Ncs,eZdZdZdd�Zdd�Z�fdd�ZdS)z/DictTest.test_mutating_lookup.<locals>.NastyKeyNcSs
||_dS)N)rp)rrprrrrV�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__init__cSsdS)Nr
r)rrrrrF�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__cs(�jr�j\}}d�_||=|j|jkS)N)�mutate_dictrp)rrBrmr\)�NastyKeyrrrD�s

z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__)rrrr�rVrFrDr)r�rrr��sr�r
r)r�r)rZkey1Zkey2r4r)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@seZdZdS)zDictTest.test_repr.<locals>.ExcN)rrrrrrrrC�srCcseZdZ�fdd�ZdS)z#DictTest.test_repr.<locals>.BadReprcs
���dS)Nr)r)rCrr�__repr__�sz,DictTest.test_repr.<locals>.BadRepr.__repr__N)rrrr�r)rCrr�BadRepr�sr�)rr3rOrMr
)rr4r�r)rCr�	test_repr�s
zDictTest.test_reprcCs8i}x tt��d�D]}d|i}qW|�tt|�dS)NrTr
)r%�sys�getrecursionlimitr
�RecursionErrorr3)rr4rrrr�test_repr_deepszDictTest.test_repr_deepc	sx|�ii�|�ddiddi�Gdd�dt��G�fdd�dt�}|�di}ddi}|����||kWdQRXdS)Nr
rc@seZdZdS)zDictTest.test_eq.<locals>.ExcN)rrrrrrrrCsrCcs eZdZ�fdd�Zdd�ZdS)z DictTest.test_eq.<locals>.BadCmpcs
���dS)Nr)rrB)rCrrrDsz'DictTest.test_eq.<locals>.BadCmp.__eq__cSsdS)Nr
r)rrrrrFsz)DictTest.test_eq.<locals>.BadCmp.__hash__N)rrrrDrFr)rCrr�BadCmpsr�)rrOrMr
)rr��d1r~r)rCr�test_eqs
zDictTest.test_eqcCs |�dd��|�dd��dS)NcSs|��S)N)r1)rPrrr�<lambda>�z.DictTest.test_keys_contained.<locals>.<lambda>cSs|��S)N)r()rPrrrr�r�)�helper_keys_contained)rrrr�test_keys_containedszDictTest.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
r)r
rr@)r
rr@)rArr@)rr+r;)r�fn�emptyZempty2ZsmallerZlargerZlarger2Zlarger3rrrr�!s<

zDictTest.helper_keys_containedc	CsGdd�d�}d|�i}d|�i}|�t��|��|��kWdQRX|�t��|��|��kWdQRX|�t��|��|��kWdQRX|�t��|��|��kWdQRX|�|�d�}|�t��|��|��kWdQRX|�t��|��|��kWdQRXdS)Nc@seZdZdd�ZdS)z9DictTest.test_errors_in_view_containment_check.<locals>.CcSst�dS)N)r�)rrBrrrrDOsz@DictTest.test_errors_in_view_containment_check.<locals>.C.__eq__N)rrrrDrrrr�CNsr�r
)r
r)r
r�r()rr�r�r~Zd3rrr�%test_errors_in_view_containment_checkMs 

z.DictTest.test_errors_in_view_containment_checkcCs�ddd���}dddd���}ddi��}|�||t��|�||ddh�|�||dh�|�||dh�|�||@ddh�|�||@t��|�||Bdddh�|�||Adh�|�||Adddh�dS)Nr
r)r
rr@)r
rr@rA)r1rr0)r�k1�k2�k3rrr�$test_dictview_set_operations_on_keyscs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)Nr
r)r
rr@)r
rr@rA)r
r
)rr)r@r@)rArA)r(rr0)rr�r�r�rrr�%test_dictview_set_operations_on_itemsrs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)Nr
r)r
r
)r+r1rr()rrrr�"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	WdQRX|�|jj	d�Gd
d�dt�}|�}|�t
��}|d	WdQRX|�|jj	d�Gdd�dt�}|�}	|�t
��}|	d	WdQRX|�|jj	d�dS)N�__missing__c@seZdZdd�ZdS)z DictTest.test_missing.<locals>.DcSsdS)NrHr)rr\rrrr��sz,DictTest.test_missing.<locals>.D.__missing__N)rrrr�rrrr�D�sr�rrA)r
r@r
r@rHc@seZdZdd�ZdS)z DictTest.test_missing.<locals>.EcSst|��dS)N)r�)rr\rrrr��sz,DictTest.test_missing.<locals>.E.__missing__N)rrrr�rrrr�E�sr�)rHc@seZdZdd�ZdS)z DictTest.test_missing.<locals>.FcSsdd�|_dS)NcSsdS)Nr)r\rrrr��r�z;DictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>)r�)rrrrrV�sz)DictTest.test_missing.<locals>.F.__init__N)rrrrVrrrr�F�sr�c@seZdZdS)z DictTest.test_missing.<locals>.GN)rrrrrrr�G�sr�)r;�hasattrrrr:r1r
r��	exception�argsrN)
rr�r4r��er9r��fr�rgrrr�test_missing�s0zDictTest.test_missingc	Cs6i}|�t��}|dWdQRX|�|jjd�dS)N)r
))r
)r
rNrr�r�)rr4r9rrr�test_tuple_keyerror�szDictTest.test_tuple_keyerrorc
snGdd�dt��G�fdd�d�}i}|�}|�}d||<x.dD]&}|����t|t��WdQRXq@WdS)Nc@seZdZdS)z.DictTest.test_bad_key.<locals>.CustomExceptionN)rrrrrrr�CustomException�sr�cs eZdZdd�Z�fdd�ZdS)z)DictTest.test_bad_key.<locals>.BadDictKeycSs
t|j�S)N)�hash�	__class__)rrrrrF�sz2DictTest.test_bad_key.<locals>.BadDictKey.__hash__cst||j�r��|S)N)�
isinstancer�)rrB)r�rrrD�sz0DictTest.test_bad_key.<locals>.BadDictKey.__eq__N)rrrrFrDr)r�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}))rOr
�exec�locals)rr�r4Zx1Zx2Zstmtr)r�r�test_bad_key�s	
zDictTest.test_bad_keycCsVi}xtd�D]}|||<qWxtd�D]
}||=q(Wxtdd�D]}|||<qBWdS)Nrf�	)r%)rr4rrrr�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)Nrfr)rrrrrF�sz)DictTest.test_resize2.<locals>.X.__hash__cs�r���dS)NF)rR)rrB)r4�resizingrrrD�sz'DictTest.test_resize2.<locals>.X.__eq__N)rrrrFrDr)r4r�rr�X�sr�Fr
rr@rArfTrr�)rM)rr�r)r4r�r�test_resize2�s




zDictTest.test_resize2c
Cs8|�t�� dddddddddd�}WdQRXi}dS)Nr
r)r.r/r9r4r�r�rg�h)r
�ZeroDivisionError)rr4rrr�$test_empty_presized_dict_in_freelistsz-DictTest.test_empty_presized_dict_in_freelistcCs|Gdd�dt�}tjtjtjf}xV|D]N}|�}t�|�}|di}||�|_t|j�|_	~~t
��|�|�dd�q&WdS)Nc@seZdZdS)z+DictTest.test_container_iterator.<locals>.CN)rrrrrrrr�sr�r
zCycle was not collected)
rMrr(r6r1�weakref�refr!�iterrPr��collectr*)rr�Zviewsr!�objr��	containerrrr�test_container_iterator	s


z DictTest.test_container_iteratorcCs&t��t��|�t�|�|�dS)N)r�r�r;r�)r�trrr�_not_trackedszDictTest._not_trackedcCs8|�t�|�|�t��t��|�t�|�|�dS)N)r+r�r�r�)rr�rrr�_trackedszDictTest._trackedcCs�dddgf\}}}}|�i�|�|d|||di�|�ddd��|�dtd��|�dt�i�|�dgi�|�dgfi�|�dii�|�dt�i�dS)	Ng�?r.)r
Nrr
r)r
r/)r
)NTFr)r�r�rMr�r0)rrPr�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>.MyObjectN)rrrrrrr�MyObject:sr�g�?r.r
rr@rA)rPr�r^)rPr�r^r�)r�)rMrr�ryr�rvr)	rr�rPr�r^r��or4�ddrrr�test_track_dynamic7sh 





















zDictTest.test_track_dynamiccCs Gdd�dt�}|�|��dS)Nc@seZdZdS)z,DictTest.test_track_subtypes.<locals>.MyDictN)rrrrrrr�MyDictzsr�)rr�)rr�rrr�test_track_subtypeswszDictTest.test_track_subtypescCsJGdd�d�}g}x2t|�D]&}|�}d\|_|_|_|�|j�qW|S)Nc@seZdZdS)z(DictTest.make_shared_key_dict.<locals>.CN)rrrrrrrr�sr�)r
rr@)r%rPr�r^r��__dict__)rr'r�Zdictsrr.rrr�make_shared_key_dict~szDictTest.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 orderrr
r.r/rPr�r^N)r�r��	getsizeofr��
assertGreaterr�list)rr.r/Zsize_aZsize_brrr�test_splittable_setdefault�s

z#DictTest.test_splittable_setdefaultc	Cs�|�d�\}}t�|�}|d=|�t��|d=WdQRX|�t�|�|�|�t|�ddg�|�t|�dddg�d|d<|�t|�dddg�|�t|�dddg�dS)z*split table must be combined when del d[k]rr�NrPr^rH)r�r�r�r
rNr�rr�)rr.r/�	orig_sizerrr�test_splittable_del�s
zDictTest.test_splittable_delc	Cs�|�d�\}}t�|�}|�d�|�t��|�d�WdQRX|�t�|�|�|�t|�ddg�|�t|�dddg�d|d<|�t|�dddg�|�t|�dddg�dS)z*split table must be combined when d.pop(k)rr�NrPr^rH)	r�r�r�r�r
rNr�rr�)rr.r/r�rrr�test_splittable_pop�s

zDictTest.test_splittable_popc	Cs:|�d�\}}d|d<|�t��|�d�WdQRXdS)z6pop a pending key in a splitted table should not crashrrAr.N)r�r
rNr�)rr.r/rrr�test_splittable_pop_pending�sz$DictTest.test_splittable_pop_pendingc	Cs�|�d�\}}t�|�}|��}|�|d�|�t��|d=WdQRX|�t�|�|�|�t|�ddg�|�t|�dddg�dS)z-split table must be combined when d.popitem()r)r^r@r^NrPr�)	r�r�r�r�rr
rNr�r�)rr.r/r��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>.CN)rrrrrrrr��sr�r
r.rr@)�	_testcapir.r+Zdict_hassplittabler�r�r;r�)rr�r�r.rrr�!test_splittable_setattr_after_pop�s 
z*DictTest.test_splittable_setattr_after_popc	Cs�x�ttjd�D]�}dddd�}t|�}t�||�}t�|�}|�t|�t|��t�|�}yt|�}Wnt	k
r~wYnXt�||�}t�|�}||=|�t|�t|��qWdS)Nr
r.r/r9)r
rr@)
r%�pickle�HIGHEST_PROTOCOLr��dumps�loadsr�sorted�nextr`)r�proto�data�itr4�droprrr�test_iterator_pickling�s


zDictTest.test_iterator_picklingcCs�x�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�|tj	j
�|�t|�|�t�|�}t
|�}t�||�}t�|�}||d=|�t|�|�qWdS)Nr
r.r/r9)r
rr@r)r%r�r�r�r(r�r�rwrire�Iteratorrrr�)rr�rZitorgr4rrrrr�test_itemiterator_picklings



z#DictTest.test_itemiterator_picklingcCs�x�ttjd�D]�}dddd�}t|���}t�||�}t�|�}|�tt	|��tt	|�����t�|�}t
|�}t�||�}t�|�}t	|�|g}|�t|�tt	|�����qWdS)Nr
r.r/r9)r
rr@)r%r�r�r�r6r�r�rr�r�r�)rr�rrr4rr6rrr�test_valuesiterator_pickling"s
 

z%DictTest.test_valuesiterator_picklingcCsZGdd�d�}|d�}Gdd�dt�}|�|jt||d���|�|j|j|d��dS)Nc@seZdZdd�ZdS)z=DictTest.test_instance_dict_getattr_str_subclass.<locals>.FoocSs
||_dS)N)�msg)rrrrrrV4szFDictTest.test_instance_dict_getattr_str_subclass.<locals>.Foo.__init__N)rrrrVrrrr�Foo3srZ123c@seZdZdS)z>DictTest.test_instance_dict_getattr_str_subclass.<locals>._strN)rrrrrrr�_str7sr	r)�strrr�getattrr�)rrr�r	rrr�'test_instance_dict_getattr_str_subclass2s
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>.FooN)rrrrrrrr=srr
r.)r
r.)r�r.r)rrr�rrr�0test_object_set_item_single_instance_non_str_key<s

z9DictTest.test_object_set_item_single_instance_non_str_keycsDG��fdd�d���fdd�dD��xt��D]}|�|<q0WdS)NcseZdZ��fdd�ZdS)z4DictTest.check_reentrant_insertion.<locals>.Mutatingcs���dS)Nr)r)r4�mutaterr�__del__Hsz<DictTest.check_reentrant_insertion.<locals>.Mutating.__del__N)rrrrr)r4rrr�MutatingGsrcsi|]}��|�qSrr)rr )rrrrtKsz6DictTest.check_reentrant_insertion.<locals>.<dictcomp>Zabcdefghijklmnopqr)r�)rrr r)rr4rr�check_reentrant_insertionCsz"DictTest.check_reentrant_insertioncs>dd�}��|��fdd�}��|�dd�}��|�dS)NcSsd|d<dS)Nrfr/r)r4rrrrQsz1DictTest.test_reentrant_insertion.<locals>.mutatecs|��j�|��dS)N)rr�rR)r4)rrrrUscSsx|r|��qWdS)N)r�)r4rrrrZs)r)rrr)rr�test_reentrant_insertionOs

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>.XcSsdS)Nrr)rrrrrFasz2DictTest.test_merge_and_mutate.<locals>.X.__hash__cs���dS)NF)rR)rr�)rBrrrDdsz0DictTest.test_merge_and_mutate.<locals>.X.__eq__N)rrrrFrDr)rBrrr�`sr�cSsg|]}|df�qS)rr)rrrrrrhsz2DictTest.test_merge_and_mutate.<locals>.<listcomp>r
i9r)r%rr
r�r)rr��lr4r)rBr�test_merge_and_mutate_s
zDictTest.test_merge_and_mutatecCsHt�|tt�t�|dd�t�t�|dd�t�t�|dd�t�dS)NcSst|���S)N)r�r1)r4rrrr�pr�z4DictTest.test_free_after_iterating.<locals>.<lambda>cSst|���S)N)r�r6)r4rrrr�qr�cSst|���S)N)r�r()r4rrrr�rr�)rZcheck_free_after_iteratingr�r)rrrr�test_free_after_iteratingnsz"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���dS)N)rR)r)�dict_brrrwszADictTest.test_equal_operator_modifying_operand.<locals>.X.__del__cs���dS)NT)rR)rrB)�dict_arrrDzsz@DictTest.test_equal_operator_modifying_operand.<locals>.X.__eq__cSsdS)N�
r)rrrrrF~szBDictTest.test_equal_operator_modifying_operand.<locals>.X.__hash__N)rrrrrDrFr)rrrrr�vsr�rcseZdZ�fdd�ZdS)z9DictTest.test_equal_operator_modifying_operand.<locals>.Ycs���dS)NT)rR)rrB)�dict_drrrD�sz@DictTest.test_equal_operator_modifying_operand.<locals>.Y.__eq__N)rrrrDr)rrr�Y�sr)r+r0)rr�rZdict_cr)rrrr�%test_equal_operator_modifying_operandts


z.DictTest.test_equal_operator_modifying_operandcsTG�fdd�dt�}i�|d�d|d�di�yt���Wntk
rNYnXdS)Ncs eZdZdd�Z�fdd�ZdS)zADictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.XcSsdS)Nrr)rrrrrF�szJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__cst��dkr���dS)Nr
F)r>rR)rrB)r4rrrD�szHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__N)rrrrFrDr)r4rrr��sr�r
r)r�rrvr�)rr�r)r4r�-test_fromkeys_operator_modifying_dict_operand�s	z6DictTest.test_fromkeys_operator_modifying_dict_operandcsPG�fdd�dt�}i�|d�|d�h�yt���Wntk
rJYnXdS)Ncs eZdZdd�Z�fdd�ZdS)z@DictTest.test_fromkeys_operator_modifying_set_operand.<locals>.XcSsdS)Nrr)rrrrrF�szIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__cst��dkr���dS)Nr
F)r>rR)rrB)r4rrrD�szGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__N)rrrrFrDr)r4rrr��sr�r
r)r�rrvr�)rr�r)r4r�,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���tS)N)rR�NotImplemented)rrB)r4rrrD�szADictTest.test_dictitems_contains_use_after_free.<locals>.X.__eq__N)rrrrDr)r4rrr��sr�r)r0r()rr�r)r4r�&test_dictitems_contains_use_after_free�s
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�<dS)Nrr)r)�pairrrrF�sz5DictTest.test_init_use_after_free.<locals>.X.__hash__N)rrrrFr)r rrr��sr��{)r)rr�r)r r�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���dS)N)rR)r)r4rrr�szCDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.X.__del__N)rrrrr)r4rrr��sr�csi|]}�|�|�qSrr)rr)r�rrrt�szDDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.<dictcomp>rcs*x$���D]}|ddkr
d�d<q
WdS)Nrr)r()�result)r4rr�iter_and_mutate�szIDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.iter_and_mutate)r�r%r
r�)rr$r)r�r4r�'test_oob_indexing_dictiter_iternextitem�sz0DictTest.test_oob_indexing_dictiter_iternextitemcCs�t�ddg�}|�d�t|���}t|�}|�t|���|�Gdd�dt�}dddg}||�}|�|tt|�����Gdd�dt�}||�}|�|ddd	�tt|�����dS)
N)r.r
)r/rr.c@seZdZdS)z1DictTest.test_dict_copy_order.<locals>.CustomDictN)rrrrrrr�
CustomDict�sr&)r9r@c@s eZdZdd�ZeZdd�ZdS)z9DictTest.test_dict_copy_order.<locals>.CustomReversedDictcSsttt�|���S)N)�reversedr�rr1)rrrrr1�sz>DictTest.test_dict_copy_order.<locals>.CustomReversedDict.keyscSstt�|��S)N)r'rr()rrrrr(�sz?DictTest.test_dict_copy_order.<locals>.CustomReversedDict.itemsN)rrrr1rYr(rrrr�CustomReversedDict�sr(r�)ri�OrderedDict�move_to_endr�r(rr)rZodZexpectedryr&Zpairsr4r(rrr�test_dict_copy_order�s

	zDictTest.test_dict_copy_orderN)Jrrrrrr)r-r5r7r8r=r?rQrSrdrzr|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�cpython_onlyr�r�r�r�r�r�r�r�r�r�rrrrr
rrrrrrrrr"r%r+rrrrr
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
rr@)rPr�r^rPr�r^c@seZdZdS)z,CAPITest.test_getitem_knownhash.<locals>.ExcN)rrrrrrrrCsrCcs eZdZ�fdd�Zdd�ZdS)z.CAPITest.test_getitem_knownhash.<locals>.BadEqcs��dS)Nr)rrB)rCrrrDsz5CAPITest.test_getitem_knownhash.<locals>.BadEq.__eq__cSsdS)N�r)rrrrrFsz7CAPITest.test_getitem_knownhash.<locals>.BadEq.__hash__N)rrrrDrFr)rCrrrGsrG)r�r.rr�r
�SystemErrorrNrO)rr.r4rGr�r�r)rCr�test_getitem_knownhash�szCAPITest.test_getitem_knownhashN)rrrrr,r1rrrrr-�sr-)�
mapping_testsc@seZdZeZdS)�GeneralMappingTestsN)rrrr�	type2testrrrrr3sr3c@seZdZdS)�DictN)rrrrrrrr5sr5c@seZdZeZdS)�SubclassMappingTestsN)rrrr5r4rrrrr6sr6�__main__)riZcollections.abcr�r�rrr�Zunittestr�ZtestrZTestCaserr-r2ZBasicTestMappingProtocolr3rr5r6r�mainrrrr�<module>s4n