Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_dict.cpython-35.opt-1.pyc



��Yf���@s�ddlZddlmZddlZddlZddlZddlZddlZddlZddl	Z	Gdd�dej
�ZddlmZGdd�dej
�ZGdd	�d	e�ZGd
d�dej
�Zedkr�ej�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)e*j+dOdP��Z,e*j+dQdR��Z-e*j+dSdT��Z.e*j+dUdV��Z/dWdX�Z0dYdZ�Z1d[d\�Z2d]d^�Z3d_d`�Z4dadb�Z5dcdd�Z6dedf�Z7dgdh�Z8didj�Z9dkdl�Z:dmdn�Z;dodp�Z<dqdr�Z=dsdt�Z>duS)v�DictTestcCs�Gdd�dt�}xkddi|ddi�fD]K}|jt��t|�WdQRX|jt��ij|�WdQRXq5WdS)Nc@seZdZdS)z7DictTest.test_invalid_keyword_arguments.<locals>.CustomN)�__name__�
__module__�__qualname__�rr�3/opt/alt/python35/lib64/python3.5/test/test_dict.py�Custom
sr	��)�dict�assertRaises�	TypeError�update)�selfr	Zinvalidrrr�test_invalid_keyword_argumentss%z'DictTest.test_invalid_keyword_argumentscCs*|jt�i�|jt�i�dS)N)�assertEqualr�assertIsNot)rrrr�test_constructorszDictTest.test_constructorcCs�xzd
D]r}dd�t|�D�}tj|�dd	�|D�}d
dj|�d}|jt|�t|��qWdS)Nrr
���cSs4g|]*}djtjtjd��|f�qS)��)�join�randomZsample�stringZ
ascii_letters)�.0�irrr�
<listcomp>s	z5DictTest.test_literal_constructor.<locals>.<listcomp>css'|]\}}dj||�VqdS)z
{!r}: {:d}N)�format)r�k�vrrr�	<genexpr>!sz4DictTest.test_literal_constructor.<locals>.<genexpr>�{z, �})rr
rrr)�rangerZshufflerr�evalr)r�n�itemsZformatted_itemsZdictliteralrrr�test_literal_constructors
	
z!DictTest.test_literal_constructorcCsZ|jid�|jddi�|jti�d�|jtddi�d�dS)NTr
rF)�assertIs�
assertTrue�bool)rrrr�	test_bool%szDictTest.test_boolcCs�i}|jt|j��t��ddddi}|j�}|jt|�ddh�|jd|�|jd|�|jd|�|jd|�|jt|jd�|jttdd�j��d�dS)N�ar
�brzdict_keys(['a']))r�set�keys�assertInr
r�reprr)r�dr!rrr�	test_keys+szDictTest.test_keyscCs�i}|jt|j��t��ddi}|jt|j��dh�|jt|jd�|jttdd�j��d�dS)Nr
rr/zdict_values([1]))rr1�valuesr
rr4r)rr5rrr�test_values8szDictTest.test_valuescCs�i}|jt|j��t��ddi}|jt|j��dh�|jt|jd�|jttdd�j��d�dS)Nr
rr/zdict_items([('a', 1)]))r
r)rr1r)r
rr4r)rr5rrr�
test_items@szDictTest.test_itemscCs�i}|jd|�|jd|k�|jd|k�ddddi}|jd|�|jd|�|jd|�|jt|j�dS)Nr/r
r0r�c)�assertNotIn�assertFalser,r3r
r�__contains__)rr5rrr�
test_containsIszDictTest.test_containscCsHi}|jt|�d�ddddi}|jt|�d�dS)Nrr/r
r0r)r�len)rr5rrr�test_lenUszDictTest.test_lencsYddddi}|j|dd�|j|dd�d|d<d|d<|j|dd�|j|dd�|d=|j|ddddi�|jt|j�G�fdd	�d	t�}i}d
||�<|jt|jd�Gdd
�d
t��G�fdd�dt�}|�}d
||<d|_|j�|j|�dS)Nr/r
r0r�r:�cs.eZdZ�fdd�Zdd�ZdS)z$DictTest.test_getitem.<locals>.BadEqcs
���dS)Nr)r�other)�Excrr�__eq__isz+DictTest.test_getitem.<locals>.BadEq.__eq__cSsdS)N�r)rrrr�__hash__ksz-DictTest.test_getitem.<locals>.BadEq.__hash__N)rrrrErGr)rDrr�BadEqhsrH�*�c@seZdZdS)z"DictTest.test_getitem.<locals>.ExcN)rrrrrrrrDrsrDcs(eZdZdZ�fdd�ZdS)z&DictTest.test_getitem.<locals>.BadHashFcs|jr���ndSdS)NrI)�fail)r)rDrrrGvs	z/DictTest.test_getitem.<locals>.BadHash.__hash__N)rrrrKrGr)rDrr�BadHashtsrLT)rr
r�__getitem__�object�KeyError�	ExceptionrK)rr5rHrL�xr)rDr�test_getitem[s(


	
	zDictTest.test_getitemcCsLddddddi}|j�|j|i�|jt|jd�dS)Nr
rrA)�clearrr
r)rr5rrr�
test_clear�s
zDictTest.test_clearcsi}|jddi�|jddi�|jddddddi�|j|ddddddi�|j�|j|ddddddi�|jttf|jd�Gdd�d�}|j�|j|��|j|ddddddi�Gdd	�d	t��|j�G�fd
d�d�}|j�|j|��G�fdd�d�}|j�|j|��G�fd
d�d�}|j�|j|��G�fdd�dt�}|j�ij|��|jtijdg�dS)Nr
�dr�rAc@s4eZdZdd�Zdd�Zdd�ZdS)z,DictTest.test_update.<locals>.SimpleUserDictcSsddddddi|_dS)Nr
rrA)r5)rrrr�__init__�sz5DictTest.test_update.<locals>.SimpleUserDict.__init__cSs
|jj�S)N)r5r2)rrrrr2�sz1DictTest.test_update.<locals>.SimpleUserDict.keyscSs|j|S)N)r5)rrrrrrM�sz8DictTest.test_update.<locals>.SimpleUserDict.__getitem__N)rrrrWr2rMrrrr�SimpleUserDict�srXc@seZdZdS)z!DictTest.test_update.<locals>.ExcN)rrrrrrrrD�srDcs"eZdZ�fdd�ZdS)z-DictTest.test_update.<locals>.FailingUserDictcs
��dS)Nr)r)rDrrr2�sz2DictTest.test_update.<locals>.FailingUserDict.keysN)rrrr2r)rDrr�FailingUserDict�srYcs.eZdZ�fdd�Zdd�ZdS)z-DictTest.test_update.<locals>.FailingUserDictcs G�fdd�d�}|�S)Ncs:eZdZdd�Zdd�Z�fdd�ZdS)zEDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSs
d|_dS)Nr
)r)rrrrrW�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)rDrr�__next__�s		zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N)rrrrWrZr[r)rDrr�	BogonIter�sr\r)rr\)rDrrr2�s
z2DictTest.test_update.<locals>.FailingUserDict.keyscSs|S)Nr)r�keyrrrrM�sz9DictTest.test_update.<locals>.FailingUserDict.__getitem__N)rrrr2rMr)rDrrrY�scs.eZdZdd�Z�fdd�ZdS)z-DictTest.test_update.<locals>.FailingUserDictcSsGdd�d�}|�S)Nc@s4eZdZdd�Zdd�Zdd�ZdS)zEDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSstd�|_dS)Nr/)�ordr)rrrrrW�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__cSs|S)Nr)rrrrrZ�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cSsA|jtd�kr7t|j�}|jd7_|St�dS)N�zr
)rr^�chr�
StopIteration)rZrtnrrrr[�s
zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N)rrrrWrZr[rrrrr\�sr\r)rr\rrrr2�sz2DictTest.test_update.<locals>.FailingUserDict.keyscs
��dS)Nr)rr])rDrrrM�sz9DictTest.test_update.<locals>.FailingUserDict.__getitem__N)rrrr2rMr)rDrrrY�s
cs.eZdZdd�Z�fdd�ZdS)z$DictTest.test_update.<locals>.badseqcSs|S)Nr)rrrrrZ�sz-DictTest.test_update.<locals>.badseq.__iter__cs
���dS)Nr)r)rDrrr[�sz-DictTest.test_update.<locals>.badseq.__next__N)rrrrZr[r)rDrr�badseq�srb)r
rrA)	rrr
r�AttributeErrorrSrPrN�
ValueError)rr5rXrYrbr)rDr�test_update�s."
"
"
zDictTest.test_updatec
s~|jtjd�ddddddi�i�|j�jd���|j�jd�ddddddi�|j�jdd�ddddi�|j�jg�i�dd	�}|j�j|��d
di�|jtijd�Gdd
�d
t�}|j|jd�ddi�|j|�jd�ddi�|j|jd�|�|j|�jd�|�Gdd�dt�}|jd�}|j|ddddi�|j|tj�|jttj�Gdd�dt	��G�fdd�dt�}|j�|jd
g�G�fdd�dt
�}|j�tj|��G�fdd�dt�}|j�|jd
g�tttd�td����|jtj�d�tttd�dgd���G�fdd�dt�}dd�td�D���j
�}	|	jdddddd�|j|jdddh�|	�dS) N�abcr/r0r:rB�rcss	dVdS)Nr
rrrrr�g�sz!DictTest.test_fromkeys.<locals>.gr
rAc@seZdZdS)z(DictTest.test_fromkeys.<locals>.dictlikeN)rrrrrrr�dictlike�sric@seZdZdd�ZdS)z&DictTest.test_fromkeys.<locals>.mydictcSs
tj�S)N)�collections�UserDict)�clsrrr�__new__�sz.DictTest.test_fromkeys.<locals>.mydict.__new__N)rrrrmrrrr�mydict�srnZabc@seZdZdS)z#DictTest.test_fromkeys.<locals>.ExcN)rrrrrrrrD�srDcs"eZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict1cs
���dS)Nr)r)rDrrrW�sz1DictTest.test_fromkeys.<locals>.baddict1.__init__N)rrrrWr)rDrr�baddict1�srocs.eZdZdd�Z�fdd�ZdS)z&DictTest.test_fromkeys.<locals>.BadSeqcSs|S)Nr)rrrrrZ�sz/DictTest.test_fromkeys.<locals>.BadSeq.__iter__cs
���dS)Nr)r)rDrrr[�sz/DictTest.test_fromkeys.<locals>.BadSeq.__next__N)rrrrZr[r)rDrr�BadSeq�srpcs"eZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict2cs
���dS)Nr)rr]�value)rDrr�__setitem__�sz4DictTest.test_fromkeys.<locals>.baddict2.__setitem__N)rrrrrr)rDrr�baddict2�srsrcs"eZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict3cs�S)Nr)rl)r5rrrmsz0DictTest.test_fromkeys.<locals>.baddict3.__new__N)rrrrmr)r5rr�baddict3srtcSsi|]}||�qSrr)rrrrr�
<dictcomp>	s	z*DictTest.test_fromkeys.<locals>.<dictcomp>�
)rBrg)rr�fromkeysrr
r�assertIsInstancerjrkrPrN�zipr&�copyr)
rrhrirnZudrorprsrt�resr)rDr5r�
test_fromkeys�sB++(""!8zDictTest.test_fromkeyscCspddddddi}|j|j�ddddddi�|jij�i�|jt|jd�dS)Nr
rrA)rrzr
r)rr5rrr�	test_copys(zDictTest.test_copycCs�i}|j|jd�d�|j|jdd�d�ddddi}|j|jd�d�|j|jdd�d�|j|jd�d�|j|jdd�d�|jt|j�|jt|jddd�dS)Nr:rAr/r
r0r)r+�getrr
r)rr5rrr�test_getszDictTest.test_getcs*i}|j|jd�d�|jdg�|j|jd�d�|jdg�jd�|j|ddd�|jdg�jd�|jt|d�d�|jt|j�Gdd�dt��G�fd	d
�d
t�}|�}d||<d|_	|j�|j|g�dS)
NZkey0r]rArrBrc@seZdZdS)z%DictTest.test_setdefault.<locals>.ExcN)rrrrrrrrD,srDcs(eZdZdZ�fdd�ZdS)z)DictTest.test_setdefault.<locals>.BadHashFcs|jr���ndSdS)NrI)rK)r)rDrrrG0s	z2DictTest.test_setdefault.<locals>.BadHash.__hash__N)rrrrKrGr)rDrrrL.srLrIT)
r+�
setdefault�appendrr?r
rrPrNrK)rr5rLrQr)rDr�test_setdefault s	
	zDictTest.test_setdefaultcCs�Gdd�dt�}|�}|di}|�}|j|g�|j|jd�|j|jd�|j|j|jd�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z/DictTest.test_setdefault_atomic.<locals>.HashedcSsd|_d|_dS)Nr)�
hash_count�eq_count)rrrrrW>s	z8DictTest.test_setdefault_atomic.<locals>.Hashed.__init__cSs|jd7_dS)Nr
rI)r�)rrrrrGAsz8DictTest.test_setdefault_atomic.<locals>.Hashed.__hash__cSs%|jd7_t|�t|�kS)Nr
)r��id)rrCrrrrEDsz6DictTest.test_setdefault_atomic.<locals>.Hashed.__eq__N)rrrrWrGrErrrr�Hashed=sr�rgr
)rNr�rr�r�)rr��hashed1�y�hashed2rrr�test_setdefault_atomic;s
		zDictTest.test_setdefault_atomicc
Cs�Gdd�dt�}|�}|dddddddddi}|�}g||<|j|jd�|j|jd�|j|j|jd�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z6DictTest.test_setitem_atomic_at_resize.<locals>.HashedcSsd|_d|_dS)Nr)r�r�)rrrrrWQs	z?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__init__cSs|jd7_dS)Nr
rI)r�)rrrrrGTsz?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__hash__cSs%|jd7_t|�t|�kS)Nr
)r�r�)rrCrrrrEWsz=DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__eq__N)rrrrWrGrErrrrr�Psr�rgrr
rrA)rNrr�r�)rr�r�r�r�rrr�test_setitem_atomic_at_resizeOs
	$	
z&DictTest.test_setitem_atomic_at_resizecCs^x>dD]6}x-td�D]}d|}i}i}x@t|�D]2}||t|�<|dkrC||t|�<qCW|dkr�|j�}x�t|�D]}}|j�\}}}	|j|t|��|j�\}
}}|j|t|
��|j|dko|	|k�q�W|j|�|j|�qWqWi}
|jt|
j�dS)Nr
�rr���r
)r�r
)	r&r4rz�popitemr�intr<r
rO)rZcopymodeZlog2size�sizer/r0rZkaZvaZtaZkbZvb�tbr5rrr�test_popitemds*

#
zDictTest.test_popitemcs4i}d\}}|||<|jt|jd�|j|j|�|�|jt|�d�|jt|j|�|j|j||�|�|||<|j|j|d�|�|jt|j�Gdd�dt��G�fdd	�d	t�}|�}d
||<d|_|j�|j|�dS)
Nrf�defZghirr
c@seZdZdS)zDictTest.test_pop.<locals>.ExcN)rrrrrrrrD�srDcs(eZdZdZ�fdd�ZdS)z"DictTest.test_pop.<locals>.BadHashFcs|jr���ndSdS)NrI)rK)r)rDrrrG�s	z+DictTest.test_pop.<locals>.BadHash.__hash__N)rrrrKrGr)rDrrrL�srLrIT)rfr�)	r
rO�poprr?rrPrNrK)rr5r!r"rLrQr)rDr�test_pops"

	
	zDictTest.test_popcCsJi}d|d<|jt��$x|D]}d||d<q'WWdQRXdS)Nr
)r
�RuntimeError)rr5rrrr�test_mutating_iteration�s


z DictTest.test_mutating_iterationcspG�fdd�d���d�}�d�}|di}||f�_d||<|j||di�dS)Ncs@eZdZdZdd�Zdd�Z�fdd�ZdS)z/DictTest.test_mutating_lookup.<locals>.NastyKeyNcSs
||_dS)N)rq)rrqrrrrW�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__init__cSsdS)Nr
r)rrrrrG�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__cs8�jr(�j\}}d�_||=|j|jkS)N)�mutate_dictrq)rrCrnr])�NastyKeyrrrE�s
		z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__)rrrr�rWrGrEr)r�rrr��sr�r
r)r�r)rZkey1Zkey2r5r)r�r�test_mutating_lookup�s
zDictTest.test_mutating_lookupcs�i}|jt|�d�d|d<|jt|�d�i}||d<|jt|�d�Gdd�dt��G�fdd	�d	t�}d|�i}|j�t|�dS)
Nz{}rr
z{1: 2}z
{1: {...}}c@seZdZdS)zDictTest.test_repr.<locals>.ExcN)rrrrrrrrD�srDcs"eZdZ�fdd�ZdS)z#DictTest.test_repr.<locals>.BadReprcs
���dS)Nr)r)rDrr�__repr__�sz,DictTest.test_repr.<locals>.BadRepr.__repr__N)rrrr�r)rDrr�BadRepr�sr�)rr4rPrNr
)rr5r�r)rDr�	test_repr�s

zDictTest.test_reprc	s�|jii�|jddiddi�Gdd�dt��G�fdd�dt�}|�di}ddi}|j���||kWdQRXdS)Nr
rc@seZdZdS)zDictTest.test_eq.<locals>.ExcN)rrrrrrrrD�srDcs.eZdZ�fdd�Zdd�ZdS)z DictTest.test_eq.<locals>.BadCmpcs
���dS)Nr)rrC)rDrrrE�sz'DictTest.test_eq.<locals>.BadCmp.__eq__cSsdS)Nr
r)rrrrrG�sz)DictTest.test_eq.<locals>.BadCmp.__hash__N)rrrrErGr)rDrr�BadCmp�sr�)rrPrNr
)rr��d1�d2r)rDr�test_eq�szDictTest.test_eqcCs*|jdd��|jdd��dS)NcSs
|j�S)N)r2)rQrrr�<lambda>�sz.DictTest.test_keys_contained.<locals>.<lambda>cSs
|j�S)N)r))rQrrrr��s)�helper_keys_contained)rrrr�test_keys_contained�szDictTest.test_keys_containedcCs\|t��}|t��}|ddddi�}|ddddddi�}|ddddddi�}|ddddddi�}|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�dS)Nr
rrArB)rr,r<)r�fn�emptyZempty2ZsmallerZlargerZlarger2Zlarger3rrrr��s<zDictTest.helper_keys_containedc,Cs[Gdd�d�}d|�i}d|�i}|jt��|j�|j�kWdQRX|jt��|j�|j�kWdQRX|jt��|j�|j�kWdQRX|jt��|j�|j�kWdQRXd|�d|�i}|jt��|j�|j�kWdQRX|jt��|j�|j�kWdQRXdS)Nc@seZdZdd�ZdS)z9DictTest.test_errors_in_view_containment_check.<locals>.CcSs
t�dS)N)r�)rrCrrrrEsz@DictTest.test_errors_in_view_containment_check.<locals>.C.__eq__N)rrrrErrrr�Csr�r
r)r
r�r))rr�r�r�Zd3rrr�%test_errors_in_view_containment_checks z.DictTest.test_errors_in_view_containment_checkcCs-ddddij�}ddddddij�}ddij�}|j||t��|j||ddh�|j||dh�|j||dh�|j||@ddh�|j||@t��|j||Bdddh�|j||Adh�|j||Adddh�dS)Nr
rrArB)r2rr1)r�k1�k2�k3rrr�$test_dictview_set_operations_on_keys,sz-DictTest.test_dictview_set_operations_on_keyscCs-ddddij�}ddddddij�}ddij�}|j||t��|j||ddh�|j||dh�|j||dh�|j||@d	d
h�|j||@t��|j||Bddd
h�|j||Adh�|j||Adddh�dS)Nr
rrArB)r
r
)rr)rArA)rBrB)r
r
)rr)r
r
)rr)rArA)rArA)r
r
)rr)rBrB)r)rr1)rr�r�r�rrr�%test_dictview_set_operations_on_items;sz.DictTest.test_dictview_set_operations_on_itemscCs0|jddij�dhk�|jdhddij�k�|jddij�dhBddh�|jdhddij�Bddh�|jddij�dhk�|jdhddij�k�|jddij�dhBddh�|jdhddij�Bddh�dS)Nr
r)r
r
)r
r
)r
r
)r
r
)r,r2rr))rrrr�"test_dictview_mixed_set_operationsJs""))"")z+DictTest.test_dictview_mixed_set_operationsc
Cs�|jttd��|jtid��Gdd�dt�}|ddddi�}|j|dd�|j|dd�|jd|�|jd|j��|j|dd�Gd	d
�d
t�}|�}|jt��}|dWdQRX|j|jj	d�Gdd�dt�}|�}|jt
��}|dWdQRX|j|jj	d�Gd
d�dt�}|�}	|jt
��}|	dWdQRX|j|jj	d�dS)N�__missing__c@seZdZdd�ZdS)z DictTest.test_missing.<locals>.DcSsdS)NrIr)rr]rrrr�`sz,DictTest.test_missing.<locals>.D.__missing__N)rrrr�rrrr�D_sr�r
rrArBrIc@seZdZdd�ZdS)z DictTest.test_missing.<locals>.EcSst|��dS)N)r�)rr]rrrr�jsz,DictTest.test_missing.<locals>.E.__missing__N)rrrr�rrrr�Eisr�c@seZdZdd�ZdS)z DictTest.test_missing.<locals>.FcSsdd�|_dS)NcSsdS)Nr)r]rrrr�tsz;DictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>)r�)rrrrrWrsz)DictTest.test_missing.<locals>.F.__init__N)rrrrWrrrr�Fqsr�c@seZdZdS)z DictTest.test_missing.<locals>.GN)rrrrrrr�Gzsr�)rI)rI)rI)r<�hasattrrrr;r2r
r��	exception�argsrO)
rr�r5r��er:r��fr�rhrrr�test_missingVs0			zDictTest.test_missingc
CsAi}|jt��}|dWdQRX|j|jjd�dS)Nr
)r
�r
)r�)r
rOrr�r�)rr5r:rrr�test_tuple_keyerror�szDictTest.test_tuple_keyerrorcs�Gdd�dt��G�fdd�d�}i}|�}|�}d||<xJdddd	d
ddgD]-}|j���t|t��WdQRXqmWdS)
Nc@seZdZdS)z.DictTest.test_bad_key.<locals>.CustomExceptionN)rrrrrrr�CustomException�sr�cs.eZdZdd�Z�fdd�ZdS)z)DictTest.test_bad_key.<locals>.BadDictKeycSs
t|j�S)N)�hash�	__class__)rrrrrG�sz2DictTest.test_bad_key.<locals>.BadDictKey.__hash__cst||j�r��|S)N)�
isinstancer�)rrC)r�rrrE�sz0DictTest.test_bad_key.<locals>.BadDictKey.__eq__N)rrrrGrEr)r�rr�
BadDictKey�sr�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}))rPr
�exec�locals)rr�r5Zx1Zx2Zstmtr)r�r�test_bad_key�s			

zDictTest.test_bad_keycCsmi}xtd�D]}|||<qWxtd�D]
}||=q4Wx!tdd�D]}|||<qUWdS)Nrg�	)r&)rr5rrrr�test_resize1�szDictTest.test_resize1cs�G��fdd�dt�}i�d�d�|�<d�|�<d�|�<d�|�<d�|�<d	�d
�d<dS)Ncs1eZdZdd�Z��fdd�ZdS)z DictTest.test_resize2.<locals>.XcSsdS)Nrgr)rrrrrG�sz)DictTest.test_resize2.<locals>.X.__hash__cs�r�j�dS)NF)rS)rrC)r5�resizingrrrE�s
z'DictTest.test_resize2.<locals>.X.__eq__N)rrrrGrEr)r5r�rr�X�sr�Fr
rrArBrgTrr�)rN)rr�r)r5r�r�test_resize2�s




zDictTest.test_resize2cCs[|jt��?dddddddddddddd	dd
di}WdQRXi}dS)Nr/r
rr0r:r5r�r�rh�h)r
�ZeroDivisionError)rr5rrr�$test_empty_presized_dict_in_freelist�s"z-DictTest.test_empty_presized_dict_in_freelistcCs�Gdd�dt�}tjtjtjf}xy|D]q}|�}tj|�}|di}||�|_t|j�|_	~~t
j�|j|�dd�q5WdS)Nc@seZdZdS)z+DictTest.test_container_iterator.<locals>.CN)rrrrrrrr��sr�r
zCycle was not collected)
rNrr)r7r2�weakref�refr"�iterrQ�gc�collectr+)rr�Zviewsr"�objr�Z	containerrrr�test_container_iterator�s
	
z DictTest.test_container_iteratorcCs1tj�tj�|jtj|�|�dS)N)r�r�r<�
is_tracked)r�trrr�_not_tracked�s

zDictTest._not_trackedcCsJ|jtj|�|�tj�tj�|jtj|�|�dS)N)r,r�r�r�)rr�rrr�_tracked�s

zDictTest._trackedcCs�dddgf\}}}}|ji�|j|f|||di�|jddddi�|jdddddffti�|jdt�i�|jdgi�|jdgfi�|jdii�|jdt�i�dS)	Ng�?r/r
r0rTF)r
N)r�r�rNr�r1)rrQr�r_�wrrr�test_track_literals�s
%zDictTest.test_track_literalsc		CsHGdd�dt�}dddt�fg|�f\}}}}}t�}|j|�d|d<|j|�d||<|j|�d||<|j|�|j|j��||d<|j|�|j|j��d|d<|j|�|j|j��t�}t�}||d<|j|�|j|�||d<|j|�tj|||g�}|j|�t�}|j|�|j|�tj||||g�}|j|�t�}|j|�|j|�td	|d
|d|�}|j|�td	|d
|d|d|�}|j|�t�}|jd	|d
|d|�|j|�|jd|�|j|�t||f|dfg�}|j|�t||f||fg�}|j|�t�}|j||f|dfg�|j|�|j||f||fg�|j|�dS)
Nc@seZdZdS)z-DictTest.test_track_dynamic.<locals>.MyObjectN)rrrrrrr�MyObjectsr�g�?r/r
rrArBrQr�r_r�)rNrr�rzr�rwr)	rr�rQr�r_r��or5Zddrrr�test_track_dynamicsh0	










		





	


	


!
	



	
zDictTest.test_track_dynamiccCs*Gdd�dt�}|j|��dS)Nc@seZdZdS)z,DictTest.test_track_subtypes.<locals>.MyDictN)rrrrrrr�MyDictCsr�)rr�)rr�rrr�test_track_subtypes@szDictTest.test_track_subtypescCs�ddl}Gdd�d�}|�}d|_|j|j|j��|jj�|j|j|j��d|_|j|j|j��dS)z8setattr must not convert combined table into split tablerNc@seZdZdS)z5DictTest.test_splittable_setattr_after_pop.<locals>.CN)rrrrrrrr�Msr�rrA)�	_testcapir/r,Zdict_hassplittable�__dict__r�r<)rr�r�r/rrr�!test_splittable_setattr_after_popGs		
	z*DictTest.test_splittable_setattr_after_popc
Cs�x�ttjd�D]�}ddddddi}t|�}tj||�}tj|�}|jt|�t|��tj|�}yt|�}Wnt	k
r�wYnXtj||�}tj|�}||=|jt|�t|��qWdS)Nr
r/rr0rAr:)
r&�pickle�HIGHEST_PROTOCOLr��dumps�loadsr�sorted�nextra)r�proto�data�itr5�droprrr�test_iterator_picklingYs
zDictTest.test_iterator_picklingcCs�x�ttjd�D]�}ddddddi}t|j��}tj||�}tj|�}|j|tj	j
�|jt|�|�tj|�}t
|�}tj||�}tj|�}||d=|jt|�|�qWdS)Nr
r/rr0rAr:r)r&r�r�r�r)r�r�rxrjrf�Iteratorrrr�)rr�r�Zitorgr5r�r�rrr�test_itemiterator_picklingksz#DictTest.test_itemiterator_picklingcCsxttj�D]�}ddddddi}t|j��}tj||�}tj|�}|jtt	|��tt	|j����tj|�}t
|�}tj||�}tj|�}t	|�|g}|jt|�tt	|j����qWdS)Nr
r/rr0rAr:)r&r�r�r�r7r�r�rr��listr�)rr�r�r�r5r�r7rrr�test_valuesiterator_pickling�s.z%DictTest.test_valuesiterator_picklingcCs{Gdd�d�}|d�}Gdd�dt�}|j|jt||d���|j|j|j|d��dS)Nc@seZdZdd�ZdS)z=DictTest.test_instance_dict_getattr_str_subclass.<locals>.FoocSs
||_dS)N)�msg)rr�rrrrW�szFDictTest.test_instance_dict_getattr_str_subclass.<locals>.Foo.__init__N)rrrrWrrrr�Foo�sr�Z123c@seZdZdS)z>DictTest.test_instance_dict_getattr_str_subclass.<locals>._strN)rrrrrrr�_str�sr�r�)�strrr��getattrr�)rr�r�r�rrr�'test_instance_dict_getattr_str_subclass�s
"z0DictTest.test_instance_dict_getattr_str_subclasscCsUGdd�d�}|�}d|jd<d|_|j|jddddi�dS)Nc@seZdZdS)zFDictTest.test_object_set_item_single_instance_non_str_key.<locals>.FooN)rrrrrrrr��sr�r
r/)r�r/r)rr�r�rrr�0test_object_set_item_single_instance_non_str_key�s
	
	z9DictTest.test_object_set_item_single_instance_non_str_keycsZG��fdd�d���fdd�dD��xt��D]}|�|<qBWdS)Ncs%eZdZ��fdd�ZdS)z4DictTest.check_reentrant_insertion.<locals>.Mutatingcs���dS)Nr)r)r5�mutaterr�__del__�sz<DictTest.check_reentrant_insertion.<locals>.Mutating.__del__N)rrrr�r)r5r�rr�Mutating�sr�csi|]}��|�qSrr)rr!)r�rrru�s	z6DictTest.check_reentrant_insertion.<locals>.<dictcomp>Zabcdefghijklmnopqr)r�)rr�r!r)r�r5r�r�check_reentrant_insertion�sz"DictTest.check_reentrant_insertioncsUdd�}�j|��fdd�}�j|�dd�}�j|�dS)NcSsd|d<dS)Nrgr0r)r5rrrr��sz1DictTest.test_reentrant_insertion.<locals>.mutatecs|j�j�|j�dS)N)rr�rS)r5)rrrr��scSsx|r|j�qWdS)N)r�)r5rrrr��s	)r�)rr�r)rr�test_reentrant_insertion�s

z!DictTest.test_reentrant_insertioncs}G�fdd�d�}dd�tdd�D�}t|��d�|�<|�dddi}|jt|j��dS)Ncs.eZdZdd�Z�fdd�ZdS)z)DictTest.test_merge_and_mutate.<locals>.XcSsdS)Nrr)rrrrrG�sz2DictTest.test_merge_and_mutate.<locals>.X.__hash__cs�j�dS)NF)rS)rr�)rCrrrE�s
z0DictTest.test_merge_and_mutate.<locals>.X.__eq__N)rrrrGrEr)rCrrr��sr�cSsg|]}|df�qS)rr)rrrrrr�s	z2DictTest.test_merge_and_mutate.<locals>.<listcomp>r
i9r)r&rr
r�r)rr��lr5r)rCr�test_merge_and_mutate�s
zDictTest.test_merge_and_mutatecCsbtj|tt�tj|dd�t�tj|dd�t�tj|dd�t�dS)NcSst|j��S)N)r�r2)r5rrrr��sz4DictTest.test_free_after_iterating.<locals>.<lambda>cSst|j��S)N)r�r7)r5rrrr��scSst|j��S)N)r�r))r5rrrr��s)rZcheck_free_after_iteratingr�r)rrrr�test_free_after_iterating�sz"DictTest.test_free_after_iteratingcsTG��fdd�d�}|�di�|�|�i�|j��k�dS)Ncs@eZdZ�fdd�Z�fdd�Zdd�ZdS)z9DictTest.test_equal_operator_modifying_operand.<locals>.Xcs�j�dS)N)rS)r)�dict_brrr��szADictTest.test_equal_operator_modifying_operand.<locals>.X.__del__cs�j�dS)NT)rS)rrC)�dict_arrrE�s
z@DictTest.test_equal_operator_modifying_operand.<locals>.X.__eq__cSsdS)N�
r)rrrrrG�szBDictTest.test_equal_operator_modifying_operand.<locals>.X.__hash__N)rrrr�rErGr)rr�rrr��sr�r)r,)rr�r)rr�r�%test_equal_operator_modifying_operand�sz.DictTest.test_equal_operator_modifying_operandcsjG�fdd�dt�}i�|d�d|d�di�ytj��Wntk
reYnXdS)Ncs.eZdZdd�Z�fdd�ZdS)zADictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.XcSsdS)Nrr)rrrrrG�szJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__cs t��dkr�j�dS)Nr
F)r?rS)rrC)r5rrrE�s
zHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__N)rrrrGrEr)r5rrr��sr�r
r)r�rrwr�)rr�r)r5r�-test_fromkeys_operator_modifying_dict_operand�s	
z6DictTest.test_fromkeys_operator_modifying_dict_operandcsdG�fdd�dt�}i�|d�|d�h�ytj��Wntk
r_YnXdS)Ncs.eZdZdd�Z�fdd�ZdS)z@DictTest.test_fromkeys_operator_modifying_set_operand.<locals>.XcSsdS)Nrr)rrrrrG�szIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__cs t��dkr�j�dS)Nr
F)r?rS)rrC)r5rrrE�s
zGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__N)rrrrGrEr)r5rrr��sr�r
r)r�rrwr�)rr�r)r5r�,test_fromkeys_operator_modifying_set_operand�s	
z5DictTest.test_fromkeys_operator_modifying_set_operandcsEG�fdd�d�}dt�i�d|�f�j�kdS)Ncs"eZdZ�fdd�ZdS)z:DictTest.test_dictitems_contains_use_after_free.<locals>.Xcs�j�tS)N)rS�NotImplemented)rrC)r5rrrE
s
zADictTest.test_dictitems_contains_use_after_free.<locals>.X.__eq__N)rrrrEr)r5rrr�	sr�r)r1r))rr�r)r5r�&test_dictitems_contains_use_after_freesz/DictTest.test_dictitems_contains_use_after_freecs9G�fdd�d�}|�dg�t�g�dS)Ncs"eZdZ�fdd�ZdS)z,DictTest.test_init_use_after_free.<locals>.Xcsg�dd�<dS)Nrr)r)�pairrrrGsz5DictTest.test_init_use_after_free.<locals>.X.__hash__N)rrrrGr)rrrr�sr��{)r)rr�r)rr�test_init_use_after_freesz!DictTest.test_init_use_after_freecsaG�fdd�dt���fdd�td�D���fdd�}|jt|�dS)Ncs"eZdZ�fdd�ZdS)z;DictTest.test_oob_indexing_dictiter_iternextitem.<locals>.Xcs�j�dS)N)rS)r)r5rrr�szCDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.X.__del__N)rrrr�r)r5rrr�sr�csi|]}�|�|�qSrr)rr)r�rrrus	zDDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.<dictcomp>rcs5x.�j�D] }|ddkr
d�d<q
WdS)Nrr)r))�result)r5rr�iter_and_mutate!szIDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.iter_and_mutate)r�r&r
r�)rrr)r�r5r�'test_oob_indexing_dictiter_iternextitemsz0DictTest.test_oob_indexing_dictiter_iternextitemN)?rrrrrr*r.r6r8r9r>r@rRrTrer|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�rZcpython_onlyr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr	rrrrrr
st	
	&L:!,+@
		r)�
mapping_testsc@seZdZeZdS)�GeneralMappingTestsN)rrrr�	type2testrrrrr+src@seZdZdS)�DictN)rrrrrrrr.src@seZdZeZdS)�SubclassMappingTestsN)rrrrrrrrrr1sr�__main__)ZunittestZtestrrjrr�collections.abcr�r�r�ZTestCaserr
ZBasicTestMappingProtocolrrrrr�mainrrrr�<module>s $����#