Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_dict.cpython-34.pyo

�
g fs��@sddlZddlmZddlZddlZddlZddlZddlZddlZddl	Z	Gdd�dej
�ZddlmZGdd�dej
�ZGdd	�d	e�ZGd
d�dej
�Zdd
�Zedkre�ndS)�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.dUdV�Z/dWdX�Z0dYdZ�Z1d[d\�Z2d]d^�Z3d_d`�Z4dadb�Z5dcdd�Z6dedf�Z7dgdh�Z8didj�Z9dkdl�Z:dmdn�Z;dodp�Z<dqS)r�DictTestcCs�Gdd�dt�}xkidd6|idd6�fD]I}|jt��t|�WdQX|jt��ij|�WdQXq7WdS)Nc@seZdZdS)z7DictTest.test_invalid_keyword_arguments.<locals>.CustomN)�__name__�
__module__�__qualname__�rr�3/opt/alt/python34/lib64/python3.4/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, �})rrrrr)�rangerZshufflerr�evalr)r�n�itemsZformatted_itemsZdictliteralrrr�test_literal_constructors
	
z!DictTest.test_literal_constructorcCs\|jid�|jidd6�|jti�d�|jtidd6�d�dS)NTr
rF)�assertIs�
assertTrue�bool)rrrr�	test_bool%szDictTest.test_boolcCs�i}|jt|j��t��idd6dd6}|j�}|jt|�ddh�|jd|�|jd|�|jd|�|jd|�|jt|jd�|jttdd�j��d�dS)Nr�ar
�bzdict_keys(['a']))r�set�keys�assertInr
r�reprr)r�dr!rrr�	test_keys+szDictTest.test_keyscCs�i}|jt|j��t��idd6}|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��idd6}|jt|j��dh�|jt|jd�|jttdd�j��d�dS)Nr
rr/zdict_items([('a', 1)]))rr
)rr1r)r
rr4r)rr5rrr�
test_items@s
zDictTest.test_itemscCs�i}|jd|�|jd|k�|jd|k�idd6dd6}|jd|�|jd|�|jd|�|jt|j�dS)Nr/rr
r0�c)�assertNotIn�assertFalser,r3r
r�__contains__)rr5rrr�
test_containsIszDictTest.test_containscCsJi}|jt|�d�idd6dd6}|jt|�d�dS)Nrrr/r
r0)r�len)rr5rrr�test_lenUszDictTest.test_lencs]idd6dd6}|j|dd�|j|dd�d|d<d|d<|j|dd�|j|dd�|d=|j|idd6dd6�|jt|j�G�fdd	�d	t�}i}d
||�<|jt|jd�Gdd
�d
t��G�fdd�dt�}|�}d
||<d|_|j�|j|�dS)Nrr/r
r0�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_getitemcCsOidd6dd6dd6}|j�|j|i�|jt|jd�dS)Nrr
rA)�clearrr
r)rr5rrr�
test_clear�s
zDictTest.test_clearcsi}|jidd6�|jidd6�|jidd6dd6dd6�|j|idd6dd6dd6�|j�|j|idd6dd6dd6�|jttf|jd�Gdd�d�}|j�|j|��|j|idd6dd6dd6�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)N�dr�r
rAc@s4eZdZdd�Zdd�Zdd�ZdS)z,DictTest.test_update.<locals>.SimpleUserDictcSs"idd6dd6dd6|_dS)Nrr
rA)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)rr
rA)	rrr
r�AttributeErrorrSrPrN�
ValueError)rr5rXrYrbr)rDr�test_update�s."%
%
%
zDictTest.test_updatec
s�|jtjd�idd6dd6dd6�i�|j�jd���|j�jd�idd6dd6dd6�|j�jdd�idd6dd6�|j�jg�i�dd	�}|j�j|��idd
6�|jtijd�Gdd
�d
t�}|j|jd�idd6�|j|�jd�idd6�|j|jd�|�|j|�jd�|�Gdd�dt�}|jd�}|j|idd6dd6�|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)Nrrrrrr�g�sz!DictTest.test_fromkeys.<locals>.grrAc@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_fromkeyscCsvidd6dd6dd6}|j|j�idd6dd6dd6�|jij�i�|jt|jd�dS)Nrr
rA)rrzr
r)rr5rrr�	test_copys+zDictTest.test_copycCs�i}|j|jd�d�|j|jdd�d�idd6dd6}|j|jd�d�|j|jdd�d�|j|jd�d�|j|jdd�d�|jt|j�|jt|jddd�dS)Nr:rArr/r
r0)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]rArrBr
c@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�}|�}id|6}|�}|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)NrrI)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_atomiccCs�Gdd�dt�}|�}id|6dd6dd6dd6dd6}|�}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)NrrI)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�rgrrr
rA)rNrr�r�)rr�r�r�r�rrr�test_setitem_atomic_at_resizeOs
	)	
z&DictTest.test_setitem_atomic_at_resizecCsdxDdD]<}x3td�D]%}d|}i}i}xCt|�D]5}||t|�<|dkrC||t|�<qCqCW|dkr�|j�}nx�t|�D]}}|j�\}}}	|j|t|��|j�\}
}}|j|t|
��|j|dko|	|k�q�W|j|�|j|�qWqWi}
|jt|
j�dS)Nr�r
r���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�defZghirrc@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)zabczdef)	r
rO�poprr?rrPrNrK)rr5r!r"rLrQr)rDr�test_pops"

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


z DictTest.test_mutating_iterationcsrG�fdd�d���d�}�d�}id|6}||f�_d||<|j|id|6�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)Nrr)rrrrrG�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__cs;�jr+�j\}}d�_||=n|j|jkS)N)�mutate_dictrq)rrCrnr])�NastyKeyrrrE�s
		
z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__)rrrr�rWrGrEr)r�rrr��sr�rr
)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�}i|�d6}|j�t|�dS)
Nz{}r
rz{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�|jidd6idd6�Gdd�dt��G�fdd�dt�}id|�6}idd6}|j���||kWdQXdS)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)Nrr)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_containedcCsg|t��}|t��}|idd6dd6�}|idd6dd6dd6�}|idd6dd6dd6�}|idd6dd6dd6�}|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)Nrr
rArB)rr,r<)r�fn�emptyZempty2ZsmallerZlargerZlarger2Zlarger3rrrr��s<!!!zDictTest.helper_keys_containedc'CsYGdd�d�}i|�d6}i|�d6}|jt��|j�|j�kWdQX|jt��|j�|j�kWdQX|jt��|j�|j�kWdQX|jt��|j�|j�kWdQXi|�d6|�d6}|jt��|j�|j�kWdQX|jt��|j�|j�kWdQXdS)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�rr
)r
r�r))rr�r�r�Zd3rrr�%test_errors_in_view_containment_checks z.DictTest.test_errors_in_view_containment_checkcCs3idd6dd6j�}idd6dd6dd6j�}idd6j�}|j||t��|j||ddh�|j||dh�|j||dh�|j||@ddh�|j||@t��|j||Bdddh�|j||Adh�|j||Adddh�dS)Nrr
rArB)r2rr1)r�k1�k2�k3rrr�$test_dictview_set_operations_on_keys,s!z-DictTest.test_dictview_set_operations_on_keyscCs3idd6dd6j�}idd6dd6dd6j�}idd6j�}|j||t��|j||ddh�|j||dh�|j||dh�|j||@d	d
h�|j||@t��|j||Bddd
h�|j||Adh�|j||Adddh�dS)Nrr
rArB)rr)r
r
)rArA)rBrB)rr)r
r
)rr)r
r
)rArA)rArA)rr)r
r
)rBrB)r)rr1)rr�r�r�rrr�%test_dictview_set_operations_on_items;s!z.DictTest.test_dictview_set_operations_on_itemscCs8|jidd6j�dhk�|jdhidd6j�k�|jidd6j�dhBddh�|jdhidd6j�Bddh�|jidd6j�dhk�|jdhidd6j�k�|jidd6j�dhBddh�|jdhidd6j�Bddh�dS)Nrr
)rr)rr)rr)rr)r,r2rr))rrrr�"test_dictview_mixed_set_operationsJs##**##*z+DictTest.test_dictview_mixed_set_operationsc
Cs�|jttd��|jtid��Gdd�dt�}|idd6dd6�}|j|dd�|j|dd�|jd|�|jd|j��|j|dd�Gd	d
�d
t�}|�}|jt��}|dWdQX|j|jj	d�Gdd�dt�}|�}|jt
��}|dWdQX|j|jj	d�Gd
d�dt�}|�}	|jt
��}|	dWdQX|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
rrBrArIc@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	Cs@i}|jt��}|dWdQX|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||<xIdddd	d
ddgD],}|j���t|t��WdQXqmWdS)
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��n|S)N)�
isinstancer�)rrC)r�rrrE�s	z0DictTest.test_bad_key.<locals>.BadDictKey.__eq__N)rrrrGrEr)r�rr�
BadDictKey�sr�rz	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�ndS)NF)rS)rrC)r5�resizingrrrE�s
z'DictTest.test_resize2.<locals>.X.__eq__N)rrrrGrEr)r5r�rr�X�sr�Frr
rArBrgTrr�)rN)rr�r)r5r�r�test_resize2�s




zDictTest.test_resize2c
Csb|jt��Giddd6dd6dd6dd6dd6dd6dd	6dd
6}WdQXi}dS)Nrrr/r0r: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}xz|D]r}|�}tj|�}id|6}||�|_t|j�|_	~~t
j�|j|�dd�q5WdS)Nc@seZdZdS)z+DictTest.test_container_iterator.<locals>.CN)rrrrrrrr��sr�rzCycle 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._trackedcCsdddgf\}}}}|ji�|jif|6||6d|6�|jidd6dd6�|jidd6tdddff6�|jit�d6�|jigd6�|jigfd6�|jiid6�|jit�d6�dS)	Ng�?r/rr
r0TF)rN)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/rr
rArBrQr�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_subtypesc
Csx�ttjd�D]�}idd6dd6dd6}t|�}tj||�}tj|�}|jt|�t|��tj|�}yt|�}Wnt	k
r�wYnXtj||�}tj|�}||=|jt|�t|��qWdS)Nrr/r0r
r:rA)
r&�pickle�HIGHEST_PROTOCOLr��dumps�loadsr�sorted�nextra)r�proto�data�itr5�droprrr�test_iterator_picklingGs
zDictTest.test_iterator_picklingcCs�x�ttjd�D]�}idd6dd6dd6}t|j��}tj||�}tj|�}|j|tj	j
�|jt|�|�tj|�}t
|�}tj||�}tj|�}||d=|jt|�|�qWdS)Nrr/r0r
r:rAr)r&r�r�r�r)r�r�rxrjrf�Iteratorrrr�)rr�r�Zitorgr5r�r�rrr�test_itemiterator_picklingYsz#DictTest.test_itemiterator_picklingcCsx
ttj�D]�}idd6dd6dd6}t|j��}tj||�}tj|�}|jtt	|��tt	|j����tj|�}t
|�}tj||�}tj|�}t	|�|g}|jt|�tt	|j����qWdS)Nr/rr0r
r:rA)r&r�r�r�r7r�r�rr��listr�)rr�r�r�r5r�r7rrr�test_valuesiterator_picklingos.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��getattr�__dict__)rr�r�r�rrr�'test_instance_dict_getattr_str_subclasss
"z0DictTest.test_instance_dict_getattr_str_subclasscCsWGdd�d�}|�}d|jd<d|_|j|jidd6dd6�dS)Nc@seZdZdS)zFDictTest.test_object_set_item_single_instance_non_str_key.<locals>.FooN)rrrrrrrr��sr�rr/)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_insertioncsG�fdd�d�}dd�tdd�D�}t|��d�|�<id|�6dd6}|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>ri9r)r&rr
r�r)rr��lr5r)rCr�test_merge_and_mutate�s
zDictTest.test_merge_and_mutatecsVG��fdd�d�}id|�6�i|�|�6�|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)r�r�rrr��sr�r)r,)rr�r)r�r�r�%test_equal_operator_modifying_operand�sz.DictTest.test_equal_operator_modifying_operandcslG�fdd�dt�}i�id|d�6d|d�6�ytj��Wntk
rgYnXdS)Ncs.eZdZdd�Z�fdd�ZdS)zADictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.XcSsdS)Nr�r)rrrrrG�szJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__cs#t��dkr�j�ndS)NrF)r?rS)rrC)r5rrrE�s
zHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__N)rrrrGrEr)r5rrr��sr�rr
)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)Nr�r)rrrrrG�szIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__cs#t��dkr�j�ndS)NrF)r?rS)rrC)r5rrrE�s
zGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__N)rrrrGrEr)r5rrr��sr�rr
)r�rrwr�)rr�r)r5r�,test_fromkeys_operator_modifying_set_operand�s	
z5DictTest.test_fromkeys_operator_modifying_set_operandcsFG�fdd�d�}it�d6�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_free�sz/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)Nr�r)r)�pairrrrG�sz5DictTest.test_init_use_after_free.<locals>.X.__hash__N)rrrrGr)rrrr��sr��{)r)rr�r)rr�test_init_use_after_free�sz!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>rcs8x1�j�D]#}|ddkr
d�d<q
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�rrrrr	rrrrr
sp	
	&L:!,+@
		r)�
mapping_testsc@seZdZeZdS)�GeneralMappingTestsN)rrrr�	type2testrrrrrsrc@seZdZdS)�DictN)rrrrrrrr
sr
c@seZdZeZdS)�SubclassMappingTestsN)rrrr
rrrrrrsrcCstjttt�dS)N)rZrun_unittestrrrrrrr�	test_mainsr�__main__)ZunittestZtestrrjrrZcollections.abcr�r�r�ZTestCaserr
ZBasicTestMappingProtocolrrr
rrrrrrr�<module>s"$����