Your IP : 216.73.216.60


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



��Yfh�@sddlZddlZddlZddlZddlmZmZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZmZejdddg�Zejdddg�Zejd	d
��ZGdd�d�ZGd
d�dee	j�Ze	jed�Gdd�dee	j��ZGdd�de�ZGdd�de�ZGdd�dej�Ze	jed�Gdd�dej��ZGdd�dej�Ze	jed�Gdd�dej��Z e!dkre	j"�dS)�N)�	randrange�shuffle)�MutableMapping)�
mapping_tests�support�collectionsZblocked�_collectionsZfreshccs8tj|}|tj|<z	dVWd|tj|<XdS)N)�sys�modules)�nameZreplacementZoriginal_module�r�;/opt/alt/python35/lib64/python3.5/test/test_ordered_dict.py�replaced_modules


	rc@seZdZdd�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,dUS)V�OrderedDictTestscCs�|j}|jt��|ddgd�WdQRXdddddg}|jt|t|��j��|�|jt|t|��j��|�|jt||�j��|�|jt|ddddgddd	d
�j��|�|jt|dd
�j��d g�|jt|dd
�j��d!g�|jt|d
�|jt|ff�|jt|j�|d"d#d$d%d&g�}|jd'd(gdddd�|jt|j��d)d*d+d,d-d.d/g�dS)0N�a��b��c��d��e��	�self�*�other�,�7�f��g�)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)r r!)rr)rr)rr)rr)rr)r r!)r"r#)	�OrderedDict�assertRaises�	TypeError�assertEqual�sorted�dict�items�list�__init__)rr$�pairsrrrr
�	test_inits$	(("((zOrderedDictTests.test_initcCs|j}|jt��|�jddgd�WdQRXdddddg}|�}|jt|��|jt|j��|�|�}|jt|��|jt|j��|�|�}|j|�|jt|j��|�|�}|jd d!d"d#gddd	d
�|jt|j��|�|�}|jdd
�|jt|j��d$g�|�}|jdi�|jt|j��difg�|�}|jdd
dddddd�|jtt|j���d%d&d'd(g�|d)d*d+d,d-g�}|jd.d/gdddd�|jt|j��d0d1d2d3d4d5d6g�|jt|�jd�|jt|�jff�|jt|j�|jt|�jd�|jt|�jff�|jt|j�dS)7Nrrrrrrrrrrrr�r�red�bluer!r#�rrr r"r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr/)r1r!)rr#)r0r)rr2)rr)rr)rr)rr)rr)rr)r r!)rr)rr)rr)rr)rr)r r!)r"r#)	r$r%r&�updater)r'r(r*r+)rr$r-�odrrrr
�test_update6sH	 			
	%		%	"zOrderedDictTests.test_updatecCs�|j}|jd�}|jt|j��dd�dD��|jddd�}|jt|j��dd�dD��|jddd�}|jt|j��dd�dD��dS)N�abccSsg|]}|df�qS)Nr)�.0rrrr
�
<listcomp>gs	z2OrderedDictTests.test_fromkeys.<locals>.<listcomp>�valuecSsg|]}|df�qS)Nr)r7rrrr
r8is	rcSsg|]}|df�qS)rr)r7rrrr
r8ks	)r$�fromkeysr'r+r*)rr$r4rrr
�
test_fromkeysds	))zOrderedDictTests.test_fromkeyscCs6|j}|j|�t�|jt|t��dS)N)r$ZassertIsInstancer�
assertTrue�
issubclass)rr$rrr
�test_abcms	zOrderedDictTests.test_abccCsw|j}ddddddg}t|�||�}|jt|�t|��|j�|jt|�d
�dS)Nrrrrrrrrrrr r!r)rr)rr)rr)rr)rr)r r!)r$rr'�len�clear)rr$r-r4rrr
�
test_clearrs	

zOrderedDictTests.test_clearc
Cs�|j}d
dddddg}||�}|d=|jd|�|jt��|d=WdQRX|jt|j��|dd�|dd��dS)Nrrrrrrrrrrr r!)rr)rr)rr)rr)rr)r r!)r$�assertNotInr%�KeyErrorr'r+r*)rr$r-r4rrr
�test_delitem{s	zOrderedDictTests.test_delitemc	Csj|j}|dddddg�}d|d<d|d
<|jt|j��ddddddg�dS)Nrrrrrrrrrr�
�r )rr)rr)rr)rr)rr)rr)rr)rrE)rr)rr)r rF)r$r'r+r*)rr$r4rrr
�test_setitem�s	

zOrderedDictTests.test_setitemcCs�|j}ddddddg}t|�||�}|jt|�d
d�|D��|jt|j��dd�|D��|jt|j��dd�|D��|jt|j��|�|jtt|��dd�t|�D��|jtt|j���dd�t|�D��|jtt|j���dd�t|�D��|jtt|j���tt|���dS)Nrrrrrrrrrrr r!cSsg|]}|d�qS)rr)r7�trrr
r8�s	z3OrderedDictTests.test_iterators.<locals>.<listcomp>cSsg|]}|d�qS)rr)r7rHrrr
r8�s	cSsg|]}|d�qS)rr)r7rHrrr
r8�s	cSsg|]}|d�qS)rr)r7rHrrr
r8�s	cSsg|]}|d�qS)rr)r7rHrrr
r8�s	cSsg|]}|d�qS)rr)r7rHrrr
r8�s	)rr)rr)rr)rr)rr)r r!)r$rr'r+�keys�valuesr*�reversed)rr$r-r4rrr
�test_iterators�s	
#))zOrderedDictTests.test_iteratorsc	Cs\|j}|jd�}t|�}t|�}||=|jt��t|�WdQRXdS)Nr6)r$r:�iter�nextr%�	Exception)rr$r4�it�keyrrr
�%test_detect_deletion_during_iteration�s	z6OrderedDictTests.test_detect_deletion_during_iterationc
Cs|j}|jt��|ddgd�WdQRXdddddg}||�}|jt|�dd�|D��|jt|j��d
d�|D��|jt|j��dd�|D��|jt|j��|�|jtt|��tdd�t|�D���dS)NrrrrrrrrrrcSsg|]}|d�qS)rr)r7rHrrr
r8�s	z:OrderedDictTests.test_sorted_iterators.<locals>.<listcomp>cSsg|]}|d�qS)rr)r7rHrrr
r8�s	cSsg|]}|d�qS)rr)r7rHrrr
r8�s	cSsg|]}|d�qS)rr)r7rHrrr
r8�s	)rr)rr)rr)rr)rr)rr)rr)	r$r%r&r'r(rIrJr*rK)rr$r-r4rrr
�test_sorted_iterators�s	#))z&OrderedDictTests.test_sorted_iteratorscCs|j}|�}g}|jt|�|�|jt|j��|�|jt|j��|�|jt|j��|�|jtt|��|�|jtt|j���|�|jtt|j���|�|jtt|j���|�dS)N)r$r'r+rIrJr*rK)rr$r4�emptyrrr
�test_iterators_empty�s		""z%OrderedDictTests.test_iterators_emptyc
Cs�|j}ddddddg}t|�||�}x&|r_|j|j�|j��q:W|jt��|j�WdQRX|jt|�d
�dS)Nrrrrrrrrrrr r!r)rr)rr)rr)rr)rr)r r!)r$rr'�popitem�popr%rCr?)rr$r-r4rrr
�test_popitem�s	
	 zOrderedDictTests.test_popitemcCs�|j}dd�td�D�}||�}x!td�D]}|jd�q;W|jd�|jdd�|jt|�d�dS)NcSsg|]}||f�qSrr)r7�irrr
r8�s	z6OrderedDictTests.test_popitem_last.<locals>.<listcomp>�r2T�lastrF)r$�rangerVr'r?)rr$r-�objrYrrr
�test_popitem_last�s	
z"OrderedDictTests.test_popitem_lastcCs�|j}ddddddg}t|�||�}t|�x5|rx|j�\}}|j|j|�|�qDW|jt��|jd
�WdQRX|jt|�d�|j|j|d�d�Gdd�d|�}|dd�}|j|jdd
�d
�|j|jdd�d�|j|jdd�d�|j|jddd�d�|jt��|jd�WdQRXdS)Nrrrrrrrrrrr r!Zxyzri90c@seZdZdd�ZdS)z*OrderedDictTests.test_pop.<locals>.MissingcSsdS)Nrr)rrQrrr
�__missing__�sz6OrderedDictTests.test_pop.<locals>.Missing.__missing__N)�__name__�
__module__�__qualname__r_rrrr
�Missing�src�default)rr)rr)rr)rr)rr)r r!)r$rrWr'r%rCr?)rr$r-r4�k�vrc�mrrr
�test_pop�s(	

	zOrderedDictTests.test_popcCs�|j}d
dddddg}t|�||�}||�}|j||�|dd�|dd�}||�}|j||�|j|t|��|jt|�|�|j|||dd���dS)Nrrrrrrrrrrr r!)rr)rr)rr)rr)rr)r r!���)r$rr'ZassertNotEqualr))rr$r-Zod1Zod2rrr
�
test_equality�s	
zOrderedDictTests.test_equalitycs3�j}ddddddg}||����fd
d�}|�j��|tj���|tj���td�j��\xTttjd�D]?}�jd|��$|tj	tj
�|���WdQRXq�WWdQRX|tt����|�}|j
��||�||���dS)Nrrrrrrrrrrr r!cs�d|�f}�j|�|��j|���jt|j��t�j����jt|�t����jt|�t���dS)Nz
copy: %s
od: %s)�assertIsNotr'r+r*r?�type)�dup�msg)r4rrr
�check	s(z,OrderedDictTests.test_copying.<locals>.checkr�proto)rr)rr)rr)rr)rr)r r!)r$�copy�deepcopyr�moduler\�pickle�HIGHEST_PROTOCOLZsubTest�loads�dumps�eval�reprr3)rr$r-rorpZupdate_testr)r4rr
�test_copyings 	1	

zOrderedDictTests.test_copyingcCs[|j}ddddddg}||�}|jtd
d�|j�dD���dS)Nrrrrrrrrrrr r!css!|]}t|�tkVqdS)N)rlr+)r7Zpairrrr
�	<genexpr>&sz5OrderedDictTests.test_yaml_linkage.<locals>.<genexpr>)rr)rr)rr)rr)rr)r r!)r$r<�all�
__reduce__)rr$r-r4rrr
�test_yaml_linkages	z"OrderedDictTests.test_yaml_linkagecCsh|j}ddddddg}||�}|j|j�d�d
|_|j|j�d�dS)Nrrrrrrrrrrr r!rE)rr)rr)rr)rr)rr)r r!)r$�assertIsNoner}�xZassertIsNotNone)rr$r-r4rrr
�test_reduce_not_too_fat(s		z(OrderedDictTests.test_reduce_not_too_fatcCs�|j}|�}||d<td|j���x|tdtjd�D]d}tjtj||��}|j||�|j	t
|j��dg�|j|d|�qFWWdQRXdS)Nrrri)
r$rrsr\rtrurvrwrkr'r+rIZassertIs)rr$r4rprmrrr
�test_pickle_recursive1s		
z&OrderedDictTests.test_pickle_recursivecCsv|j}|ddddddg�}|jt|�d
�|jtt|��|�|jt|��d�dS)Nrrrrrrrrrrr r!zIOrderedDict([('c', 1), ('b', 2), ('a', 3), ('d', 4), ('e', 5), ('f', 6)])z
OrderedDict())rr)rr)rr)rr)rr)r r!)r$r'ryrx)rr$r4rrr
�	test_repr>s	zOrderedDictTests.test_reprcCs<|j}|jd�}||d<|jt|�d�dS)Nr6r�z@OrderedDict([('a', None), ('b', None), ('c', None), ('x', ...)]))r$r:r'ry)rr$r4rrr
�test_repr_recursiveFs
	
z$OrderedDictTests.test_repr_recursivecCs|j}ddddddg}t|�||�}t|j��}|j|jdd
�d�|jt|j��|�|j|jdd
�d
�|jt|j��dd�|j|jddd�d�Gdd�d|�}|j|�jd
d�d�dS)Nrrrrrrrrrrr r!rEr�r"rdrc@seZdZdd�ZdS)z1OrderedDictTests.test_setdefault.<locals>.MissingcSsdS)Nrr)rrQrrr
r_^sz=OrderedDictTests.test_setdefault.<locals>.Missing.__missing__N)r`rarbr_rrrr
rc]src)rr)rr)rr)rr)rr)r r!ri)r�rE)r$rr+r*r'�
setdefault)rr$r-r4Z
pair_orderrcrrr
�test_setdefaultNs	
 z OrderedDictTests.test_setdefaultcCs||j}|�}d|d<d|d<|d=|jt|j��dg�d|d<|jt|j��ddg�dS)Nrrrr)rr)rr)rr)r$r'r+r*)rr$r4rrr
�
test_reinsertbs		


zOrderedDictTests.test_reinsertcCs\|j}|jd�}|jt|�td��|jd�|jt|�td��|jdd�|jt|�td��|jdd�|jt|�td��|jd�|jt|�td��|jddd	�|jt|�td
��|jt��|jd�WdQRX|jt��|jdd�WdQRXdS)N�abcderZabdecrZcabderrr[FZbcader�)r$r:r'r+�move_to_endr%rC)rr$r4rrr
�test_move_to_endns"	

z!OrderedDictTests.test_move_to_endcCs�|j}|jd�}|jddd�|jt|�td��|jddd�|jt|�td��|jd�}|jd�|jt|�td��|jd�|jt|�td	��dS)
Nr6rr[FZcabrZacbZbcaZbac)r$r:r�r'r+)rr$r4rrr
�test_move_to_end_issue25406�s	

z,OrderedDictTests.test_move_to_end_issue25406cCsJ|j}tdd�}||�}|jtj|�tj|��dS)Nrr)r$r)Z
assertGreaterr	�	getsizeof)rr$rr4rrr
�test_sizeof�s	zOrderedDictTests.test_sizeofcCsT|j}Gdd�d|�}d	d
dg}|jt||�j��|�dS)Nc@seZdZdd�ZdS)z3OrderedDictTests.test_override_update.<locals>.MyODc_s
t��dS)N)rO)r�args�kwdsrrr
r3�sz:OrderedDictTests.test_override_update.<locals>.MyOD.updateN)r`rarbr3rrrr
�MyOD�sr�rrrrrr)rr)rr)rr)r$r'r+r*)rr$r�r*rrr
�test_override_update�s	z%OrderedDictTests.test_override_updatecCsL|j}d}x)td�D]}|d|fg�}qW~tj�dS)Ni�)r$r\r�
gc_collect)rr$r]�_rrr
�test_highly_nested�s	z#OrderedDictTests.test_highly_nestedcs�|j}g�G�fdd�d|�}d}x2td�D]$}|d|fg�}||_q>W~tj�|j�tttd����dS)Ncs"eZdZ�fdd�ZdS)z:OrderedDictTests.test_highly_nested_subclass.<locals>.MyODcs�j|j�dS)N)�appendrY)r)�deletedrr
�__del__�szBOrderedDictTests.test_highly_nested_subclass.<locals>.MyOD.__del__N)r`rarbr�r)r�rr
r��sr��d)r$r\rYrr�r'r+rK)rr$r�r]rYr)r�r
�test_highly_nested_subclass�s	

z,OrderedDictTests.test_highly_nested_subclassc	Cs�|j}Gdd�d�}dd�}d}||�}||�}|||��}|�}d||<d||<d||<d|d<||=||=|jt|j��|dfdg�dS)	Nc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z9OrderedDictTests.test_delitem_hash_collision.<locals>.KeycSs"||_tt|��|_dS)N)�_hash�str�idr9)r�hashrrr
r,�s	zBOrderedDictTests.test_delitem_hash_collision.<locals>.Key.__init__cSs|jS)N)r�)rrrr
�__hash__�szBOrderedDictTests.test_delitem_hash_collision.<locals>.Key.__hash__cSs1y|j|jkSWntk
r,dSYnXdS)NF)r9�AttributeError)rrrrr
�__eq__�s
z@OrderedDictTests.test_delitem_hash_collision.<locals>.Key.__eq__cSs|jS)N)r9)rrrr
�__repr__�szBOrderedDictTests.test_delitem_hash_collision.<locals>.Key.__repr__N)r`rarbr,r�r�r�rrrr
�Key�sr�cSs(d}||d@}|d>||dS)Nr2rrr)r�ZMINSIZErYrrr
�
blocking_hash�szCOrderedDictTests.test_delitem_hash_collision.<locals>.blocking_hashr.�after)r�.)r$r'r+r*)	rr$r�r�Z	COLLIDINGrQZ	collidingZblockingr4rrr
�test_delitem_hash_collision�s		



z,OrderedDictTests.test_delitem_hash_collisioncCs�|j}Gdd�d�}|�}x'td�D]}|�}|||<q2W|jt��t|j��WdQRX|jt��t|j��WdQRX|jt��t|�WdQRX|jt��|j�WdQRXdS)Nc@seZdZdd�ZdS)z-OrderedDictTests.test_issue24347.<locals>.KeycSs
td�S)Ni��)r)rrrr
r��sz6OrderedDictTests.test_issue24347.<locals>.Key.__hash__N)r`rarbr�rrrr
r��sr�r�)	r$r\r%rCr+rJr*ryrq)rr$r�r4rYrQrrr
�test_issue24347�s			z OrderedDictTests.test_issue24347cCs@|j}Gdd�d�}|�}d||�<|j�dS)Nc@seZdZdd�ZdS)z-OrderedDictTests.test_issue24348.<locals>.KeycSsdS)Nrr)rrrr
r��sz6OrderedDictTests.test_issue24348.<locals>.Key.__hash__N)r`rarbr�rrrr
r��sr�r)r$rV)rr$r�r4rrr
�test_issue24348�s
		
z OrderedDictTests.test_issue24348cCsn|j}|�}xUdD]M}xDdD]<}t|�dkrN|jdd�||}|||<q&WqWdS)a�
        dict resizes after a certain number of insertion operations,
        whether or not there were deletions that freed up slots in the
        hash table.  During fast node lookup, OrderedDict must correctly
        respond to all resizes, even if the current "size" is the same
        as the old one.  We verify that here by forcing a dict resize
        on a sparse odict and then perform an operation that should
        trigger an odict resize (e.g. popitem).  One key aspect here is
        that we will keep the size of the odict the same at each popitem
        call.  This verifies that we handled the dict resize properly.
        Z0123456789ABCDEFrr[FN)r$r?rV)rr$r4Zc0Zc1rQrrr
�test_issue24667s		


z OrderedDictTests.test_issue24667cCs?|j}|�}tj|dd�|jdt|��dS)N�spamr�NULL)r$r)�__setitem__rBry)rr$r4rrr
�test_dict_setitems		z"OrderedDictTests.test_dict_setitemc	Cs[|j}|�}d|d<d|d<tj|d�|jt��t|�WdQRXdS)Nrr�r�ham)r$r)�__delitem__r%rCry)rr$r4rrr
�test_dict_delitems		

z"OrderedDictTests.test_dict_delitemcCsM|j}|�}d|d<d|d<tj|�|jdt|��dS)Nrr�rr�r�)r$r)r@rBry)rr$r4rrr
�test_dict_clear(s		


z OrderedDictTests.test_dict_clearc	Cs[|j}|�}d|d<d|d<tj|d�|jt��t|�WdQRXdS)Nrr�rr�)r$r)rWr%rCry)rr$r4rrr
�
test_dict_pop0s		

zOrderedDictTests.test_dict_popc	CsX|j}|�}d|d<d|d<tj|�|jt��t|�WdQRXdS)Nrr�rr�)r$r)rVr%rCry)rr$r4rrr
�test_dict_popitem9s		


z"OrderedDictTests.test_dict_popitemcCs?|j}|�}tj|dd�|jdt|��dS)Nr�rr�)r$r)r�rBry)rr$r4rrr
�test_dict_setdefaultBs		z%OrderedDictTests.test_dict_setdefaultcCs?|j}|�}tj|dg�|jdt|��dS)Nr�rr�)r�r)r$r)r3rBry)rr$r4rrr
�test_dict_updateHs		z!OrderedDictTests.test_dict_updatecs_|j�G�fdd�d�}d|j|<tj|�}~tj�|j|��dS)NcseZdZ��ZdS)z/OrderedDictTests.test_reference_loop.<locals>.AN)r`rarbr4r)r$rr
�AQsr�)r$r4�weakref�ref�gcZcollectr)rr��rr)r$r
�test_reference_loopNs	

z$OrderedDictTests.test_reference_loopcCsntj|t|j�tj|dd�|j�tj|dd�|j�tj|dd�|j�dS)NcSst|j��S)N)rMrI)rrrr
�<lambda>[sz<OrderedDictTests.test_free_after_iterating.<locals>.<lambda>cSst|j��S)N)rMrJ)rrrr
r�\scSst|j��S)N)rMr*)rrrr
r�]s)rZcheck_free_after_iteratingrMr$)rrrr
�test_free_after_iteratingYsz*OrderedDictTests.test_free_after_iteratingN)-r`rarbr.r5r;r>rArDrGrLrRrSrUrXr^rhrjrzr~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r
rsT.		



	
		'			rc@seZdZeZejZdS)�PurePythonOrderedDictTestsN)r`rarb�py_collrsr$rrrr
r�`sr�z0requires the C version of the collections modulec@sIeZdZeZejZejZejdd��Z	dd�Z
dS)�CPythonOrderedDictTestsc
Cs�|j}tj}tj}|j}|d�|d�}|d�|d�}|d�}|�}|||d|�d|_|||d|�|jdd	�td
�D��|||d|d
|�|jdd	�td
d�D��|||d
|d|�||j	�|d��||j
�|d��||j�|d��|d�}	|t|�|	�|t|j	��|	�|t|j
��|	�|t|j��|	�dS)NZn2PZ3PnPn2PZ2nPn�PZPn2Pr2rcSsg|]}||f�qSrr)r7rYrrr
r8|s	z=CPythonOrderedDictTests.test_sizeof_exact.<locals>.<listcomp>rcSsg|]}||f�qSrr)r7rYrrr
r8~s	rE�ZiP2n2PZ
n2P3PnPn2P)
r$�struct�calcsizerZcalcobjsize�check_sizeofr�r3r\rIr*rJrM)
rr$r��sizeroZ	basicsizeZ	entrysizeZnodesizer4Zitersizerrr
�test_sizeof_exactms.						 #z)CPythonOrderedDictTests.test_sizeof_exactcCs|j}|jd�}|jt|�td��|jt��?x7t|�D])\}}|j|�|j|d�qQWWdQRX|jt�� x|D]}d|d<q�WWdQRX|jt��x|D]
}|d=q�WWdQRX|jt|�td��dS)Nr�rr rZbdeaf)	r$r:r'r+r%�RuntimeError�	enumerater�Z
assertLess)rr$r4rYrerrr
� test_key_change_during_iteration�s	


z8CPythonOrderedDictTests.test_key_change_during_iterationN)r`rarb�c_collrsr$rr�Zcpython_onlyr�r�rrrr
r�fs
		r�c@s/eZdZeZGdd�dej�ZdS)�"PurePythonOrderedDictSubclassTestsc@seZdZdS)z.PurePythonOrderedDictSubclassTests.OrderedDictN)r`rarbrrrr
r$�sr$N)r`rarbr�rsr$rrrr
r��sr�c@s/eZdZeZGdd�dej�ZdS)�CPythonOrderedDictSubclassTestsc@seZdZdS)z+CPythonOrderedDictSubclassTests.OrderedDictN)r`rarbrrrr
r$�sr$N)r`rarbr�rsr$rrrr
r��sr�c@s.eZdZedd��Zdd�ZdS)�PurePythonGeneralMappingTestscCstj|_dS)N)r�r$�	type2test)�clsrrr
�
setUpClass�sz(PurePythonGeneralMappingTests.setUpClasscCs#|j�}|jt|j�dS)N)�_empty_mappingr%rCrV)rrrrr
rX�sz*PurePythonGeneralMappingTests.test_popitemN)r`rarb�classmethodr�rXrrrr
r��sr�c@s.eZdZedd��Zdd�ZdS)�CPythonGeneralMappingTestscCstj|_dS)N)r�r$r�)r�rrr
r��sz%CPythonGeneralMappingTests.setUpClasscCs#|j�}|jt|j�dS)N)r�r%rCrV)rrrrr
rX�sz'CPythonGeneralMappingTests.test_popitemN)r`rarbr�r�rXrrrr
r��sr�c@s.eZdZedd��Zdd�ZdS)�PurePythonSubclassMappingTestscCs&Gdd�dtj�}||_dS)Nc@seZdZdS)z@PurePythonSubclassMappingTests.setUpClass.<locals>.MyOrderedDictN)r`rarbrrrr
�
MyOrderedDict�sr�)r�r$r�)r�r�rrr
r��sz)PurePythonSubclassMappingTests.setUpClasscCs#|j�}|jt|j�dS)N)r�r%rCrV)rrrrr
rX�sz+PurePythonSubclassMappingTests.test_popitemN)r`rarbr�r�rXrrrr
r��sr�c@s.eZdZedd��Zdd�ZdS)�CPythonSubclassMappingTestscCs&Gdd�dtj�}||_dS)Nc@seZdZdS)z=CPythonSubclassMappingTests.setUpClass.<locals>.MyOrderedDictN)r`rarbrrrr
r��sr�)r�r$r�)r�r�rrr
r��sz&CPythonSubclassMappingTests.setUpClasscCs#|j�}|jt|j�dS)N)r�r%rCrV)rrrrr
rX�sz(CPythonSubclassMappingTests.test_popitemN)r`rarbr�r�rXrrrr
r��sr��__main__)#�
contextlibrqr�rtZrandomrrr�r	Zunittestr��collections.abcrZtestrrZimport_fresh_moduler�r��contextmanagerrrZTestCaser�Z
skipUnlessr�r�r�ZBasicTestMappingProtocolr�r�r�r�r`�mainrrrr
�<module>s:
��F6