add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
3

�
�^�V�@sNddlZddlZddlZGdd�dej�ZGdd�de�ZGdd�de�ZdS)�Nc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�ZdS)&�BasicTestMappingProtocolNcCsdddd�S)z^Return a dictionary of values which are invariant by storage
        in the object under test.�2Zvalue1���)�1Zkey1Zkey2)rrr�)�selfrr�*/usr/lib64/python3.6/test/mapping_tests.py�
_referencesz#BasicTestMappingProtocol._referencecCs|j�S)zReturn an empty mapping object)�	type2test)r	rrr
�_empty_mappingsz'BasicTestMappingProtocol._empty_mappingcCs*|j�}x|j�D]\}}|||<qW|S)zKReturn a mapping object with the value contained in data
        dictionary)r
�items)r	�data�x�key�valuerrr
�
_full_mappingsz&BasicTestMappingProtocol._full_mappingcOs`tjj|f|�|�|j�j�|_|jj�\}}||i|_|jj�\}}||i|_||j|<dS)N)	�unittest�TestCase�__init__r�copy�	reference�popitem�other�	inmapping)r	�args�kwrrrrr
rs

z!BasicTestMappingProtocol.__init__cs�j�}t|�}�j�j���|kr(|}x&�jj�D]\}}�j�||�q4Wt�jj��d��j	t
��fdd���jt|�d��jt��t�j��x�jD]}�j|��q�Wx�jD]}�j
|��q�W�j||��j����j|���j�|�|�r�jd���s&�jd��fdd�}|t�j��t�j���jj��|t��t�j���jj��|t�j��t�j���jj��|t�j��t�j���jj��tt�j���\}}tt�jj���\�}�j�j||�|��j�j�|�|��j
���dS)Nrcs��S)Nrr)�d�knownkeyrr
�<lambda>6sz4BasicTestMappingProtocol.test_read.<locals>.<lambda>z#Empty mapping must compare to Falsez!Full mapping must compare to TruecsV�jt|d���jt|d��t|�}�jt|�t|�koJt|�kn�dS)N�__next__�__iter__)�
assertTrue�hasattr�list�set)�iterZlst�refr)r	rr
�check_iterandlistHsz=BasicTestMappingProtocol.test_read.<locals>.check_iterandlist)r
�dictrrr�assertEqualr%r�keys�assertRaises�KeyError�len�assertIn�assertNotInZassertNotEqual�failr'�values�next�get)r	�pZp1rr�kr)�
knownvaluer)rrr	r
�	test_read+sH

z"BasicTestMappingProtocol.test_readcs�|j��x.|jj�D] \�}|��<|j��|�qWx.|jj�D] ���=|jt��fdd��qDW|j���j|j�|jt��|j�t	�j��}|j���j|�|jt��|j�|j
|j�}tt|j���\�}tt|j
j���\}}|j|j�|�|�|j|�|�|j|j||�|�|j|||�|j|j|�|�|j||�|jt|j|�d}|||<|j|j||�|�|j||�|j|j||�|�|j�\�}|j�|�|j||j��|j��|jt�j�dS)Ncs��S)Nrr)rr6rr
r dsz5BasicTestMappingProtocol.test_write.<locals>.<lambda>i�)r
rrr+r,r-r.�updater*r%rr4r'r�
setdefault�popr1r)r	rrrrr8�defaultr)rr6r
�
test_write[sD
z#BasicTestMappingProtocol.test_writecCs|j|j�|j��dS)N)r+r
)r	rrr
�test_constructor�sz)BasicTestMappingProtocol.test_constructorcCsJ|j|j��|j|j�|jt|j��dk�|jt|j�dk�dS)NFT)r#r
r�bool)r	rrr
�	test_bool�sz"BasicTestMappingProtocol.test_boolcCsr|j�}|jt|j��g�|j}|jt|jj��d|j��|jt|jj��d|j��|j	t
|jd�dS)Nr)r
r+r%r,rr0rr1rr-�	TypeError)r	rrrr
�	test_keys�sz"BasicTestMappingProtocol.test_keyscCs0|j�}|jt|j��g�|jt|jd�dS)N)r
r+r%r3r-rB)r	rrrr
�test_values�sz$BasicTestMappingProtocol.test_valuescCs0|j�}|jt|j��g�|jt|jd�dS)N)r
r+r%rr-rB)r	rrrr
�
test_items�sz#BasicTestMappingProtocol.test_itemscCs|j�}|jt|�d�dS)Nr)r
r+r/)r	rrrr
�test_len�sz!BasicTestMappingProtocol.test_lencCsD|j}|j|t|jj��dt|jj��d�|jt|j�dS)Nr)	rr+r%rr,r3r-rB�__getitem__)r	rrrr
�test_getitem�sz%BasicTestMappingProtocol.test_getitemcs�|j�}|j|j�|jt|j��t|jj���|j�}|j�|j||j��|j�}|j|jj��|jt|j��t|jj���|j�}|j|jj��|jt|j��t|jj���|jttf|jd�|�G�fdd�d�}|j	�|j|��t
|j��}t
|jj��}|j||�Gdd�dt��|j�}G�fdd�d�}|j�|j|��|j	�G�fdd�d�}|j�|j|��G�fd	d�d�}|j�|j|��|j�}G�fd
d�dt
�}|j�|j|��|jt|jdg�dS)N�*cs(eZdZ�fdd�Zdd�Zdd�ZdS)z<BasicTestMappingProtocol.test_update.<locals>.SimpleUserDictcs�j|_dS)N)rr)r	)�	outerselfrr
r�szEBasicTestMappingProtocol.test_update.<locals>.SimpleUserDict.__init__cSs
|jj�S)N)rr,)r	rrr
r,�szABasicTestMappingProtocol.test_update.<locals>.SimpleUserDict.keyscSs
|j|S)N)r)r	�irrr
rG�szHBasicTestMappingProtocol.test_update.<locals>.SimpleUserDict.__getitem__N)�__name__�
__module__�__qualname__rr,rGr)rJrr
�SimpleUserDict�srOc@seZdZdS)z1BasicTestMappingProtocol.test_update.<locals>.ExcN)rLrMrNrrrr
�Exc�srPcseZdZ�fdd�ZdS)z=BasicTestMappingProtocol.test_update.<locals>.FailingUserDictcs��dS)Nr)r	)rPrr
r,�szBBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keysN)rLrMrNr,r)rPrr
�FailingUserDict�srQcs eZdZ�fdd�Zdd�ZdS)z=BasicTestMappingProtocol.test_update.<locals>.FailingUserDictcsG�fdd�d�}|�S)Ncs(eZdZdd�Zdd�Z�fdd�ZdS)zUBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSs
d|_dS)Nr)rK)r	rrr
r�sz^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__cSs|S)Nr)r	rrr
r"�sz^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cs|jrd|_dS��dS)Nr�a)rK)r	)rPrr
r!�sz^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N)rLrMrNrr"r!r)rPrr
�	BogonIter�srSr)r	rS)rPrr
r,�s
zBBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keyscSs|S)Nr)r	rrrr
rG�szIBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.__getitem__N)rLrMrNr,rGr)rPrr
rQ�scs eZdZdd�Z�fdd�ZdS)z=BasicTestMappingProtocol.test_update.<locals>.FailingUserDictcSsGdd�d�}|�S)Nc@s$eZdZdd�Zdd�Zdd�ZdS)zUBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonItercSstd�|_dS)NrR)�ordrK)r	rrr
r�sz^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__cSs|S)Nr)r	rrr
r"�sz^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__cSs2|jtd�kr*t|j�}|jd7_|St�dS)N�zr)rKrT�chr�
StopIteration)r	Zrtnrrr
r!�s

z^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__N)rLrMrNrr"r!rrrr
rS�srSr)r	rSrrr
r,�szBBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keyscs��dS)Nr)r	r)rPrr
rG�szIBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.__getitem__N)rLrMrNr,rGr)rPrr
rQ�s
cs eZdZdd�Z�fdd�ZdS)z4BasicTestMappingProtocol.test_update.<locals>.badseqcSs|S)Nr)r	rrr
r"sz=BasicTestMappingProtocol.test_update.<locals>.badseq.__iter__cs
���dS)Nr)r	)rPrr
r!sz=BasicTestMappingProtocol.test_update.<locals>.badseq.__next__N)rLrMrNr"r!r)rPrr
�badseqsrXrrr)rrr)r
r:rr+r%rr-rB�AttributeError�clear�sortedr�	Exception�object�
ValueError)r	rrOZi1Zi2rQrXr)rPrJr
�test_update�sBz$BasicTestMappingProtocol.test_updatecCs|j�}|j|jt|jj��d�dk�|j|jt|jj��dd�d�|j}|j|jt|jj��d�dk�|j|jt|jj��dd�d�|j|jt|jj��d�t|jj	��d�|j|jt|jj��dd�t|jj	��d�|j
t|j�|j
t|jddd�dS)Nrr)r
r#r5r%rr,r+rrr3r-rB)r	rrrr
�test_gets""""z!BasicTestMappingProtocol.test_getcCs|j�}|jt|j�dS)N)r
r-rBr;)r	rrrr
�test_setdefaultsz(BasicTestMappingProtocol.test_setdefaultcCs*|j�}|jt|j�|jt|jd�dS)NrI)r
r-r.rrB)r	rrrr
�test_popitem sz%BasicTestMappingProtocol.test_popitemcCsz|j�}t|jj��d\}}|||<|jt|jt|jj��d�|j	|j|�|�|j	t
|�d�|jt|j|�dS)Nr)r
r%rrr-r.r<rr,r+r/)r	rr7�vrrr
�test_pop%sz!BasicTestMappingProtocol.test_pop)rLrMrNrrr
rrr9r>r?rArCrDrErFrHr_r`rarbrdrrrr
rs&
0*arc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�TestMappingProtocolcCs@tj|�|j|j�|j�k	�|j|jddd�ddd��dS)Nrr)r�y)rr?r#r
r+r)r	rrr
r?2s
z$TestMappingProtocol.test_constructorcCsdtj|�|j|j��|j|jddi��|jt|j��dk�|jt|jddi��dk�dS)NrrfFT)rrAr#r
rr@)r	rrr
rA7s

zTestMappingProtocol.test_boolcCsftj|�|j�}|jt|j��g�|jddd��}|j�}|jd|�|jd|�|jd|�dS)Nrr)rR�brRrg�c)	rrCr
r+r%r,rr0r1)r	rr7rrr
rC>s
zTestMappingProtocol.test_keyscCs2tj|�|jddi�}|jt|j��dg�dS)Nrr)rrDrr+r%r3)r	rrrr
rDHs
zTestMappingProtocol.test_valuescCs2tj|�|jddi�}|jt|j��dg�dS)Nrr)rr)rrErr+r%r)r	rrrr
rEMs
zTestMappingProtocol.test_itemscCsv|j�}|jd|�|jd|k�|jd|k�|jddd��}|jd|�|jd|�|jd|�|jt|j�dS)NrRrr)rRrgrgrh)r
r1r#rr0r-rB�__contains__)r	rrrr
�
test_containsSsz!TestMappingProtocol.test_containscCs.tj|�|jddd��}|jt|�d�dS)Nrr)rRrg)rrFrr+r/)r	rrrr
rF_s
zTestMappingProtocol.test_lencCs�tj|�|jddd��}|j|dd�|j|dd�d|d<d|d<|j|dd�|j|dd�|d=|j|ddd	��|jt|j�dS)
Nrr)rRrgrRrgrrh�)rRrh)rrHrr+r-rBrG)r	rrrr
rHds
z TestMappingProtocol.test_getitemcCs:|jdddd��}|j�|j|i�|jt|jd�dS)Nrrr)rrr)rrZr+r-rB)r	rrrr
�
test_clearrszTestMappingProtocol.test_clearcCs�tj|�|j�}|jddi�|jddi�|jdddd��|j|dddd��|j�|j|dddd��|j�}|jdd�|jdd�|jdddd	�|j|dddd	��|j�}|jddg�|j|ddd��|j�}|jddgddd�|j|ddd��|jdd
d��}|j|jdd
dd��j��|j|dd
d
dd��Gdd�d�}|j�|j|��|j|dddd��dS)Nr�dr�r)rrr)r)rf)rrfrUrrf)rrfrk)rr�)rr�)rrrrpc@s$eZdZdd�Zdd�Zdd�ZdS)z7TestMappingProtocol.test_update.<locals>.SimpleUserDictcSsdddd�|_dS)Nrrr)rrr)r)r	rrr
r�sz@TestMappingProtocol.test_update.<locals>.SimpleUserDict.__init__cSs
|jj�S)N)rr,)r	rrr
r,�sz<TestMappingProtocol.test_update.<locals>.SimpleUserDict.keyscSs
|j|S)N)r)r	rKrrr
rG�szCTestMappingProtocol.test_update.<locals>.SimpleUserDict.__getitem__N)rLrMrNrr,rGrrrr
rO�srO)rrm)rfrn)rrm)rfrn)rr_r
r:r+rrrZ)r	rrOrrr
r_ys4
zTestMappingProtocol.test_updatec	s
|j|jjd�dddd��|j�}|j|jd�|k	�|j|jd�dddd��|j|jdd�ddd��|j|jg�i�dd�}|j|j|��d	di�|jtijd
�Gdd�d|j�}|j|jd
�d
di�|j|�jd
�d
di�|j|jd
�j|k�|j|�jd
�j|k�|jt|jd
��|k�Gdd�d|j�}|jd�}|j|ddd��|j	|t
j�|jttj�Gdd�dt
��G�fdd�d|j�}|j�|jd	g�G�fdd�dt�}|j�|jj|��G�fdd�d|j�}|j�|jd	g�dS)N�abc)rRrgrhrkrpr)rkrpcss
dVdS)Nrrrrrr
�g�sz,TestMappingProtocol.test_fromkeys.<locals>.grrc@seZdZdS)z3TestMappingProtocol.test_fromkeys.<locals>.dictlikeN)rLrMrNrrrr
�dictlike�srsrRc@seZdZdd�ZdS)z1TestMappingProtocol.test_fromkeys.<locals>.mydictcSstj�S)N)�collections�UserDict)�clsrrr
�__new__�sz9TestMappingProtocol.test_fromkeys.<locals>.mydict.__new__N)rLrMrNrwrrrr
�mydict�srx�ab)rRrgc@seZdZdS)z.TestMappingProtocol.test_fromkeys.<locals>.ExcN)rLrMrNrrrr
rP�srPcseZdZ�fdd�ZdS)z3TestMappingProtocol.test_fromkeys.<locals>.baddict1cs
���dS)Nr)r	)rPrr
r�sz<TestMappingProtocol.test_fromkeys.<locals>.baddict1.__init__N)rLrMrNrr)rPrr
�baddict1�srzcs eZdZdd�Z�fdd�ZdS)z1TestMappingProtocol.test_fromkeys.<locals>.BadSeqcSs|S)Nr)r	rrr
r"�sz:TestMappingProtocol.test_fromkeys.<locals>.BadSeq.__iter__cs
���dS)Nr)r	)rPrr
r!�sz:TestMappingProtocol.test_fromkeys.<locals>.BadSeq.__next__N)rLrMrNr"r!r)rPrr
�BadSeq�sr{cseZdZ�fdd�ZdS)z3TestMappingProtocol.test_fromkeys.<locals>.baddict2cs
���dS)Nr)r	rr)rPrr
�__setitem__�sz?TestMappingProtocol.test_fromkeys.<locals>.baddict2.__setitem__N)rLrMrNr|r)rPrr
�baddict2�sr})rkrp)r+r�fromkeysr
r#r-rB�	__class__�type�assertIsInstancertrur*r\r])	r	rrrrsrx�udrzr{r}r)rPr
�
test_fromkeys�s6
z!TestMappingProtocol.test_fromkeyscCsh|jdddd��}|j|j�dddd��|j�}|j|j�|�|j|j�|j�|jt|jd�dS)Nrrr)rrr)rr+rr
r�rr-rB)r	rrrr
�	test_copy�szTestMappingProtocol.test_copycCs�tj|�|j�}|j|jd�dk�|j|jdd�d�|jddd��}|j|jd�dk�|j|jdd�d�|j|jd�d�|j|jdd�d�dS)Nrhrrr)rRrgrR)rr`r
r#r5r+r)r	rrrr
r`�s
zTestMappingProtocol.test_getcCs�tj|�|j�}|j|jd�dk�|jdg�|j|jd�dk�|jdg�jd�|j|ddd�|jdg�jd�|jt|d�d�dS)NZkey0rrrrkr)rrar
r#r;�appendr+r/)r	rrrr
ra�s
z#TestMappingProtocol.test_setdefaultc
Cstj|��x�dD]�}x�td�D]�}d|}|j�}|j�}x0t|�D]$}||t|�<|dkrF||t|�<qFW|dkr~|j�}xht|�D]\}|j�\}}}	|j|t|��|j�\}
}}|j|t|
��|j	|dko�|	|k�q�W|j	|�|j	|�q WqWdS)Nr�rr�����r)r�r)
rrb�ranger
�reprrrr+�intr#)
r	ZcopymodeZlog2size�sizerRrgrKZkaZvaZtaZkbZvb�tbrrr
rb�s(
z TestMappingProtocol.test_popitemcCsNtj|�|j�}d\}}|j|j||�|�|||<|j|j|d�|�dS)Nrq�defr)rqr�)rrdr
r+r<)r	rr7rcrrr
rds
zTestMappingProtocol.test_popN)rLrMrNr?rArCrDrErjrFrHrlr_r�r�r`rarbrdrrrr
re1s 
./rec@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestHashMappingProtocolcs�tj|�Gdd�dt��G�fdd�dt�}|j�}d||�<|jt|jd�G�fdd�dt�}|j�}|�}d||<d	|_|j�|j|�dS)
Nc@seZdZdS)z1TestHashMappingProtocol.test_getitem.<locals>.ExcN)rLrMrNrrrr
rPsrPcs eZdZ�fdd�Zdd�ZdS)z3TestHashMappingProtocol.test_getitem.<locals>.BadEqcs
���dS)Nr)r	r)rPrr
�__eq__sz:TestHashMappingProtocol.test_getitem.<locals>.BadEq.__eq__cSsdS)N�r)r	rrr
�__hash__!sz<TestHashMappingProtocol.test_getitem.<locals>.BadEq.__hash__N)rLrMrNr�r�r)rPrr
�BadEqsr�rI�cseZdZdZ�fdd�ZdS)z5TestHashMappingProtocol.test_getitem.<locals>.BadHashFcs|jr���ndSdS)NrI)r2)r	)rPrr
r�*sz>TestHashMappingProtocol.test_getitem.<locals>.BadHash.__hash__N)rLrMrNr2r�r)rPrr
�BadHash(sr�T)	rerHr\r]r
r-r.rGr2)r	r�rr�rr)rPr
rHs

z$TestHashMappingProtocol.test_getitemcCsJtj|�Gdd�d|j�}|jd�}|j|ddd��|j|tj�dS)Nc@seZdZdd�ZdS)z5TestHashMappingProtocol.test_fromkeys.<locals>.mydictcSstj�S)N)rtru)rvrrr
rw9sz=TestHashMappingProtocol.test_fromkeys.<locals>.mydict.__new__N)rLrMrNrwrrrr
rx8srxry)rRrg)rer�rr~r+r�rtru)r	rxr�rrr
r�6s


z%TestHashMappingProtocol.test_fromkeyscs^tj|�Gdd�dt��G�fdd�dt�}|j�}|�}d||<d|_|j�|j|�dS)Nc@seZdZdS)z-TestHashMappingProtocol.test_pop.<locals>.ExcN)rLrMrNrrrr
rPBsrPcseZdZdZ�fdd�ZdS)z1TestHashMappingProtocol.test_pop.<locals>.BadHashFcs|jr���ndSdS)NrI)r2)r	)rPrr
r�Fsz:TestHashMappingProtocol.test_pop.<locals>.BadHash.__hash__N)rLrMrNr2r�r)rPrr
r�Dsr�rIT)rerdr\r]r
r2r-r<)r	r�rrr)rPr
rd?s
z TestHashMappingProtocol.test_popcCsR|j�}d|d<yx|D]}d||d<qWWntk
rBYnX|jd�dS)Nrz7changing dict size during iteration doesn't raise Error)r
�RuntimeErrorr2)r	rrKrrr
�test_mutatingiterationRs
z.TestHashMappingProtocol.test_mutatingiterationcs�|j�}|jt|�d�d|d<|jt|�d�|j�}||d<|jt|�d�Gdd�dt��G�fdd	�d	t�}|jd|�i�}|j�t|�dS)
Nz{}rrz{1: 2}z
{1: {...}}c@seZdZdS)z.TestHashMappingProtocol.test_repr.<locals>.ExcN)rLrMrNrrrr
rPfsrPcseZdZ�fdd�ZdS)z2TestHashMappingProtocol.test_repr.<locals>.BadReprcs
���dS)Nr)r	)rPrr
�__repr__isz;TestHashMappingProtocol.test_repr.<locals>.BadRepr.__repr__N)rLrMrNr�r)rPrr
�BadReprhsr�)r
r+r�r\r]rr-)r	rr�r)rPr
�	test_repr]sz!TestHashMappingProtocol.test_reprcCsH|j�}x,ttj�d�D]}|}|j�}||d<qW|jtt|�dS)Nrmr)r
r��sys�getrecursionlimitr-�RecursionErrorr�)r	rrKZd0rrr
�test_repr_deeposz&TestHashMappingProtocol.test_repr_deepcs�|j|j�|j��|j|jddi�|jddi��Gdd�dt��G�fdd�dt��|j��di��|jddi��|j��fdd��|j���fd	d��dS)
Nrrc@seZdZdS)z,TestHashMappingProtocol.test_eq.<locals>.ExcN)rLrMrNrrrr
rP|srPcs eZdZ�fdd�Zdd�ZdS)z/TestHashMappingProtocol.test_eq.<locals>.BadCmpcs
���dS)Nr)r	r)rPrr
r�sz6TestHashMappingProtocol.test_eq.<locals>.BadCmp.__eq__cSsdS)Nrr)r	rrr
r��sz8TestHashMappingProtocol.test_eq.<locals>.BadCmp.__hash__N)rLrMrNr�r�r)rPrr
�BadCmp~sr�cs
��dkS)Nrrr)r�rr
r �sz1TestHashMappingProtocol.test_eq.<locals>.<lambda>cs��kS)Nrr)�d1�d2rr
r �s)r+r
rr\r]r-)r	r)r�rPr�r�r
�test_eqwszTestHashMappingProtocol.test_eqcs`tj|�Gdd�dt��G�fdd�dt�}|j�}|�}d||<d|_|j�|j|g�dS)Nc@seZdZdS)z4TestHashMappingProtocol.test_setdefault.<locals>.ExcN)rLrMrNrrrr
rP�srPcseZdZdZ�fdd�ZdS)z8TestHashMappingProtocol.test_setdefault.<locals>.BadHashFcs|jr���ndSdS)NrI)r2)r	)rPrr
r��szATestHashMappingProtocol.test_setdefault.<locals>.BadHash.__hash__N)rLrMrNr2r�r)rPrr
r��sr�rIT)rerar\r]r
r2r-r;)r	r�rrr)rPr
ra�s
z'TestHashMappingProtocol.test_setdefaultN)rLrMrNrHr�rdr�r�r�r�rarrrr
r�s	r�)rrtr�rrrer�rrrr
�<module>s,h