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-2.pyc



���]���@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�./opt/alt/python35/lib64/python3.5/test_dict.py�Custom
sr	��)�dict�assertRaises�	TypeError�update)�selfr	�invalidrrr�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�random�sample�string�
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)�ranger�shufflerr�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
rr3zdict_values([1]))rr5�valuesr
rr8r)rr9rrr�test_values8szDictTest.test_valuescCs�i}|jt|j��t��ddi}|jt|j��dh�|jt|jd�|jttdd�j��d�dS)Nr
rr3zdict_items([('a', 1)]))r
r)rr5r-r
rr8r)rr9rrr�
test_items@szDictTest.test_itemscCs�i}|jd|�|jd|k�|jd|k�ddddi}|jd|�|jd|�|jd|�|jt|j�dS)Nr3r
r4r�c)�assertNotIn�assertFalser0r7r
r�__contains__)rr9rrr�
test_containsIszDictTest.test_containscCsHi}|jt|�d�ddddi}|jt|�d�dS)Nrr3r
r4r)r�len)rr9rrr�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)Nr3r
r4r�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)rrrrIrKr)rHrr�BadEqhsrL�*�c@seZdZdS)z"DictTest.test_getitem.<locals>.ExcN)rrrrrrrrHrsrHcs(eZdZdZ�fdd�ZdS)z&DictTest.test_getitem.<locals>.BadHashFcs|jr���ndSdS)NrM)�fail)r)rHrrrKvs	z/DictTest.test_getitem.<locals>.BadHash.__hash__N)rrrrOrKr)rHrr�BadHashtsrPT)rr
r�__getitem__�object�KeyError�	ExceptionrO)rr9rLrP�xr)rHr�test_getitem[s(


	
	zDictTest.test_getitemcCsLddddddi}|j�|j|i�|jt|jd�dS)Nr
rrE)�clearrr
r)rr9rrr�
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�rEc@s4eZdZdd�Zdd�Zdd�ZdS)z,DictTest.test_update.<locals>.SimpleUserDictcSsddddddi|_dS)Nr
rrE)r9)rrrr�__init__�sz5DictTest.test_update.<locals>.SimpleUserDict.__init__cSs
|jj�S)N)r9r6)rrrrr6�sz1DictTest.test_update.<locals>.SimpleUserDict.keyscSs|j|S)N)r9)rr!rrrrQ�sz8DictTest.test_update.<locals>.SimpleUserDict.__getitem__N)rrrr[r6rQrrrr�SimpleUserDict�sr\c@seZdZdS)z!DictTest.test_update.<locals>.ExcN)rrrrrrrrH�srHcs"eZdZ�fdd�ZdS)z-DictTest.test_update.<locals>.FailingUserDictcs
��dS)Nr)r)rHrrr6�sz2DictTest.test_update.<locals>.FailingUserDict.keysN)rrrr6r)rHrr�FailingUserDict�sr]cs.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!)rrrrr[�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)Nrr3)r!)r)rHrr�__next__�s		zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N)rrrr[r^r_r)rHrr�	BogonIter�sr`r)rr`)rHrrr6�s
z2DictTest.test_update.<locals>.FailingUserDict.keyscSs|S)Nr)r�keyrrrrQ�sz9DictTest.test_update.<locals>.FailingUserDict.__getitem__N)rrrr6rQr)rHrrr]�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)Nr3)�ordr!)rrrrr[�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__cSs|S)Nr)rrrrr^�szNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cSsA|jtd�kr7t|j�}|jd7_|St�dS)N�zr
)r!rb�chr�
StopIteration)rZrtnrrrr_�s
zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N)rrrr[r^r_rrrrr`�sr`r)rr`rrrr6�sz2DictTest.test_update.<locals>.FailingUserDict.keyscs
��dS)Nr)rra)rHrrrQ�sz9DictTest.test_update.<locals>.FailingUserDict.__getitem__N)rrrr6rQr)rHrrr]�s
cs.eZdZdd�Z�fdd�ZdS)z$DictTest.test_update.<locals>.badseqcSs|S)Nr)rrrrr^�sz-DictTest.test_update.<locals>.badseq.__iter__cs
���dS)Nr)r)rHrrr_�sz-DictTest.test_update.<locals>.badseq.__next__N)rrrr^r_r)rHrr�badseq�srf)r
rrE)	rrr
r�AttributeErrorrWrTrR�
ValueError)rr9r\r]rfr)rHr�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�abcr3r4r>rF�rcss	dVdS)Nr
rrrrr�g�sz!DictTest.test_fromkeys.<locals>.gr
rEc@seZdZdS)z(DictTest.test_fromkeys.<locals>.dictlikeN)rrrrrrr�dictlike�srmc@seZdZdd�ZdS)z&DictTest.test_fromkeys.<locals>.mydictcSs
tj�S)N)�collections�UserDict)�clsrrr�__new__�sz.DictTest.test_fromkeys.<locals>.mydict.__new__N)rrrrqrrrr�mydict�srr�abc@seZdZdS)z#DictTest.test_fromkeys.<locals>.ExcN)rrrrrrrrH�srHcs"eZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict1cs
���dS)Nr)r)rHrrr[�sz1DictTest.test_fromkeys.<locals>.baddict1.__init__N)rrrr[r)rHrr�baddict1�srtcs.eZdZdd�Z�fdd�ZdS)z&DictTest.test_fromkeys.<locals>.BadSeqcSs|S)Nr)rrrrr^�sz/DictTest.test_fromkeys.<locals>.BadSeq.__iter__cs
���dS)Nr)r)rHrrr_�sz/DictTest.test_fromkeys.<locals>.BadSeq.__next__N)rrrr^r_r)rHrr�BadSeq�srucs"eZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict2cs
���dS)Nr)rra�value)rHrr�__setitem__�sz4DictTest.test_fromkeys.<locals>.baddict2.__setitem__N)rrrrwr)rHrr�baddict2�srxrcs"eZdZ�fdd�ZdS)z(DictTest.test_fromkeys.<locals>.baddict3cs�S)Nr)rp)r9rrrqsz0DictTest.test_fromkeys.<locals>.baddict3.__new__N)rrrrqr)r9rr�baddict3srycSsi|]}||�qSrr)r r!rrr�
<dictcomp>	s	z*DictTest.test_fromkeys.<locals>.<dictcomp>�
)rFrk)rr�fromkeysrr
r�assertIsInstancernrorTrR�zipr)�copyr)
rrlrmrrZudrtrurxry�resr)rHr9r�
test_fromkeys�sB++(""!8zDictTest.test_fromkeyscCspddddddi}|j|j�ddddddi�|jij�i�|jt|jd�dS)Nr
rrE)rrr
r)rr9rrr�	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>rEr3r
r4r)r/�getrr
r)rr9rrr�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)
NZkey0rarErrFrc@seZdZdS)z%DictTest.test_setdefault.<locals>.ExcN)rrrrrrrrH,srHcs(eZdZdZ�fdd�ZdS)z)DictTest.test_setdefault.<locals>.BadHashFcs|jr���ndSdS)NrM)rO)r)rHrrrK0s	z2DictTest.test_setdefault.<locals>.BadHash.__hash__N)rrrrOrKr)rHrrrP.srPrMT)
r/�
setdefault�appendrrCr
rrTrRrO)rr9rPrUr)rHr�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)rrrrr[>s	z8DictTest.test_setdefault_atomic.<locals>.Hashed.__init__cSs|jd7_dS)Nr
rM)r�)rrrrrKAsz8DictTest.test_setdefault_atomic.<locals>.Hashed.__hash__cSs%|jd7_t|�t|�kS)Nr
)r��id)rrGrrrrIDsz6DictTest.test_setdefault_atomic.<locals>.Hashed.__eq__N)rrrr[rKrIrrrr�Hashed=sr�rkr
)rRr�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�)rrrrr[Qs	z?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__init__cSs|jd7_dS)Nr
rM)r�)rrrrrKTsz?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__hash__cSs%|jd7_t|�t|�kS)Nr
)r�r�)rrGrrrrIWsz=DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__eq__N)rrrr[rKrIrrrrr�Psr�rkrr
rrE)rRrr�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)r8r�popitemr�intr@r
rS)r�copymodeZlog2size�sizer3r4r!�kaZva�taZkbZvb�tbr9rrr�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)
Nrj�defZghirr
c@seZdZdS)zDictTest.test_pop.<locals>.ExcN)rrrrrrrrH�srHcs(eZdZdZ�fdd�ZdS)z"DictTest.test_pop.<locals>.BadHashFcs|jr���ndSdS)NrM)rO)r)rHrrrK�s	z+DictTest.test_pop.<locals>.BadHash.__hash__N)rrrrOrKr)rHrrrP�srPrMT)rjr�)	r
rS�poprrCrrTrRrO)rr9r$r%rPrUr)rHr�test_pops"

	
	zDictTest.test_popcCsJi}d|d<|jt��$x|D]}d||d<q'WWdQRXdS)Nr
)r
�RuntimeError)rr9r!rrr�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)rv)rrvrrrr[�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__init__cSsdS)Nr
r)rrrrrK�sz8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__cs8�jr(�j\}}d�_||=|j|jkS)N)�mutate_dictrv)rrGrrra)�NastyKeyrrrI�s
		z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__)rrrr�r[rKrIr)r�rrr��sr�r
r)r�r)rZkey1Zkey2r9r)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)rrrrrrrrH�srHcs"eZdZ�fdd�ZdS)z#DictTest.test_repr.<locals>.BadReprcs
���dS)Nr)r)rHrr�__repr__�sz,DictTest.test_repr.<locals>.BadRepr.__repr__N)rrrr�r)rHrr�BadRepr�sr�)rr8rTrRr
)rr9r�r)rHr�	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)rrrrrrrrH�srHcs.eZdZ�fdd�Zdd�ZdS)z DictTest.test_eq.<locals>.BadCmpcs
���dS)Nr)rrG)rHrrrI�sz'DictTest.test_eq.<locals>.BadCmp.__eq__cSsdS)Nr
r)rrrrrK�sz)DictTest.test_eq.<locals>.BadCmp.__hash__N)rrrrIrKr)rHrr�BadCmp�sr�)rrTrRr
)rr��d1�d2r)rHr�test_eq�szDictTest.test_eqcCs*|jdd��|jdd��dS)NcSs
|j�S)N)r6)rUrrr�<lambda>�sz.DictTest.test_keys_contained.<locals>.<lambda>cSs
|j�S)N)r-)rUrrrr��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
rrErF)rr0r@)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�)rrGrrrrIsz@DictTest.test_errors_in_view_containment_check.<locals>.C.__eq__N)rrrrIrrrr�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
rrErF)r6rr5)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
rrErF)r
r
)rr)rErE)rFrF)r
r
)rr)r
r
)rr)rErE)rErE)r
r
)rr)rFrF)r-rr5)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
)r0r6rr-)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)NrMr)rrarrrr�`sz,DictTest.test_missing.<locals>.D.__missing__N)rrrr�rrrr�D_sr�r
rrErFrMc@seZdZdd�ZdS)z DictTest.test_missing.<locals>.EcSst|��dS)N)r�)rrarrrr�jsz,DictTest.test_missing.<locals>.E.__missing__N)rrrr�rrrr�Eisr�c@seZdZdd�ZdS)z DictTest.test_missing.<locals>.FcSsdd�|_dS)NcSsdS)Nr)rarrrr�tsz;DictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>)r�)rrrrr[rsz)DictTest.test_missing.<locals>.F.__init__N)rrrr[rrrr�Fqsr�c@seZdZdS)z DictTest.test_missing.<locals>.GN)rrrrrrr�Gzsr�)rM)rM)rM)r@�hasattrrrr?r6r
r��	exception�argsrS)
rr�r9r��er>r��fr�rlrrr�test_missingVs0			zDictTest.test_missingc
CsAi}|jt��}|dWdQRX|j|jjd�dS)Nr
)r
�r
)r�)r
rSrr�r�)rr9r>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__)rrrrrK�sz2DictTest.test_bad_key.<locals>.BadDictKey.__hash__cst||j�r��|S)N)�
isinstancer�)rrG)r�rrrI�sz0DictTest.test_bad_key.<locals>.BadDictKey.__eq__N)rrrrKrIr)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}))rTr
�exec�locals)rr�r9Zx1Zx2Zstmtr)r�r�test_bad_key�s			

zDictTest.test_bad_keycCsmi}xtd�D]}|||<qWxtd�D]
}||=q4Wx!tdd�D]}|||<qUWdS)Nrk�	)r))rr9r!rrr�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)Nrkr)rrrrrK�sz)DictTest.test_resize2.<locals>.X.__hash__cs�r�j�dS)NF)rW)rrG)r9�resizingrrrI�s
z'DictTest.test_resize2.<locals>.X.__eq__N)rrrrKrIr)r9r�rr�X�sr�Fr
rrErFrkTrr�)rR)rr�r)r9r�r�test_resize2�s




zDictTest.test_resize2cCs[|jt��?dddddddddddddd	dd
di}WdQRXi}dS)Nr3r
rr4r>r9r�r�rl�h)r
�ZeroDivisionError)rr9rrr�$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)
rRrr-r;r6�weakref�refr%�iterrU�gc�collectr/)rr�Zviewsr%�objr��	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)r0r�r�r�)rr�rrr�_tracked�s

zDictTest._trackedcCs�dddgf\}}}}|ji�|j|f|||di�|jddddi�|jdddddffti�|jdt�i�|jdgi�|jdgfi�|jdii�|jdt�i�dS)	Ng�?r3r
r4rTF)r
N)r�r�rRr�r5)rrUr�rc�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�?r3r
rrErFrUr�rcr�)rRrr�rr�r|r)	rr�rUr�rcr��or9�ddrrr�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)Nrc@seZdZdS)z5DictTest.test_splittable_setattr_after_pop.<locals>.CN)rrrrrrrr�Msr�rrE)�	_testcapir3r0Zdict_hassplittable�__dict__r�r@)rr�r�r3rrr�!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
r3rr4rEr>)
r)�pickle�HIGHEST_PROTOCOLr��dumps�loadsr�sorted�nextre)r�proto�data�itr9�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
r3rr4rEr>r)r)r�r�r�r-r�r�r}rnrj�Iteratorrrr�)rr�r�Zitorgr9r�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
r3rr4rEr>)r)r�r�r�r;r�r�rr��listr�)rr�r�r�r9r�r;rrr�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�rrrr[�szFDictTest.test_instance_dict_getattr_str_subclass.<locals>.Foo.__init__N)rrrr[rrrr�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
r3)r�r3r)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)r9�mutaterr�__del__�sz<DictTest.check_reentrant_insertion.<locals>.Mutating.__del__N)rrrrr)r9rrr�Mutating�srcsi|]}��|�qSrr)r r$)rrrrz�s	z6DictTest.check_reentrant_insertion.<locals>.<dictcomp>Zabcdefghijklmnopqr)r�)rrr$r)rr9rr�check_reentrant_insertion�sz"DictTest.check_reentrant_insertioncsUdd�}�j|��fdd�}�j|�dd�}�j|�dS)NcSsd|d<dS)Nrkr4r)r9rrrr�sz1DictTest.test_reentrant_insertion.<locals>.mutatecs|j�j�|j�dS)N)rr�rW)r9)rrrr�scSsx|r|j�qWdS)N)r�)r9rrrr�s	)r)rrr)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)rrrrrK�sz2DictTest.test_merge_and_mutate.<locals>.X.__hash__cs�j�dS)NF)rW)rr�)rGrrrI�s
z0DictTest.test_merge_and_mutate.<locals>.X.__eq__N)rrrrKrIr)rGrrr��sr�cSsg|]}|df�qS)rr)r r!rrrr"�s	z2DictTest.test_merge_and_mutate.<locals>.<listcomp>r
i9r)r)rr
r�r)rr��lr9r)rGr�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�r6)r9rrrr��sz4DictTest.test_free_after_iterating.<locals>.<lambda>cSst|j��S)N)r�r;)r9rrrr��scSst|j��S)N)r�r-)r9rrrr��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)rW)r)�dict_brrr�szADictTest.test_equal_operator_modifying_operand.<locals>.X.__del__cs�j�dS)NT)rW)rrG)�dict_arrrI�s
z@DictTest.test_equal_operator_modifying_operand.<locals>.X.__eq__cSsdS)N�
r)rrrrrK�szBDictTest.test_equal_operator_modifying_operand.<locals>.X.__hash__N)rrrrrIrKr)r
r	rrr��sr�r)r0)rr�r)r
r	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)rrrrrK�szJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__cs t��dkr�j�dS)Nr
F)rCrW)rrG)r9rrrI�s
zHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__N)rrrrKrIr)r9rrr��sr�r
r)r�rr|r�)rr�r)r9r�-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)rrrrrK�szIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__cs t��dkr�j�dS)Nr
F)rCrW)rrG)r9rrrI�s
zGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__N)rrrrKrIr)r9rrr��sr�r
r)r�rr|r�)rr�r)r9r�,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)rW�NotImplemented)rrG)r9rrrI
s
zADictTest.test_dictitems_contains_use_after_free.<locals>.X.__eq__N)rrrrIr)r9rrr�	sr�r)r5r-)rr�r)r9r�&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)�pairrrrKsz5DictTest.test_init_use_after_free.<locals>.X.__hash__N)rrrrKr)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)rW)r)r9rrrszCDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.X.__del__N)rrrrr)r9rrr�sr�csi|]}�|�|�qSrr)r r!)r�rrrzs	zDDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.<dictcomp>rcs5x.�j�D] }|ddkr
d�d<q
WdS)Nrr)r-)�result)r9rr�iter_and_mutate!szIDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.iter_and_mutate)r�r)r
r�)rrr)r�r9r�'test_oob_indexing_dictiter_iternextitemsz0DictTest.test_oob_indexing_dictiter_iternextitemN)?rrrrrr.r2r:r<r=rBrDrVrXrir�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�rZcpython_onlyr�r�r�r�r�r�r�r�rrrrrrr
rrrrrrrrr
st	
	&L:!,+@
		r)�
mapping_testsc@seZdZeZdS)�GeneralMappingTestsN)rrrr�	type2testrrrrr+src@seZdZdS)�DictN)rrrrrrrr.src@seZdZeZdS)�SubclassMappingTestsN)rrrrrrrrrr1sr�__main__)ZunittestZtestrrnrr�collections.abcr�r�r�ZTestCaserrZBasicTestMappingProtocolrrrrr�mainrrrr�<module>s $����#