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_collections.cpython-34.pyc

�
g f���@s�dZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
mZddlZddlmZmZmZmZddlmZddlmZddlmZmZmZdd	lmZmZmZdd
lmZmZddlmZm Z m!Z!m"Z"ddlm#Z#m$Z$dd
lm%Z%Gdd�dej&�Z'edd�Z(Gdd�dej&�Z)Gdd�dej&�Z*Gdd�de*�Z+Gdd�de�Z,Gdd�de*�Z-Gdd�de�Z.Gdd�de�Z/Gd d!�d!ej&�Z0dd"d#�Z1e2d$kr�e1d%d&�ndS)'zUnit tests for collections.py.�N)�choice�	randrange)�support)�
namedtuple�Counter�OrderedDict�_count_elements)�UserDict)�ChainMap)�Hashable�Iterable�Iterator)�Sized�	Container�Callable)�Set�
MutableSet)�Mapping�MutableMapping�KeysView�	ItemsView)�Sequence�MutableSequence)�
ByteStringc@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestChainMapc	Cs
t�}d|d<d|d<|j�}d|d<d|d<|j|jidd6dd6idd6dd6g�|j|j�tdddddd�j��|jt|�d�xd	D]}|j||�q�WxQtddddddd
d�j�D](\}}|j|j|d�|�qW|d=|j|jidd6idd6dd6g�|j|j�tdddddd�j��|jt|�d�xd	D]}|j||�q�WxQtddddddd
d�j�D](\}}|j|j|d�|�q�W|jt	|�t
|�jdt
|�jd
g�x�|j�tj|�fD]�}|j||�|j|j|j�|j
||�|j
|jd|jd�xGt|jdd�|jdd��D]\}}|j||�q�WqqWx�ttjd�D]�}	tjtj||	��}|j||�|j|j|j�|j
||�x6t|j|j�D]\}}|j
|||�q�Wq-Wx�tj|�tt	|��gD]u}|j||�|j|j|j�|j
||�x6t|j|j�D]\}}|j
|||�q5Wq�W|j�}
d|
d<|j|
jidd6idd6idd6dd6g�|j|
jjidd6idd6dd6g�|j|
dd�|j|
jdd�dS)N��a��b���c��abc�z�dz({'c': 30}, {'a': 1, 'b': 2})z({'c': 30}, {'b': 2, 'a': 1})r�)r
�	new_child�assertEqual�maps�items�dict�len�assertIn�get�repr�type�__name__�copy�assertIsNot�zip�assertIs�range�pickle�HIGHEST_PROTOCOL�loads�dumps�deepcopy�eval�parents)�selfr!�d�key�k�v�eZm1Zm2�proto�f�rF�:/opt/alt/python34/lib64/python3.4/test/test_collections.py�test_basics!sf	



51
4 .1
4 "6""
81zTestChainMap.test_basicscCsG|jt�jig�|jtidd6�jidd6g�dS)Nrr)r(r
r))r>rFrFrG�test_contructor]szTestChainMap.test_contructorcCsd|jt��|jtii��|jtidd6i��|jtiidd6��dS)Nrr)�assertFalser
�
assertTrue)r>rFrFrG�	test_boolaszTestChainMap.test_boolc	Cs�Gdd�dt�}|tdddd�tdddd	��}xItdddddd	d
d�j�D] \}}|j|||�qkWxQtdddddd	d
d�j�D](\}}|j|j|d�|�q�WxKtdd
dd
dd
d
d�j�D]"\}}|j||k|�qW|j|jdd�d|�|j|jdd�d�|j|j�d�|jt��|j�WdQXdS)Nc@seZdZdd�ZdS)z2TestChainMap.test_missing.<locals>.DefaultChainMapcSsdS)Ni�rF)r>r@rFrFrG�__missing__isz>TestChainMap.test_missing.<locals>.DefaultChainMap.__missing__N)r1�
__module__�__qualname__rMrFrFrFrG�DefaultChainMaphsrPrrrrrr!r r?i��MTFi�i�)rr)	r
r+r*r(r.�pop�popitem�assertRaises�KeyError)r>rPr?rArBrFrFrG�test_missinggs-44 4zTestChainMap.test_missingc	Cs�ttdddd�tdddd��}|jt|�tdddddd��|jt|j��tdddddd��dS)Nrrrrrr!r )r
r+r(r*)r>r?rFrFrG�test_dict_coercionxs-+zTestChainMap.test_dict_coercionc	Csst�}d|d<d|d<idd6dd6}|j|�}|j|jidd6dd6idd6dd6g�|j||jd�Gd	d
�d
t�}t�}d|d<d|d<|dddd�}|j|�}|j||jd�xdD]}|j||�qWxQtddddd
ddd�j�D](\}}|j|j|d�|�qCWdS)z#Tests for changes for issue #16613.rrrrrr r!rc@s(eZdZdd�Zdd�ZdS)z.TestChainMap.test_new_child.<locals>.lowerdictcSs.t|t�r|j�}ntj||�S)N)�
isinstance�str�lowerr+�__getitem__)r>r@rFrFrGr[�sz:TestChainMap.test_new_child.<locals>.lowerdict.__getitem__cSs.t|t�r|j�}ntj||�S)N)rXrYrZr+�__contains__)r>r@rFrFrGr\�sz;TestChainMap.test_new_child.<locals>.lowerdict.__contains__N)r1rNrOr[r\rFrFrFrG�	lowerdict�sr]r#�B�Cr$r%N)	r
r'r(r)r5r+r-r*r.)r>r!�mr?r]r@rArBrFrFrG�test_new_child}s$	

5
	


4zTestChainMap.test_new_childN)	r1rNrOrHrIrLrVrWrarFrFrFrGrs<r�TestNTzx y zc@s�eZdZdd�Zejejjdkd�dd��Z	dd�Z
d	d
�Zdd�Zd
d�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)�TestNamedTuplecCs�tdd�}|j|jd�|j|jf�|j|jt�|j|jtj�|j|jd�|jd|j	�|j
ttdd�|j
ttdd�|j
ttd	d�|j
ttd
d�|j
ttd
d�|j
ttd
d
�|j
ttd
d�|j
ttd
d�tdd�tdd�tdd�}|jdt
|j��tdd�}|jdt
|j��|j
t|jdg�|j
t|jdddg�dS)N�Pointzx y�x�yzclass Point(tuple)zabc%zefg ghi�classZ9abcr#zefg g%hiz	abc classz	8efg 9ghiz_efg ghizefg efg ghiZPoint0zx1 y2�_za b c�ntzthe quick brown foxzu'�the�quick���!)rerf)rjrk)rr(r1�	__slots__rNr[�tuple�_fieldsr-�_sourcerT�
ValueError�assertNotInr/�	TypeError�_make)r>rdrirFrFrG�test_factory�s.

zTestNamedTuple.test_factoryrz)Docstrings are omitted with -O2 and abovecCs&tdd�}|j|jd�dS)Nrdzx yzPoint(x, y))rr(�__doc__)r>rdrFrFrG�test_factory_doc_attr�sz$TestNamedTuple.test_factory_doc_attrc	CssxlddgddgddgddgddgddggD].\}}|jtd|dd�j|�q=WdS)N�efg�g%hi�_1r#rg�8efg�9ghi�_0�_efg�ghi�_2�reZNT�renameT)rzr{)rzr|)�abczclass)r�r|)r}r~)rr|)r�r�)r�r|)r�rzrzr�)r�rzr�r�)r�r�re)r�r|re)r(rrq)r>�specZrenamedrFrFrG�test_name_fixer�s					zTestNamedTuple.test_name_fixerc
Csdtdd�}|dd�}|j||dddd��|j||ddd��|j||dddd��|j||d��|j||tdddd���|jt|d�|jt|ddd	�|jttd
t��|jttdt��|jt|�d�|jd
t	|��|j||j
ddg��|j|jd�|j|jdd�d�|j|j
�tdddd��y|jdddd�Wntk
r�YnX|jd�tdd�}|dddd�}|jt|�d�tdd�}|dddd�}|jt|�d�dS)Nrdzx yrlrmrerfrrr"zPoint(XXX=1, y=2)z
Point(x=1)zPoint(x=11, y=22)�__weakref__�errorz%Did not detect an incorrect fieldnamezx, y)rlrm)rerf)rrm)rerf)rr(r+rTrur<�localsr/rt�dirrvrq�_replace�_asdictrsZ_fail)r>rd�prFrFrG�
test_instance�s8%%

zTestNamedTuple.test_instancecCs5tdd�}|dd�}|j|t�|j|d	�|jt|�d
�|jt|�ddg�|jt|�d�|jt|�d�|\}}|j|||f�|j|d|dfd�|jt|jd�|j|j	|�|j|j
|�|jttdt
��dS)Nrdzx yrlrmrrr"zp.z)rlrm)rlrm)rlrm)r�assertIsInstancerpr(�list�maxrT�
IndexErrorr[rerf�AttributeErrorr<r�)r>rdr�rerfrFrFrG�test_tupleness�szTestNamedTuple.test_tuplenessc
Cs�tdd�}|j|�f�|j|jg�f�|jt|��d�|j|�j�i�|j|�jf�tdd�}|j|d�d�|j|jdg�d�|j|d�jd�|jt|d��d�|j|d�j�idd6�|j|d�jdd�d�|j|d�jd�d	}tt	d
d�t
|�D���}t|�}td|�}|t
|��}|j|tt
|���|j|jt
|��tt
|���x3t
|�D]%\}}|jt||�|�qWt|�|j�}	tt|t
|���}
|j|	|
�|jt|ddf|ddfg��}tt
|��}d|d<d|d<|j|t|��|j|jt|��dS)N�Zeror�zZero()�Dotr?rzDot(d=1)���css1|]'}djdd�td�D��VqdS)r�cSsg|]}ttj��qSrF)r�stringZ
ascii_letters)�.0�jrFrFrG�
<listcomp>s	z;TestNamedTuple.test_odd_sizes.<locals>.<genexpr>.<listcomp>�
N)�joinr6)r��irFrFrG�	<genexpr>sz0TestNamedTuple.test_odd_sizes.<locals>.<genexpr>�Bigr&�*)r)r)r�)r?���r�)rr(rvr/r�rqr?r�r��setr6r,rp�	enumerate�getattrr+r4)
r>r�r��n�namesr�r�pos�namer?Z
d_expectedZb2Zb2_expectedrFrFrG�test_odd_sizessD#"+
/

zTestNamedTuple.test_odd_sizescCs�tdddddd�}x�tfD]�}t|d�}t|d�}xrtd|jd	�D]Z}||||��}|j||�|j|j|j�|jd
|||��q`Wq%WdS)Nrer�rfrr$r r9r:rsOrderedDict���)rbr7r�r6r8r(rqrt)r>r��moduler9r:Zprotocol�qrFrFrG�test_pickle3szTestNamedTuple.test_picklecCsntdddddd�}xLtjtjfD]8}||�}|j||�|j|j|j�q.WdS)Nrer�rfrr$r )rbr2r;r(rq)r>r�Zcopierr�rFrFrG�	test_copy>s
zTestNamedTuple.test_copycCstdd�}|ddddd�}|j|d�|jdd	d
ddd
dddd�}|j|d�tj��}tdddd�}WdQXttjd|j���}|tt	j
�8}td|�}ttt
|���}||�}|j||�|tt|j|���}|j||�|j|�}|j||�t|�|j|j�tt|j|���|j|�}tdd�|D��}|jtt|j|���}|j||�|j|jt|��|j|j�|�dS)N�Tz"itemgetter property self cls tuplerrr"�r&�
itemgetterr��propertyrr>r �cls�(rp�2re�verboseTz	[A-Za-z]+css|]}|dVqdS)r�NrF)r�rBrFrFrGr�csz5TestNamedTuple.test_name_conflicts.<locals>.<genexpr>)rrr"r�r&)r�rr r�r�)rr(r�r�captured_stdoutr��re�findall�getvalue�keyword�kwlistrpr6r,r+r4rqrvr/r��__getnewargs__)r>r��tZnewt�template�words�valuesZ	newvaluesrFrFrG�test_name_conflictsEs2*
(!z"TestNamedTuple.test_name_conflictscCs|tj��}tdddd�}WdQX|jt|d��d�Gdd�d|�}|jt|d��d	�dS)
N�Arer�TrzA(x=1)c@seZdZdS)z#TestNamedTuple.test_repr.<locals>.BN)r1rNrOrFrFrFrGr^psr^zB(x=1))rr�rr(r/)r>r�r�r^rFrFrG�	test_reprks
zTestNamedTuple.test_reprcCs�tdd�}t�jdd�t|jt��|jdt��tddd�}|j|j|j	|j
fd	�|jtjd
�t�jdd�dS)N�NTColorzred green bluer�rr �red�green�blue)r�rr )zredzgreenzblue)r�globalsrR�execrrr-r�r(r�r�r�rq)r>Ztmpr!rFrFrG�test_sourcets"zTestNamedTuple.test_sourcecCs}Gdd�dtdddg��}|dd�}|j|j�td
dg��d|_|j|jidd	6�dS)Nc@seZdZdS)zBTestNamedTuple.test_namedtuple_subclass_issue_24931.<locals>.PointN)r1rNrOrFrFrFrGrd�srdZ_Pointrerfr"r�r&�w)rer")rfr�)rr(r�rr��__dict__)r>rdrrFrFrG�$test_namedtuple_subclass_issue_24931�s
%"	z3TestNamedTuple.test_namedtuple_subclass_issue_24931N)r1rNrOrw�unittestZskipIf�sys�flags�optimizeryr�r�r�r�r�r�r�r�r�r�rFrFrFrGrc�s$'&	rcc@s4eZdZdd�Zdd�Zdd�ZdS)�ABCTestCasecGs�tj|dd��}td|f|�}|�xI|D]A}|j�}||=td|f|�}|jt||�q;WdS)NcWsdS)NrrF)�s�argsrFrFrG�<lambda>�sz7ABCTestCase.validate_abstract_methods.<locals>.<lambda>r_)r+�fromkeysr0r2rTru)r>r#r�Zmethodstubsr_r�ZstubsrFrFrG�validate_abstract_methods�s
z%ABCTestCase.validate_abstract_methodscCs�dd�}tdtfidd6�}t|||�|j|�|�|jt||��tdtfidd6�}|j|�|�|jt||��dS)NcWsdS)NrrF)r�r�rFrFrGr��sz1ABCTestCase.validate_isinstance.<locals>.<lambda>r_�__hash__)r0�object�setattrr�rK�
issubclass�assertNotIsInstancerJ)r>r#r�Zstubr_rFrFrG�validate_isinstance�szABCTestCase.validate_isinstancec	Cs�ddddddddd	g	}i}x/|D]'}d
|d
}tt|�||<q.WGdd�d�}xh|j�D]Z\}}t||�s�qyn|�}|||�|j|jd
t|�|f�qyWdS)N�lt�gt�le�ge�ne�or�and�xor�sub�__c@s^eZdZdd�Zdd�ZeZeZeZeZeZ	eZ
eZeZeZ
dS)z.ABCTestCase.validate_comparison.<locals>.OthercSs
d|_dS)NF)�
right_side)r>rFrFrG�__init__�sz7ABCTestCase.validate_comparison.<locals>.Other.__init__cSs
d|_dS)NT)r�)r>�otherrFrFrG�__eq__�s	z5ABCTestCase.validate_comparison.<locals>.Other.__eq__N)r1rNrOr�r��__lt__�__gt__�__le__�__ge__�__ne__�__ror__�__rand__�__rxor__�__rsub__rFrFrFrG�Other�sr�zRight side not called for %s.%s)r��operatorr*�hasattrrKr�r0)r>�instanceZopsZ	operators�opr�r�r�rFrFrG�validate_comparison�s!
	
zABCTestCase.validate_comparisonN)r1rNrOr�r�r�rFrFrFrGr��sr�c@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestOneTrickPonyABCscCsnt�t�t�t�g}xI|D]A}|j|t�|jtt|�t�t	t|���q%Wdt
�t�t�t
�t�t�t
tttt�g}xI|D]A}|j|t�|jtt|�t�t	t|���q�W|jtt�Gdd�dt�}|jt|��d�|jtt
|��|jtd�|jtd�dS)Ncs"eZdZ�fdd�Z�S)z-TestOneTrickPonyABCs.test_Hashable.<locals>.Hcs
t�j�S)N)�superr�)r>)�	__class__rFrGr��sz6TestOneTrickPonyABCs.test_Hashable.<locals>.H.__hash__)r1rNrOr�rFrF)rrG�H�srrr�)�	bytearrayr�r�r+r�rrJr�r0r/�int�float�complexrYrp�	frozensetr��bytesr�rKrTrur(�hashr�r�)r>�non_samplesre�samplesrrFrFrG�
test_Hashable�s$
/
/z"TestOneTrickPonyABCs.test_Hashablec
Cs�ddddg}xI|D]A}|j|t�|jtt|�t�tt|���qWt�t�t�t	�t
�t�t�t�j
�t�j�t�j�dd��dd�gD�g}xI|D]A}|j|t�|jtt|�t�tt|���q�WGdd	�d	t�}|jt	|��g�|jtt|��|jtd
�|jtd
�dS)Nr�g��Q�	@y�?cssdVS)NrFrFrFrFrGr��sz4TestOneTrickPonyABCs.test_Iterable.<locals>.<lambda>css|]}|VqdS)NrF)r�rerFrFrGr��sz5TestOneTrickPonyABCs.test_Iterable.<locals>.<genexpr>cs"eZdZ�fdd�Z�S)z-TestOneTrickPonyABCs.test_Iterable.<locals>.Ics
t�j�S)N)r�__iter__)r>)rrFrGr
�sz6TestOneTrickPonyABCs.test_Iterable.<locals>.I.__iter__)r1rNrOr
rFrF)rrG�I�srr
)r�rrJr�r0r/rrYrpr�r�rr+�keysr*r�r�rKr(r�r�)r>r
rerrrFrFrG�
test_Iterable�s"
/$
/z"TestOneTrickPonyABCs.test_Iterablec
Cs�ddddddfgit�g
}xI|D]A}|j|t�|jtt|�t�tt|���q.Wtt��tt	��tt
��tt��tt��tt��tt
��tt�j��tt�j��tt�j��dd��dd	�gD�g}xI|D]A}|j|t�|jtt|�t�tt|���q&W|jtd
d�Gdd
�d
�}|j|�t�dS)Nr�g��Q�	@y�?�r�cssdVS)NrFrFrFrFrGr�	sz4TestOneTrickPonyABCs.test_Iterator.<locals>.<lambda>css|]}|VqdS)NrF)r�rerFrFrGr�
sz5TestOneTrickPonyABCs.test_Iterator.<locals>.<genexpr>�__next__r
c@seZdZdd�ZdS)z4TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnlycssdVt�dS)Nr)�
StopIteration)r>rFrFrGrsz=TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnly.__next__N)r1rNrOrrFrFrFrG�NextOnlysr)r�r�r
rJr�r0r/�iterrrYrpr�r+rrr*r�r�rKr�)r>r
rerrrFrFrG�
test_Iterator�s"'
/$$
/z"TestOneTrickPonyABCs.test_Iteratorc
Cs>dddddd��dd�gD�g}xI|D]A}|j|t�|jtt|�t�tt|���q5Wt�t�t�t	�t
�t�t�t�j
�t�j�t�j�g
}xI|D]A}|j|t�|jtt|�t�tt|���q�W|jtd�|jtd�dS)	Nr�g��Q�	@y�?cssdVS)NrFrFrFrFrGr�sz1TestOneTrickPonyABCs.test_Sized.<locals>.<lambda>css|]}|VqdS)NrF)r�rerFrFrGr�sz2TestOneTrickPonyABCs.test_Sized.<locals>.<genexpr>�__len__)r�rrJr�r0r/rrYrpr�r�rr+rr*r�r�rKr�r�)r>r
rerrFrFrG�
test_Sizeds
/*
/zTestOneTrickPonyABCs.test_Sizedc	Cs2dddddd��dd�gD�g}xI|D]A}|j|t�|jtt|�t�tt|���q5Wt�t�t�t	�t
�t�t�t�j
�t�j�g	}xI|D]A}|j|t�|jtt|�t�tt|���q�W|jtd�|jtd�dS)	Nr�g��Q�	@y�?cssdVS)NrFrFrFrFrGr�,sz5TestOneTrickPonyABCs.test_Container.<locals>.<lambda>css|]}|VqdS)NrF)r�rerFrFrGr�-sz6TestOneTrickPonyABCs.test_Container.<locals>.<genexpr>r\)r�rrJr�r0r/rrYrpr�r�rr+rr*r�rKr�r�)r>r
rerrFrFrG�test_Container*s
/
/z#TestOneTrickPonyABCs.test_Containerc
Cs&ddddddfgit�dd��dd	�gD�g}xI|D]A}|j|t�|jtt|�t�tt|���qJWd
d�tttt	t
jgjg}xI|D]A}|j|t�|j
tt|�t�tt|���q�W|jtd�|jtd�dS)Nr�g��Q�	@y�?r�rcssdVS)NrFrFrFrFrGr�?sz4TestOneTrickPonyABCs.test_Callable.<locals>.<lambda>css|]}|VqdS)NrF)r�rerFrFrGr�@sz5TestOneTrickPonyABCs.test_Callable.<locals>.<genexpr>cSsdS)NrFrFrFrFrGr�Es�__call__)r�r�rrJr�r0r/rr�r,r��appendr�rKr�r�)r>r
rerrFrFrG�
test_Callable<s 
/		
/z"TestOneTrickPonyABCs.test_CallablecCsixbttttttfD]H}Gdd�d|�}|jt||��|jtt	|��qWdS)Nc@seZdZdS)z7TestOneTrickPonyABCs.test_direct_subclassing.<locals>.CN)r1rNrOrFrFrFrGr_Rsr_)
rrr
rrrrKr�rJr)r>r^r_rFrFrG�test_direct_subclassingPsz,TestOneTrickPonyABCs.test_direct_subclassingcCsyxrttttttfD]X}Gdd�d�}|jt||�|j�|j	|�|j
t||��qWdS)Nc@seZdZdZdS)z1TestOneTrickPonyABCs.test_registration.<locals>.CN)r1rNrOr�rFrFrFrGr_Ysr_)rrr
rrrrJr�r1�registerrK)r>r^r_rFrFrG�test_registrationWs

z&TestOneTrickPonyABCs.test_registrationN)r1rNrOrrrrrrrrrFrFrFrGr��sr�c@s[eZdZfdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�WithSetcCst|�|_dS)N)r��data)r>�itrFrFrGr�aszWithSet.__init__cCs
t|j�S)N)r,r!)r>rFrFrGrdszWithSet.__len__cCs
t|j�S)N)rr!)r>rFrFrGr
gszWithSet.__iter__cCs
||jkS)N)r!)r>�itemrFrFrGr\jszWithSet.__contains__cCs|jj|�dS)N)r!�add)r>r#rFrFrGr$mszWithSet.addcCs|jj|�dS)N)r!�discard)r>r#rFrFrGr%pszWithSet.discardN)	r1rNrOr�rr
r\r$r%rFrFrFrGr _sr c@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)"�TestCollectionABCscCs�x=ttgD]/}|j|�t�|jt|t��q
W|jtddd�Gdd�dt�}|j|��dS)Nr\r
rc@s4eZdZdd�Zdd�Zdd�ZdS)z*TestCollectionABCs.test_Set.<locals>.MySetcSsdS)NFrF)r>rerFrFrGr\sz7TestCollectionABCs.test_Set.<locals>.MySet.__contains__cSsdS)NrrF)r>rFrFrGr�sz2TestCollectionABCs.test_Set.<locals>.MySet.__len__cSs
tg�S)N)r)r>rFrFrGr
�sz3TestCollectionABCs.test_Set.<locals>.MySet.__iter__N)r1rNrOr\rr
rFrFrFrG�MySet~sr')r�rr�rrKr�r�r�)r>�sampler'rFrFrG�test_SetyszTestCollectionABCs.test_SetcCsLGdd�dt�}|�|�}}|jt|�t|�k�dS)Nc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z8TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSetcSsdddg|_dS)Nrrr")�contents)r>rFrFrGr��szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__init__cSs
||jkS)N)r*)r>rerFrFrGr\�szETestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__contains__cSs
t|j�S)N)r,r*)r>rFrFrGr�sz@TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__len__cSs
t|j�S)N)rr*)r>rFrFrGr
�szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__iter__cSs
|j�S)N)�_hash)r>rFrFrGr��szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__hash__N)r1rNrOr�r\rr
r�rFrFrFrG�OneTwoThreeSet�s
r,)rrKr	)r>r,rrrFrFrG�
test_hash_Set�sz TestCollectionABCs.test_hash_SetcCsr|jt�t�|jttt��|jt�t�|jttt��|jtddddd�dS)Nr\r
rr$r%)	r�r�rrKr�r�rrJr�)r>rFrFrG�test_MutableSet�sz"TestCollectionABCs.test_MutableSetcCs<td�}|td�M}|jt|�td��dS)N�abcdZcdefZcd)r r(r�)r>r�rFrFrG�test_issue_5647�sz"TestCollectionABCs.test_issue_5647cCsHGdd�dt�}|ddddg�}|j|j�d�dS)Nc@speZdZdgZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)z1TestCollectionABCs.test_issue_4920.<locals>.MySetZ__sNcSs(|dkrg}nt|�|_dS)N)r��	_MySet__s)r>r*rFrFrGr��s	z:TestCollectionABCs.test_issue_4920.<locals>.MySet.__init__cSs
||jkS)N)r1)r>rBrFrFrGr\�sz>TestCollectionABCs.test_issue_4920.<locals>.MySet.__contains__cSs
t|j�S)N)rr1)r>rFrFrGr
�sz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__iter__cSs
t|j�S)N)r,r1)r>rFrFrGr�sz9TestCollectionABCs.test_issue_4920.<locals>.MySet.__len__cSs#||jk}|jj|�|S)N)r1r$)r>rB�resultrFrFrGr$�sz5TestCollectionABCs.test_issue_4920.<locals>.MySet.addcSs#||jk}|jj|�|S)N)r1r%)r>rBr2rFrFrGr%�sz9TestCollectionABCs.test_issue_4920.<locals>.MySet.discardcSsdtt|��S)Nz	MySet(%s))r/r�)r>rFrFrG�__repr__�sz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__repr__)r1rNrOror�r\r
rr$r%r3rFrFrFrGr'�s	r'r&�+rr)rr(rR)r>r'r�rFrFrG�test_issue_4920�sz"TestCollectionABCs.test_issue_4920cCs�t�}ttd��}t|�}||8}|j||�t|�}||N}|j||�t|�}||M}|j||�||O}|j||�dS)Nr�)r r6r()r>�empty�fullr�rFrFrG�test_issue8750�s	



z!TestCollectionABCs.test_issue8750cCs�Gdd�dt�}Gdd�dt�}|�}|�}|j||k�|j||k�|j||k�|j||k�dS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z;TestCollectionABCs.test_issue16373.<locals>.MyComparableSetcSsdS)NFrF)r>rerFrFrGr\�szHTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__contains__cSsdS)NrrF)r>rFrFrGr�szCTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__len__cSs
tg�S)N)r)r>rFrFrGr
�szDTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__iter__N)r1rNrOr\rr
rFrFrFrG�MyComparableSet�sr9c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z>TestCollectionABCs.test_issue16373.<locals>.MyNonComparableSetcSsdS)NFrF)r>rerFrFrGr\�szKTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__contains__cSsdS)NrrF)r>rFrFrGr�szFTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__len__cSs
tg�S)N)r)r>rFrFrGr
�szGTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__iter__cSstS)N)�NotImplemented)r>rerFrFrGr��szETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__le__cSstS)N)r:)r>rerFrFrGr��szETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__lt__N)r1rNrOr\rr
r�r�rFrFrFrG�MyNonComparableSet�s
r;)rrJrK)r>r9r;ZcsZncsrFrFrG�test_issue16373�s		z"TestCollectionABCs.test_issue16373cCs |jt|�t|��dS)N)ZassertSetEqualr�)r>�s1�s2rFrFrG�
assertSameSet�sz TestCollectionABCs.assertSameSetcKCs�Gdd�dt�}td�}td�}td�}|d�}|d�}|d�}td�}td�}	td�}
||@}|j||@|�|j||@|�|j||@|�|j||	@|�||B}|j||B|�|j||B|�|j||B|�|j||	B|�||}||}
|j|||�|j|||
�|j|||�|j|||
�|j|||�|j|||
�|j||	|�|j|||
�||A}|j||A|�|j||A|�|j||A|�|j||	A|�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|jt��||
kWdQX|jt��||kWdQX|jt��||	kWdQX|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|jt��||
kWdQX|jt��||kWdQX|jt��||	kWdQX|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|jt��||
kWdQX|jt��||kWdQX|jt��||	kWdQX|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|jt��||
kWdQX|jt��||kWdQX|jt��||	kWdQX|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)	Nc@sOeZdZfdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)zLTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSetcSs@g|_x0|D](}||jkr|jj|�qqWdS)N)r!r)r>�elements�elemrFrFrGr��s	
zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__init__cSs
||jkS)N)r!)r>rArFrFrGr\�szYTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__contains__cSs
t|j�S)N)rr!)r>rFrFrGr
�szUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__iter__cSs
t|j�S)N)r,r!)r>rFrFrGr�szTTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__len__cSsdj|j�S)Nz	Set({!r}))�formatr!)r>rFrFrGr3�szUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__repr__N)r1rNrOr�r\r
rr3rFrFrFrG�ListSet�s
rCr#ZbcdZabcdeZabccbaZbcddcbZ
abcdeedcba)rr�r�r?rKrJrTru)r>rCZr1Zr2Zr3�f1�f2Zf3�l1�l2�l3�targetZ
fwd_targetZ
rev_targetrFrFrG�(test_Set_interoperability_with_real_sets�s�




	z;TestCollectionABCs.test_Set_interoperability_with_real_setscCs�x:tgD]/}|j|�t�|jt|t��q
W|jtdddd�Gdd�dt�}|j|��dS)Nr\r
rr[c@s4eZdZdd�Zdd�Zdd�ZdS)z2TestCollectionABCs.test_Mapping.<locals>.MyMappingcSsdS)NrrF)r>rFrFrGr�sz:TestCollectionABCs.test_Mapping.<locals>.MyMapping.__len__cSs
t�dS)N)r�)r>r�rFrFrGr[�sz>TestCollectionABCs.test_Mapping.<locals>.MyMapping.__getitem__cSs
tf�S)N)r)r>rFrFrGr
�sz;TestCollectionABCs.test_Mapping.<locals>.MyMapping.__iter__N)r1rNrOrr[r
rFrFrFrG�	MyMapping�srK)r+r�rrKr�r�r�)r>r(rKrFrFrG�test_Mapping�szTestCollectionABCs.test_MappingcCs`x:tgD]/}|j|�t�|jt|t��q
W|jtdddddd�dS)Nr\r
rr[�__setitem__�__delitem__)r+r�rrKr�r�)r>r(rFrFrG�test_MutableMapping�s
z&TestCollectionABCs.test_MutableMappingcCs;t�}d|d<|j|j�t�|j|j�t�|j|j�t�|j|j�t�t�}d|d<|j�dhB}|j|t�t|�d|d<|j	t
|�ddg�t�}d|d<|j�dhB}|j|t�t|�d|d<|j	t
|�dd	g�dS)
Nr&r��orange�r�r")rPr")rPr")zredr&)r	r�rrrr*rr�r�r(�sorted)r>Zmymapr$rFrFrG�test_MutableMapping_subclass�s(	
	


	


z/TestCollectionABCs.test_MutableMapping_subclasscCs�xCttttgD]/}|j|�t�|jt|t��qW|jtd�t�|jttt��|jt	d�t�|jtt	t��|jttt��|j
tdddd�dS)Nr�rr\r
rr[)rpr�rrYr�rrKr�r6�
memoryviewr�)r>r(rFrFrG�
test_Sequence�sz TestCollectionABCs.test_SequencecCs�x=ttgD]/}|j|�t�|jt|t��q
Wx@tttgD]/}|j	|�t�|j
t|t��qPW|j	td�t�|j
ttt��dS)Nr)rrr�rrKr�rYr�rpr�rJrT)r>r(rFrFrG�test_ByteString�sz"TestCollectionABCs.test_ByteStringc	Cs�x@tttgD]/}|j|�t�|jt|t��qWx=ttgD]/}|j	|�t�|j
t|t��qPW|jttt��|jtddddddd�dS)Nr\r
rr[rMrN�insert)rprYrr�rrJr�r�rr�rKr�)r>r(rFrFrG�test_MutableSequence�sz'TestCollectionABCs.test_MutableSequencecCsGdd�dt�}|�}|jd�|jd
�|jt|�d�|j|dd�|j�|j|dd�|j�|jt|�d�|jd�|jt|�d�|d7}|jt|�d�|j|dd�|j�|jt|�d�dS)Nc@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)zOTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclasscSs
g|_dS)N)�lst)r>rFrFrGr��szXTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__init__cSs||j|<dS)N)rY)r>�index�valuerFrFrGrM�sz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__setitem__cSs|j|S)N)rY)r>rZrFrFrGr[�sz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__getitem__cSs
t|j�S)N)r,rY)r>rFrFrGr�szWTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__len__cSs|j|=dS)N)rY)r>rZrFrFrGrN�sz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__delitem__cSs|jj||�dS)N)rYrW)r>rZr[rFrFrGrW�szVTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.insertN)	r1rNrOr�rMr[rrNrWrFrFrFrG�MutableSequenceSubclass�sr\rrrr"r�r&r�rr �)rrr"r�)r�rr r�)	rr�extendr(r,�reverserR�remove�clear)r>r\ZmssrFrFrG�test_MutableSequence_mixins�s"	






z.TestCollectionABCs.test_MutableSequence_mixinsN)r1rNrOr)r-r.r0r5r8r<r?rJrLrOrSrUrVrXrbrFrFrFrGr&ss �
r&c@s(eZdZdd�Zdd�ZdS)�CounterSubclassWithSetItemcOs d|_tj|||�dS)NF)�calledrr�)r>r��kwdsrFrFrGr�s	z#CounterSubclassWithSetItem.__init__cCs d|_tj|||�dS)NT)rdrrM)r>r@r[rFrFrGrMs	z&CounterSubclassWithSetItem.__setitem__N)r1rNrOr�rMrFrFrFrGrcsrcc@s(eZdZdd�Zdd�ZdS)�CounterSubclassWithGetcOs d|_tj|||�dS)NF)rdrr�)r>r�rerFrFrGr�
s	zCounterSubclassWithGet.__init__cCsd|_tj|||�S)NT)rdrr.)r>r@�defaultrFrFrGr.s	zCounterSubclassWithGet.getN)r1rNrOr�r.rFrFrFrGrfsrfc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestCounterc
Cs1td�}|j|tidd6dd6dd6��|j|tdddddd��|j|t�|j|t�|jttt��|jttt��|jt|�d�|jt|j	��d�|jt
|j	��dddg�|jt
|j��dddg�|jt
|�dddg�|jt
|j��d d!d"g�|j|dd�|j|d	d
�|j|j
d�d�|j|j
d	�d�|j|jdd
�d�|j|jd	d
�d
�|j|tdddddd��|jt|�d�|j|j�d#d$d%g�x@td�D]2}|j|j|�d&d'd(gd|��qaW|jdjt
|j���d�|dd7<|dd8<|d=|d=|dd8<d)|d<|dd7<|j|tdddd
dd*dd+dd��|jdjt
|j���d�|j|jd�d�|jd|�x6td�D](}|j�\}}|j||�q�W|j�|j|i�|jt|�d�|jttjd�|jtt|�|jtdddd��|jdd�|jtdddd��|j�|jdddd�|jd�|j�|j|tdddddddd��|j|jdd�d�|j|dd�|j|jdd�d�|j|dd�dS),NZabcabar"rrrrr!r]r$rTFr�z!Counter({'a': 3, 'b': 2, 'c': 1})r&r�Zaaabbcr?rCrEr�Zaaaaffffz	Counter()r#r�r i�i,Zcdci+iM)rr")rr)r!r)rr")rr)r!r)rr")rr)r!rr����r�) rr(r�r+rrKr�r,�sumr�rRrr*r\r.r/�most_commonr6r�r@rRrtrSrarT�NotImplementedErrorr�rur	�updater��
setdefault)r>r!r�rAZcntrFrFrGrHst+%%%%%
1%



+zTestCounter.test_basicscCs�|jttdd�j��dg�|jttdd�j��dg�|jttdd�j��dg�|jttd�|jttff�|jttj�dS)Nr>r��iterable)r>r�)ror�)roN)r(r�rr*rTrur�)r>rFrFrG�	test_initRs(((zTestCounter.test_initcCs�t�}|jdd�|jt|j��dg�t�}|jdd�|jt|j��dg�t�}|jdd�|jt|j��dg�|jtt�jd�|jtt�jii�|jttj�dS)Nr>r�ro)r>r�)ror�)roN)rrmr(r�r*rTru)r>r!rFrFrG�test_updateZs			zTestCounter.test_updatec
s�tdj�����fdd�}|�j��|tj���|tj���xSttjd�D]>}�jd|��$|tjtj	�|���WdQXqqW|t
t����t�}|j��||�|t���dS)Nz)which witch had which witches wrist watchcs7d|�f}�j|�|��j|��dS)Nz
copy: %s
words: %s)r3r()�dup�msg)r>r�rFrG�checklsz'TestCounter.test_copying.<locals>.checkrrD)
r�splitr2r;r6r7r8ZsubTestr9r:r<r/rm)r>rtrDZupdate_testrF)r>r�rG�test_copyinghs)	

zTestCounter.test_copyingcCszGdd�dt�}|d�}|j�}|j||�|jt|�t|��|jt|�t|��dS)Nc@seZdZdS)z1TestCounter.test_copy_subclass.<locals>.MyCounterN)r1rNrOrFrFrFrG�	MyCounter}srwZslartibartfast)rr2r(r,r0)r>rwr!r?rFrFrG�test_copy_subclass|szTestCounter.test_copy_subclasscCs�d}|jtt|�j��t|��|jtt|��tt|���|jtt|��tt|�j���|jtt|��t|��dS)Nz%she sells sea shells by the sea shore)r(rRrr@r�r+r*)r>r�rFrFrG�test_conversions�s
((.zTestCounter.test_conversionscCsStdddddd�}x1|D])}|j||k�|j||�q"WdS)Nrr�rrr!rri)rrKr-)r>r!rArFrFrG�"test_invariant_for_the_in_operator�s
z.TestCounter.test_invariant_for_the_in_operatorc

Cs�tdddddd�t�}|jt|�tdd��d}x]td�D]O}ttd	d
�|D���}|jddd
ddd�ttdd
�|D���}|jdddddd�x�tjdd�ftjdd�ftjdd�ftjdd�fgD]�\}}|||�}xB|D]:}	|j|||	||	�||	||	||f�qAW|j	dd
�|j
�D��qWqTWd}x�td�D]�}ttdd
�|D���}ttdd
�|D���}x�tjtjftjtjftjtjfgD]^\}}
|||�}|
t|j��t|j���}|j|tj
|d��q2Wq�WdS) Nrr�rrr!rr/i�css$|]}|tdd�fVqdS)rr�Nri)r)r�rArFrFrGr��sz7TestCounter.test_multiset_operations.<locals>.<genexpr>rCrrE�gcss$|]}|tdd�fVqdS)rr�Nri)r)r�rArFrFrGr��s�hr�r�cSstd||�S)Nr)r�)rerfrFrFrGr��sz6TestCounter.test_multiset_operations.<locals>.<lambda>cSstd||�S)Nr)r�)rerfrFrFrGr��scSstd||�S)Nr)r�)rerfrFrFrGr��scSstdt||��S)Nr)r��min)rerfrFrFrGr��scss|]}|dkVqdS)rNrF)r�rerFrFrGr��sZabcdefr%css$|]}|tdd�fVqdS)rrN)r)r�rArFrFrGr��scss$|]}|tdd�fVqdS)rrN)r)r�rArFrFrGr��srir�r�)rr(r+r6rm�__add__�__sub__�__or__�__and__rKr�r�r@r�)
r>r!r@r�r�r�Z	counteropZnumberopr2reZsetopZcounter_resultZ
set_resultrFrFrG�test_multiset_operations�s:""
!('z$TestCounter.test_multiset_operationscCsFd}x9td�D]+}ttdd�|D���}|jdddddd	�ttd
d�|D���}|jddddd
d	�x�tjtjftjtjftjtj	ftj
tjfgD]h\}}|j�}t
|�}|||�}	|||�}
|j|
|	�|jt
|
�|�q�WqWdS)Nr/i�css$|]}|tdd�fVqdS)rr�Nri)r)r�rArFrFrGr��sz6TestCounter.test_inplace_operations.<locals>.<genexpr>rCrrEr{rcss$|]}|tdd�fVqdS)rr�Nri)r)r�rArFrFrGr��sr|r�r�r�r�)r6rr+rm�__iadd__r~�__isub__r�__ior__r��__iand__r�r2�idr()r>r@r�r�r�Z
inplace_opZ
regular_opr!Zc_idZregular_resultZinplace_resultrFrFrG�test_inplace_operations�s"z#TestCounter.test_inplace_operationscCsTtdddddddddd	d
d�}|jdddd
dddddddddd�|j|tdddddddddd dd!d
ddd��tdd"dddddddd	d
d�}|jtdddd
dd#dddddddd$��|j|tdd%dd&dddddd'dd(d
ddd��td�}|jd�|j|tdd)dddd*dddd+��t�}|jdd�|jt|j��d-g�t�}|jdd�|jt|j��d/g�|jtt�jd�|jtt�jii�|jttj�dS)0Nrr&rrr!r?r�rC�r{r�rrr"rrEr r|r�r]�ZaaabbcdZ	aaaabbccer>r�ror����i���i����rir�i��r�r�i���i����rir�i��r�r�r�����)r>r�����)ror�)r�subtractr(r�r*rTru)r>r!rFrFrG�
test_subtract�s$-4C-:C
1		zTestCounter.test_subtractc
Cs�tdddddddddd	d
d�}|jt|
�tdddddd	d
d��|jt|�tdd��dS)
Nrr&rrr!r?r�rCr�r{r�r�)rr(r+)r>r!rFrFrG�
test_unary�s-2zTestCounter.test_unarycCsEtdddd�}t|�}|jd|�|jd|�dS)Nrrrz'a': 2z	'b': None)rr/r-)r>r!�rrFrFrG�test_repr_nonsortable�sz!TestCounter.test_repr_nonsortablec	Cs>td�}t�}t||�|j|idd6dd6dd6dd6dd	6�t�}t||�|j|td
ddd
dg��td�}|j|j�|jt|�idd6dd6dd6dd	6dd6�td�}|j|j�|jt|�idd6dd6dd6dd	6dd6�dS)NZabracadabrar&rrr�rrr!r?)rr&)rr)r�r)r!r)r?r)	r�r+rr(rrcrKrdrf)r>Zelemsr?r`r!rFrFrG�test_helper_function�s	
3	
	9z TestCounter.test_helper_functionN)r1rNrOrHrprqrvrxryrzr�r�r�r�r�r�rFrFrFrGrhs<	'rhcCsKtjdt�}t|ttttg}tj	|�tj
t|�dS)Nr�)�doctestZDocTestSuite�collectionsrcr�r&rhrrZrun_unittestZrun_doctest)r�ZNamedTupleDocsZtest_classesrFrFrG�	test_main	s
	
r��__main__r�T)3rxr�r2r�r�r�r7Zrandomrrr�r�r�Ztestrr�rrrrr	r
Zcollections.abcrrr
rrrrrrrrrrrrZTestCaserrbrcr�r�r r&rcrfrhr�r1rFrFrFrG�<module>sF""��;���		�