Your IP : 216.73.217.129


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



��Yf���@s�dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlZddlZddl
Z
ddlmZddlZddlZddlmZmZmZmZddlmZmZmZddlmZddlmZdd	lmZmZmZmZdd
lm Z m!Z!m"Z"m#Z#ddlm$Z$m%Z%m&Z&ddlm'Z'm(Z(dd
lm)Z)m*Z*m+Z+m,Z,ddlm-Z-m.Z.ddlm/Z/Gdd�dej0�Z1Gdd�dej0�Z2edd�Z3Gdd�dej0�Z4Gdd�dej0�Z5Gdd�de5�Z6Gdd�de(�Z7Gdd�de5�Z8Gd d!�d!e�Z9Gd"d#�d#e�Z:Gd$d%�d%ej0�Z;dd&d'�Z<e=d(kr�e<d)d*�dS)+zUnit tests for collections.py.�N)�choice�	randrange)�support)�
namedtuple�Counter�OrderedDict�_count_elements)�UserDict�
UserString�UserList)�ChainMap)�deque)�	Awaitable�	Coroutine�
AsyncIterator�
AsyncIterable)�Hashable�Iterable�Iterator�	Generator)�Sized�	Container�Callable)�Set�
MutableSet)�Mapping�MutableMapping�KeysView�	ItemsView)�Sequence�MutableSequence)�
ByteStringc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestUserObjectscCsG|jtt|��tt|��djd|jd|j��dS)Nz&{a} should have all the methods of {b}�a�b)ZassertGreaterEqual�set�dir�format�__name__)�selfr#r$�r*�:/opt/alt/python35/lib64/python3.5/test/test_collections.py�_superset_test s		zTestUserObjects._superset_testcCs|jtt�dS)N)r,r
�str)r)r*r*r+�test_str_protocol)sz!TestUserObjects.test_str_protocolcCs|jtt�dS)N)r,r�list)r)r*r*r+�test_list_protocol,sz"TestUserObjects.test_list_protocolcCs|jtt�dS)N)r,r	�dict)r)r*r*r+�test_dict_protocol/sz"TestUserObjects.test_dict_protocolN)r(�
__module__�__qualname__r,r.r0r2r*r*r*r+r"s	r"c@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestChainMapc	Cs�t�}d|d<d|d<|j�}d|d<d|d<|j|jddddiddddig�|j|j�tdddddd�j��|jt|�d�xd	D]}|j||�q�WxQtddddddd
d�j�D](\}}|j|j|d�|�q�W|d=|j|jddiddddig�|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�WqjWx�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
|||�q.Wq�W|j�}
d|
d<|j|
jddiddiddddig�|j|
jjddiddddig�|j|
dd�|j|
jdd�dS)N�r#�r$���c��abc�z�dz({'c': 30}, {'a': 1, 'b': 2})z({'c': 30}, {'b': 2, 'a': 1})r�)r�	new_child�assertEqual�maps�itemsr1�len�assertIn�get�repr�typer(�copy�assertIsNot�zip�assertIs�range�pickle�HIGHEST_PROTOCOL�loads�dumps�deepcopy�eval�parents)r)r:�d�key�k�v�e�m1�m2�proto�fr*r*r+�test_basics9sf	



11
4 +1
4 "6""
4.zTestChainMap.test_basicscCsE|jt�jig�|jtddi�jddig�dS)Nr6r7)rArrB)r)r*r*r+�test_constructoruszTestChainMap.test_constructorcCsb|jt��|jtii��|jtddii��|jtiddi��dS)Nr6r7)�assertFalser�
assertTrue)r)r*r*r+�	test_boolyszTestChainMap.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�WdQRXdS)Nc@seZdZdd�ZdS)z2TestChainMap.test_missing.<locals>.DefaultChainMapcSsdS)Ni�r*)r)rVr*r*r+�__missing__�sz>TestChainMap.test_missing.<locals>.DefaultChainMap.__missing__N)r(r3r4rcr*r*r*r+�DefaultChainMap�srdr#r6r$r7r8r:r9rUi��MTFi�i�)r$r7)	rr1rCrArF�pop�popitem�assertRaises�KeyError)r)rdrUrWrXr*r*r+�test_missings-44 4zTestChainMap.test_missingc	Cs�ttdddd�tdddd��}|jt|�tdddddd��|jt|j��tdddddd��dS)Nr#r6r$r7r8r:r9)rr1rArC)r)rUr*r*r+�test_dict_coercion�s-+zTestChainMap.test_dict_coercionc	Csmt�}d|d<d|d<ddddi}|j|�}|j|jddddiddddig�|j||jd�Gd	d
�d
t�}t�}d|d<d|d<|dddd�}|j|�}|j||jd�xdD]}|j||�q�WxQtddddd
ddd�j�D](\}}|j|j|d�|�q=WdS)z#Tests for changes for issue #16613.r6r#r7r$r8r:r9rc@s(eZdZdd�Zdd�ZdS)z.TestChainMap.test_new_child.<locals>.lowerdictcSs+t|t�r|j�}tj||�S)N)�
isinstancer-�lowerr1�__getitem__)r)rVr*r*r+rn�sz:TestChainMap.test_new_child.<locals>.lowerdict.__getitem__cSs+t|t�r|j�}tj||�S)N)rlr-rmr1�__contains__)r)rVr*r*r+ro�sz;TestChainMap.test_new_child.<locals>.lowerdict.__contains__N)r(r3r4rnror*r*r*r+�	lowerdict�srpr<�B�Cr=r>N)	rr@rArBrLr1rErCrF)r)r:�mrUrprVrWrXr*r*r+�test_new_child�s$	

1
	


4zTestChainMap.test_new_childN)	r(r3r4r^r_rbrjrkrtr*r*r*r+r57s<r5�TestNTzx y zc@s�eZdZdd�Zejejjdkd�dd��Z	ejejjdkd�dd��Z
d	d
�Zdd�Zd
d�Z
dd�Zdd�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���!)rxry)r}r~)rrAr(�	__slots__r3rn�tuple�_fieldsrE�_sourcerh�
ValueError�assertNotInrG�	TypeError�_make)r)rwr|r*r*r+�test_factory�s.

zTestNamedTuple.test_factoryr7z)Docstrings are omitted with -O2 and abovecCs&tdd�}|j|jd�dS)Nrwzx yzPoint(x, y))rrA�__doc__)r)rwr*r*r+�test_factory_doc_attr�sz$TestNamedTuple.test_factory_doc_attrcCsKtdd�}|j|jjd�d|j_|j|jjd�dS)Nrwzx yzAlias for field number 0zdocstring for Point.x)rrArxr�)r)rwr*r*r+�test_doc_writable�sz TestNamedTuple.test_doc_writablec	CssxlddgddgddgddgddgddggD].\}}|jtd|dd�j|�q=WdS)N�efg�g%hi�_1r<rz�8efg�9ghi�_0�_efg�ghi�_2�rxZNT�renameT)r�r�)r�r�)r<rz)r<r�)r�r�)r�r�)r<r�)r<r�)r<r�r�r�)r<r�r�r�)r<r�rx)r<r�rx)rArr�)r)�specZrenamedr*r*r+�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)Nrwzx yrr�rxryr6r7r;zPoint(XXX=1, y=2)z
Point(x=1)zPoint(x=11, y=22)�__weakref__�errorz%Did not detect an incorrect fieldnamezx, y)rr�)rxry)r6r�)rxry)rrAr1rhr�rS�localsrGr�r&r�r��_replace�_asdictr�Z_fail)r)rw�pr*r*r+�
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)Nrwzx yrr�rr6r;zp.z)rr�)rr�)rr�)r�assertIsInstancer�rAr/�maxrh�
IndexErrorrnrxry�AttributeErrorrSr�)r)rwr�rxryr*r*r+�test_tuplenesss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�ddi�|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()�DotrUr6zDot(d=1)���css1|]'}djdd�td�D��VqdS)r�cSsg|]}ttj��qSr*)r�stringZ
ascii_letters)�.0�jr*r*r+�
<listcomp>?s	z;TestNamedTuple.test_odd_sizes.<locals>.<genexpr>.<listcomp>�
N)�joinrM)r��ir*r*r+�	<genexpr>?sz0TestNamedTuple.test_odd_sizes.<locals>.<genexpr>�Bigr?�*)r6)r6)r�)rU���r�)rrAr�rGr�r�rUr�r/r%rMrDr��	enumerate�getattrr1rK)
r)r�r��n�namesr�r$�pos�namerUZ
d_expectedZb2Zb2_expectedr*r*r+�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)Nrxr�ryr8r=r9rPrQr6sOrderedDict���)rurNr�rMrOrAr�r�)r)r��modulerPrQZprotocol�qr*r*r+�test_pickleSszTestNamedTuple.test_picklecCsntdddddd�}xLtjtjfD]8}||�}|j||�|j|j|j�q.WdS)Nrxr�ryr8r=r9)rurIrRrAr�)r)r�Zcopierr�r*r*r+�	test_copy^s
zTestNamedTuple.test_copyc
Cstdd�}|ddddd�}|j|d�|jdd	d
ddd
dddd�}|j|d�tj��}tdddd�}WdQRXttjd|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 tupler6r7r;�r?�
itemgetterr��propertyr8r)r9�cls�(r��2rx�verboseTz	[A-Za-z]+css|]}|dVqdS)r�Nr*)r�rXr*r*r+r��sz5TestNamedTuple.test_name_conflicts.<locals>.<genexpr>)r6r7r;r�r?)r�r8r9r�r�)rrAr�r�captured_stdoutr%�re�findall�getvalue�keyword�kwlistr�rMrDr1rKr�r�rGr��__getnewargs__)r)r��tZnewt�template�words�valuesZ	newvaluesr*r*r+�test_name_conflictses2*
(!z"TestNamedTuple.test_name_conflictscCs}tj��}tdddd�}WdQRX|jt|d��d�Gdd�d|�}|jt|d��d	�dS)
N�Arxr�Tr6zA(x=1)c@seZdZdS)z#TestNamedTuple.test_repr.<locals>.BN)r(r3r4r*r*r*r+rq�srqzB(x=1))rr�rrArG)r)r�r�rqr*r*r+�	test_repr�s
zTestNamedTuple.test_reprcCs�tdd�}t�jdd�t|jt��|jdt��tddd�}|j|j|j	|j
fd	�|jtjd
�t�jdd�dS)N�NTColorzred green bluer�r8r9�red�green�blue)r�r8r9)r�r�r�)r�globalsrf�execr�rEr�rAr�r�r�r�)r)Ztmpr:r*r*r+�test_source�s"zTestNamedTuple.test_sourcecCs|Gdd�dtdddg��}|dd�}|j|j�td
dg��d|_|j|jd	di�dS)Nc@seZdZdS)zBTestNamedTuple.test_namedtuple_subclass_issue_24931.<locals>.PointN)r(r3r4r*r*r*r+rw�srwZ_Pointrxryr;r�r?�w)rxr;)ryr�)rrAr�rr��__dict__)r)rwr#r*r*r+�$test_namedtuple_subclass_issue_24931�s
%"	z3TestNamedTuple.test_namedtuple_subclass_issue_24931N)r(r3r4r��unittestZskipIf�sys�flags�optimizer�r�r�r�r�r�r�r�r�r�r�r�r*r*r*r+rv�s$'&	rvc@s4eZdZdd�Zdd�Zdd�ZdS)�ABCTestCasecGs�tj|dd��}td|f|�}|�xI|D]A}|j�}||=td|f|�}|jt||�q;WdS)NcWsdS)Nrr*)�s�argsr*r*r+�<lambda>�sz7ABCTestCase.validate_abstract_methods.<locals>.<lambda>rr)r1�fromkeysrHrIrhr�)r)r<r�Zmethodstubsrrr�Zstubsr*r*r+�validate_abstract_methods�s
z%ABCTestCase.validate_abstract_methodscCs�dd�}tdtfddi�}t|||�|j|�|�|jt||��tdtfddi�}|j|�|�|jt||��dS)NcWsdS)Nrr*)r�r�r*r*r+r��sz1ABCTestCase.validate_isinstance.<locals>.<lambda>rr�__hash__)rH�object�setattrr�ra�
issubclass�assertNotIsInstancer`)r)r<r�Zstubrrr*r*r+�validate_isinstance�szABCTestCase.validate_isinstancec	Cs�ddddddddd	g	}i}x/|D]'}d
|d
}tt|�||<q.WGdd�d�}xe|j�D]W\}}t||�s�qy|�}|||�|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)r*r*r+�__init__�sz7ABCTestCase.validate_comparison.<locals>.Other.__init__cSs
d|_dS)NT)r�)r)�otherr*r*r+�__eq__�s	z5ABCTestCase.validate_comparison.<locals>.Other.__eq__N)r(r3r4r�r��__lt__�__gt__�__le__�__ge__�__ne__�__ror__�__rand__�__rxor__�__rsub__r*r*r*r+�Other�sr	zRight side not called for %s.%s)r��operatorrC�hasattrrar�rH)r)�instanceZopsZ	operators�opr�r	r�r*r*r+�validate_comparison�s!
	
zABCTestCase.validate_comparisonN)r(r3r4r�r�rr*r*r*r+r��sr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestOneTrickPonyABCscCs�dd�}tjdd��}dd�}Gdd�d�}Gd	d
�d
t�}dt�|�t�g}xI|D]A}|j|t�|jtt	|�t�t
t	|���qxW|�|�g}x:|D]2}|j|t�|jtt	|�t��q�W|�}	|j|	t�|�}	|j|	t�|	j
�Gdd�d�}
tj|
�|jt|
�t��|jt|
t��d}
tj�dS)
Ncss	dVdS)Nr*r*r*r*r+�gen�sz0TestOneTrickPonyABCs.test_Awaitable.<locals>.gencss	dVdS)Nr*r*r*r*r+�coro�sz1TestOneTrickPonyABCs.test_Awaitable.<locals>.coroc�sdS)Nr*r*r*r*r+�new_coro�sz5TestOneTrickPonyABCs.test_Awaitable.<locals>.new_coroc@seZdZdd�ZdS)z0TestOneTrickPonyABCs.test_Awaitable.<locals>.Barcss	dVdS)Nr*)r)r*r*r+�	__await__�sz:TestOneTrickPonyABCs.test_Awaitable.<locals>.Bar.__await__N)r(r3r4rr*r*r*r+�Bar�srcs@eZdZdd�Zdd�fdd�Zdd�Z�S)z8TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCorocSs|S)Nr*)r)�valuer*r*r+�send�sz=TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.sendNcst�j|||�dS)N)�super�throw)r)�typ�val�tb)�	__class__r*r+r�sz>TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.throwcss	dVdS)Nr*)r)r*r*r+rszBTestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.__await__)r(r3r4rrrr*r*)rr+�MinimalCoro�src@seZdZdS)z5TestOneTrickPonyABCs.test_Awaitable.<locals>.CoroLikeN)r(r3r4r*r*r*r+�CoroLikesr)�types�	coroutiner�intr�r�rr`r�rHrGr�ra�close�registerrlrZ
gc_collect)r)rrrrr�non_samplesrx�samplesr:rr*r*r+�test_Awaitable�s0
/
 		

z#TestOneTrickPonyABCs.test_AwaitablecCs�dd�}tjdd��}dd�}Gdd�d�}Gd	d
�d
t�}dt�|�t�|�g}xI|D]A}|j|t�|jtt|�t�t	t|���q~W|�g}x:|D]2}|j
|t�|jtt|�t��q�W|�}	|j|	t�|�}	|j
|	t�|	j
�Gdd�d�}
|jt|
�t��|jt|
t��Gd
d�d�}
|jt|
�t��|jt|
t��dS)Ncss	dVdS)Nr*r*r*r*r+rsz0TestOneTrickPonyABCs.test_Coroutine.<locals>.gencss	dVdS)Nr*r*r*r*r+r"sz1TestOneTrickPonyABCs.test_Coroutine.<locals>.coroc�sdS)Nr*r*r*r*r+r&sz5TestOneTrickPonyABCs.test_Coroutine.<locals>.new_coroc@seZdZdd�ZdS)z0TestOneTrickPonyABCs.test_Coroutine.<locals>.Barcss	dVdS)Nr*)r)r*r*r+r*sz:TestOneTrickPonyABCs.test_Coroutine.<locals>.Bar.__await__N)r(r3r4rr*r*r*r+r)srcs@eZdZdd�Zdd�fdd�Zdd�Z�S)z8TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCorocSs|S)Nr*)r)rr*r*r+r.sz=TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.sendNcst�j|||�dS)N)rr)r)rrr)rr*r+r0sz>TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.throwcss	dVdS)Nr*)r)r*r*r+r2szBTestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.__await__)r(r3r4rrrr*r*)rr+r-src@sFeZdZdd�Zdddd�Zdd�Zdd	�ZdS)
z5TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLikecSsdS)Nr*)r)rr*r*r+rJsz:TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.sendNcSsdS)Nr*)r)rrrr*r*r+rLsz;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.throwcSsdS)Nr*)r)r*r*r+r"Nsz;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.closecSsdS)Nr*)r)r*r*r+rPsz?TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.__await__)r(r3r4rrr"rr*r*r*r+rIsrc@s4eZdZdd�Zdd�Zdd�ZdS)z5TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLikecSsdS)Nr*)r)rr*r*r+rVsz:TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.sendcSsdS)Nr*)r)r*r*r+r"Xsz;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.closecSsdS)Nr*)r)r*r*r+rZsz?TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.__await__N)r(r3r4rr"rr*r*r*r+rUs)rr rr!r�r�r`r�rHrGr�rrar"rl)r)rrrrrr$rxr%r:rr*r*r+�test_Coroutines0!
/
 		
	z#TestOneTrickPonyABCs.test_Coroutinec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)rr�)r))rr*r+r�rsz6TestOneTrickPonyABCs.test_Hashable.<locals>.H.__hash__)r(r3r4r�r*r*)rr+�Hqsr(rr�)�	bytearrayr/r%r1r�rr`r�rHrGr!�float�complexr-r��	frozensetr��bytesr�rarhr�rA�hashr�r�)r)r$rxr%r(r*r*r+�
test_Hashable_s$
/
/z"TestOneTrickPonyABCs.test_HashablecCs�Gdd�d�}|jt|�t��|jt|t��dtgg}xI|D]A}|j|t�|jtt|�t�tt|���qXW|j	td�|j
td�dS)Nc@seZdZdd�ZdS)z3TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AIc�s|S)Nr*)r)r*r*r+�	__aiter__{sz=TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AI.__aiter__N)r(r3r4r0r*r*r*r+�AIzsr1r0)rarlrr�r�r�r`rHrGr�r�)r)r1r$rxr*r*r+�test_AsyncIterableys
/z'TestOneTrickPonyABCs.test_AsyncIterablecCs�Gdd�d�}|jt|�t��|jt|t��dtgg}xI|D]A}|j|t�|jtt|�t�tt|���qXWGdd�d�}|j|�t�|j	tdd�dS)Nc@s(eZdZdd�Zdd�ZdS)z3TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AIc�s|S)Nr*)r)r*r*r+r0�sz=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__aiter__c�s
t�dS)N)�StopAsyncIteration)r)r*r*r+�	__anext__�sz=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__anext__N)r(r3r4r0r4r*r*r*r+r1�sr1c@seZdZdd�ZdS)z:TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnlyc�s
t�dS)N)r3)r)r*r*r+r4�szDTestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnly.__anext__N)r(r3r4r4r*r*r*r+�	AnextOnly�sr5r4r0)
rarlrr�r�r�r`rHrGr�)r)r1r$rxr5r*r*r+�test_AsyncIterator�s
/z'TestOneTrickPonyABCs.test_AsyncIteratorc
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)Nr*r*r*r*r+r��sz4TestOneTrickPonyABCs.test_Iterable.<locals>.<lambda>css|]}|VqdS)Nr*)r�rxr*r*r+r��sz5TestOneTrickPonyABCs.test_Iterable.<locals>.<genexpr>cs"eZdZ�fdd�Z�S)z-TestOneTrickPonyABCs.test_Iterable.<locals>.Ics
t�j�S)N)r�__iter__)r))rr*r+r7�sz6TestOneTrickPonyABCs.test_Iterable.<locals>.I.__iter__)r(r3r4r7r*r*)rr+�I�sr8r7)r�rr`r�rHrGr-r-r�r/r%r,r1�keysrCr�r�rarAr�r�)r)r$rxr%r8r*r*r+�
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)Nr*r*r*r*r+r��sz4TestOneTrickPonyABCs.test_Iterator.<locals>.<lambda>css|]}|VqdS)Nr*)r�rxr*r*r+r��sz5TestOneTrickPonyABCs.test_Iterator.<locals>.<genexpr>�__next__r7c@seZdZdd�ZdS)z4TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnlycss	dVdS)Nr6r*)r)r*r*r+r<�sz=TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnly.__next__N)r(r3r4r<r*r*r*r+�NextOnly�sr=)r%r�rr`r�rHrG�iterr-r-r�r/r1r,r9rCr�r�rar�)r)r$rxr%r=r*r*r+�
test_Iterator�s"'
/$$
/z"TestOneTrickPonyABCs.test_Iteratorc
Cs�Gdd�d�}Gdd�d�}Gdd�d�}dddd	d
dfgit�tf�tg�|�|�|�g}xI|D]A}|j|t�|jtt|�t�tt|���q�WGdd
�d
�}Gdd�dt�}dd�}|�dd��|�|�g}	xY|	D]Q}|j|t	�|j|t�|j
tt|�t�tt|���q0W|jtdd�|�}
|j|
t|
��|j|
j
d�t|
��|jd|
j
d��|j|
j��|jt|
jt�|jtd|
jttd��|jt|
jt��Gdd�dt�}|jt|�j�Gdd�dt�}|jt|�j�dS)Nc@sFeZdZdd�Zdd�Zdd�Zdddd	�ZdS)
z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1cSs|S)Nr*)r)r*r*r+r7�sz=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__iter__cSsdS)Nr*)r)r*r*r+r<�sz=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__next__cSsdS)Nr*)r)r*r*r+r"�sz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.closeNcSsdS)Nr*)r)rrrr*r*r+r�sz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.throw)r(r3r4r7r<r"rr*r*r*r+�NonGen1�sr@c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2cSs|S)Nr*)r)r*r*r+r7�sz=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__iter__cSsdS)Nr*)r)r*r*r+r<�sz=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__next__cSsdS)Nr*)r)r*r*r+r"�sz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.closecSs|S)Nr*)r)rr*r*r+r�sz9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.sendN)r(r3r4r7r<r"rr*r*r*r+�NonGen2�srAc@s:eZdZdd�Zdd�Zdddd�ZdS)z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3cSsdS)Nr*)r)r*r*r+r"�sz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.closecSs|S)Nr*)r)rr*r*r+r�sz9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.sendNcSsdS)Nr*)r)rrrr*r*r+r�sz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.throw)r(r3r4r"rrr*r*r*r+�NonGen3�srBr�g��Q�	@y�?r;r�c@sReZdZdd�Zdd�Zdd�Zdd�Zd	d	d
d�Zd	S)z0TestOneTrickPonyABCs.test_Generator.<locals>.GencSs|S)Nr*)r)r*r*r+r7�sz9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__iter__cSsdS)Nr*)r)r*r*r+r<�sz9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__next__cSsdS)Nr*)r)r*r*r+r"�sz6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.closecSs|S)Nr*)r)rr*r*r+r�sz5TestOneTrickPonyABCs.test_Generator.<locals>.Gen.sendNcSsdS)Nr*)r)rrrr*r*r+r�sz6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.throw)r(r3r4r7r<r"rrr*r*r*r+�Gen�s
rCcs4eZdZdd�Zdd�fdd�Z�S)z7TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGencSs|S)Nr*)r)rr*r*r+r�sz<TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.sendNcst�j|||�dS)N)rr)r)rrr)rr*r+r�sz=TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.throw)r(r3r4rrr*r*)rr+�
MinimalGen�srDcss	dVdS)Nr6r*r*r*r*r+r�sz0TestOneTrickPonyABCs.test_Generator.<locals>.gencssdVS)Nr*r*r*r*r+r��sz5TestOneTrickPonyABCs.test_Generator.<locals>.<lambda>rrr7z^huhu$Zhuhuc@s(eZdZdd�Zdd�ZdS)z8TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClosecSs|S)Nr*)r)rr*r*r+r	sz=TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.sendcWs
t�dS)N)r�)r)r�r*r*r+r
sz>TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.throwN)r(r3r4rrr*r*r*r+�FailOnClosesrEc@s(eZdZdd�Zdd�ZdS)z@TestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExitcSs|S)Nr*)r)rr*r*r+rszETestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.sendcWsdS)Nr*)r)r�r*r*r+rszFTestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.throwN)r(r3r4rrr*r*r*r+�IgnoreGeneratorExitsrF)r%r>r�rr`r�rHrGr�rrar�rLr�nextrAZassertIsNoner"rhr�rZassertRaisesRegex�
StopIteration�RuntimeError)
r)r@rArBr$rxrCrDrr%ZmgenrErFr*r*r+�test_Generator�s<!*
/$
/	z#TestOneTrickPonyABCs.test_Generatorc
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)Nr*r*r*r*r+r�sz1TestOneTrickPonyABCs.test_Sized.<locals>.<lambda>css|]}|VqdS)Nr*)r�rxr*r*r+r�sz2TestOneTrickPonyABCs.test_Sized.<locals>.<genexpr>�__len__)r�rr`r�rHrGr-r-r�r/r%r,r1r9rCr�r�rar�r�)r)r$rxr%r*r*r+�
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)Nr*r*r*r*r+r�(sz5TestOneTrickPonyABCs.test_Container.<locals>.<lambda>css|]}|VqdS)Nr*)r�rxr*r*r+r�)sz6TestOneTrickPonyABCs.test_Container.<locals>.<genexpr>ro)r�rr`r�rHrGr-r-r�r/r%r,r1r9rCr�rar�r�)r)r$rxr%r*r*r+�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�r;cssdVS)Nr*r*r*r*r+r�;sz4TestOneTrickPonyABCs.test_Callable.<locals>.<lambda>css|]}|VqdS)Nr*)r�rxr*r*r+r�<sz5TestOneTrickPonyABCs.test_Callable.<locals>.<genexpr>cSsdS)Nr*r*r*r*r+r�As�__call__)r%r�rr`r�rHrGr!r�rDr/�appendr�rar�r�)r)r$rxr%r*r*r+�
test_Callable8s 
/		
/z"TestOneTrickPonyABCs.test_CallablecCsixbttttttfD]H}Gdd�d|�}|jt||��|jtt	|��qWdS)Nc@seZdZdS)z7TestOneTrickPonyABCs.test_direct_subclassing.<locals>.CN)r(r3r4r*r*r*r+rrNsrr)
rrrrrrrar�r`r!)r)rqrrr*r*r+�test_direct_subclassingLsz,TestOneTrickPonyABCs.test_direct_subclassingcCsyxrttttttfD]X}Gdd�d�}|jt||�|j�|j	|�|j
t||��qWdS)Nc@seZdZdZdS)z1TestOneTrickPonyABCs.test_registration.<locals>.CN)r(r3r4r�r*r*r*r+rrUsrr)rrrrrrr`r�r(r#ra)r)rqrrr*r*r+�test_registrationSs

z&TestOneTrickPonyABCs.test_registrationN)r(r3r4r&r'r/r2r6r:r?rJrLrMrPrQrRr*r*r*r+r�s2AGrc@s[eZdZfdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�WithSetcCst|�|_dS)N)r%�data)r)�itr*r*r+r�]szWithSet.__init__cCs
t|j�S)N)rDrT)r)r*r*r+rK`szWithSet.__len__cCs
t|j�S)N)r>rT)r)r*r*r+r7cszWithSet.__iter__cCs
||jkS)N)rT)r)�itemr*r*r+rofszWithSet.__contains__cCs|jj|�dS)N)rT�add)r)rVr*r*r+rWiszWithSet.addcCs|jj|�dS)N)rT�discard)r)rVr*r*r+rXlszWithSet.discardN)	r(r3r4r�rKr7rorWrXr*r*r*r+rS[srSc@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)S)*�TestCollectionABCscCs�x=ttgD]/}|j|�t�|jt|t��q
W|jtddd�Gdd�dt�}|j|��dS)Nror7rKc@s4eZdZdd�Zdd�Zdd�ZdS)z*TestCollectionABCs.test_Set.<locals>.MySetcSsdS)NFr*)r)rxr*r*r+ro{sz7TestCollectionABCs.test_Set.<locals>.MySet.__contains__cSsdS)Nrr*)r)r*r*r+rK}sz2TestCollectionABCs.test_Set.<locals>.MySet.__len__cSs
tg�S)N)r>)r)r*r*r+r7sz3TestCollectionABCs.test_Set.<locals>.MySet.__iter__N)r(r3r4rorKr7r*r*r*r+�MySetzsrZ)r%r,r�rrar�r�r)r)�samplerZr*r*r+�test_SetuszTestCollectionABCs.test_SetcCsLGdd�dt�}|�|�}}|jt|�t|�k�dS)Nc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z8TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSetcSsdddg|_dS)Nr6r7r;)�contents)r)r*r*r+r��szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__init__cSs
||jkS)N)r])r)rxr*r*r+ro�szETestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__contains__cSs
t|j�S)N)rDr])r)r*r*r+rK�sz@TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__len__cSs
t|j�S)N)r>r])r)r*r*r+r7�szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__iter__cSs
|j�S)N)�_hash)r)r*r*r+r��szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__hash__N)r(r3r4r�rorKr7r�r*r*r*r+�OneTwoThreeSet�s
r_)rrar.)r)r_r#r$r*r*r+�
test_hash_Set�sz TestCollectionABCs.test_hash_SetcCsjGdd�dt�}|d	�}|d
�}|d�}|j|j|��|j|j|��dS)Nc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z5TestCollectionABCs.test_isdisjoint_Set.<locals>.MySetcSs
||_dS)N)r])r)�itrr*r*r+r��sz>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__init__cSs
||jkS)N)r])r)rxr*r*r+ro�szBTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__contains__cSs
t|j�S)N)r>r])r)r*r*r+r7�sz>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__iter__cSstdd�|jD��S)NcSsg|]}|�qSr*r*)r�rxr*r*r+r��s	zQTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__.<locals>.<listcomp>)rDr])r)r*r*r+rK�sz=TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__N)r(r3r4r�ror7rKr*r*r*r+rZ�srZr6r7r;r�r?�)r6r7r;)r�r?rb)r6r?rb)rra�
isdisjointr`)r)rZ�s1�s2�s3r*r*r+�test_isdisjoint_Set�s	z&TestCollectionABCs.test_isdisjoint_SetcCs�Gdd�dt�}|d�}|d�}|d	�}|d
�}|j||k�|j||k�|j||k�|j||k�|j||k�|j||�|j||�dS)Nc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z3TestCollectionABCs.test_equality_Set.<locals>.MySetcSs
||_dS)N)r])r)rar*r*r+r��sz<TestCollectionABCs.test_equality_Set.<locals>.MySet.__init__cSs
||jkS)N)r])r)rxr*r*r+ro�sz@TestCollectionABCs.test_equality_Set.<locals>.MySet.__contains__cSs
t|j�S)N)r>r])r)r*r*r+r7�sz<TestCollectionABCs.test_equality_Set.<locals>.MySet.__iter__cSstdd�|jD��S)NcSsg|]}|�qSr*r*)r�rxr*r*r+r��s	zOTestCollectionABCs.test_equality_Set.<locals>.MySet.__len__.<locals>.<listcomp>)rDr])r)r*r*r+rK�sz;TestCollectionABCs.test_equality_Set.<locals>.MySet.__len__N)r(r3r4r�ror7rKr*r*r*r+rZ�srZr6r7r;r�)r6)r6r7)r;r�)r;r�)rrar`rAZassertNotEqual)r)rZrdrerfZs4r*r*r+�test_equality_Set�s	z$TestCollectionABCs.test_equality_SetcCsRGdd�dt�}|d�}|d	�}||@}|j||d
��dS)Nc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z5TestCollectionABCs.test_arithmetic_Set.<locals>.MySetcSs
||_dS)N)r])r)rar*r*r+r��sz>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__init__cSs
||jkS)N)r])r)rxr*r*r+ro�szBTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__contains__cSs
t|j�S)N)r>r])r)r*r*r+r7�sz>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__iter__cSstdd�|jD��S)NcSsg|]}|�qSr*r*)r�rxr*r*r+r��s	zQTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__.<locals>.<listcomp>)rDr])r)r*r*r+rK�sz=TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__N)r(r3r4r�ror7rKr*r*r*r+rZ�srZr6r7r;r�r?)r6r7r;)r;r�r?)r;)rrA)r)rZrdrerfr*r*r+�test_arithmetic_Set�s
	
z&TestCollectionABCs.test_arithmetic_SetcCsr|jt�t�|jttt��|jt�t�|jttt��|jtddddd�dS)Nror7rKrWrX)	r�r%rrar�r�r,r`r�)r)r*r*r+�test_MutableSet�sz"TestCollectionABCs.test_MutableSetcCs<td�}|td�M}|jt|�td��dS)N�abcdZcdefZcd)rSrAr%)r)r�r*r*r+�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}t|�|_dS)N)r%�	_MySet__s)r)rCr*r*r+r��sz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__init__cSs
||jkS)N)rm)r)rXr*r*r+ro�sz>TestCollectionABCs.test_issue_4920.<locals>.MySet.__contains__cSs
t|j�S)N)r>rm)r)r*r*r+r7�sz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__iter__cSs
t|j�S)N)rDrm)r)r*r*r+rK�sz9TestCollectionABCs.test_issue_4920.<locals>.MySet.__len__cSs#||jk}|jj|�|S)N)rmrW)r)rX�resultr*r*r+rW�sz5TestCollectionABCs.test_issue_4920.<locals>.MySet.addcSs#||jk}|jj|�|S)N)rmrX)r)rXrnr*r*r+rX�sz9TestCollectionABCs.test_issue_4920.<locals>.MySet.discardcSsdtt|��S)Nz	MySet(%s))rGr/)r)r*r*r+�__repr__�sz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__repr__)r(r3r4r�r�ror7rKrWrXror*r*r*r+rZ�s	rZr?�+r7r6)rrArf)r)rZr�r*r*r+�test_issue_4920�sz"TestCollectionABCs.test_issue_4920cCs�t�}ttd��}t|�}||8}|j||�t|�}||N}|j||�t|�}||M}|j||�||O}|j||�dS)Nr�)rSrMrA)r)�emptyZfullr�r*r*r+�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)NFr*)r)rxr*r*r+roszHTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__contains__cSsdS)Nrr*)r)r*r*r+rKszCTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__len__cSs
tg�S)N)r>)r)r*r*r+r7szDTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__iter__N)r(r3r4rorKr7r*r*r*r+�MyComparableSetsrtc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z>TestCollectionABCs.test_issue16373.<locals>.MyNonComparableSetcSsdS)NFr*)r)rxr*r*r+ro
szKTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__contains__cSsdS)Nrr*)r)r*r*r+rKszFTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__len__cSs
tg�S)N)r>)r)r*r*r+r7szGTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__iter__cSstS)N)�NotImplemented)r)rxr*r*r+rszETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__le__cSstS)N)ru)r)rxr*r*r+rszETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__lt__N)r(r3r4rorKr7rrr*r*r*r+�MyNonComparableSet	s
rv)rr`ra)r)rtrvZcsZncsr*r*r+�test_issue16373�s		z"TestCollectionABCs.test_issue16373cCs |jt|�t|��dS)N)ZassertSetEqualr%)r)rdrer*r*r+�
assertSameSetsz TestCollectionABCs.assertSameSetcWCs�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��||
kWdQRX|jt��||kWdQRX|jt��||	kWdQRX|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|jt��||
kWdQRX|jt��||kWdQRX|jt��||	kWdQRX|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|jt��||
kWdQRX|jt��||kWdQRX|jt��||	kWdQRX|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|jt��||
kWdQRX|jt��||kWdQRX|jt��||	kWdQRX|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|_x-|D]%}||jkr|jj|�qWdS)N)rTrO)r)�elements�elemr*r*r+r�#s	
zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__init__cSs
||jkS)N)rT)r)rzr*r*r+ro(szYTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__contains__cSs
t|j�S)N)r>rT)r)r*r*r+r7*szUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__iter__cSs
t|j�S)N)rDrT)r)r*r*r+rK,szTTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__len__cSsdj|j�S)Nz	Set({!r}))r'rT)r)r*r*r+ro.szUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__repr__N)r(r3r4r�ror7rKror*r*r*r+�ListSet"s
r{r<ZbcdZabcdeZabccbaZbcddcbZ
abcdeedcba)rr%r/rxrar`rhr�)r)r{Zr1Zr2Zr3�f1�f2Zf3�l1�l2�l3�targetZ
fwd_targetZ
rev_targetr*r*r+�(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)Nror7rKrnc@s4eZdZdd�Zdd�Zdd�ZdS)z2TestCollectionABCs.test_Mapping.<locals>.MyMappingcSsdS)Nrr*)r)r*r*r+rK�sz:TestCollectionABCs.test_Mapping.<locals>.MyMapping.__len__cSs
t�dS)N)r�)r)r�r*r*r+rn�sz>TestCollectionABCs.test_Mapping.<locals>.MyMapping.__getitem__cSs
tf�S)N)r>)r)r*r*r+r7�sz;TestCollectionABCs.test_Mapping.<locals>.MyMapping.__iter__N)r(r3r4rKrnr7r*r*r*r+�	MyMapping�sr�)r1r�rrar�r�r)r)r[r�r*r*r+�test_Mapping�szTestCollectionABCs.test_MappingcCs`x:tgD]/}|j|�t�|jt|t��q
W|jtdddddd�dS)Nror7rKrn�__setitem__�__delitem__)r1r�rrar�r�)r)r[r*r*r+�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;)r�r;)r�r;)r�r?)r	r�r9rrrCrr%r/rA�sorted)r)Zmymapr=r*r*r+�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�r;ror7rKrn)r�r/r-r-r�rrar�rM�
memoryviewr�)r)r[r*r*r+�
test_Sequence�sz TestCollectionABCs.test_Sequencec

s,Gdd�dt�}�fdd�}x�ttfD]�}|d�}d
dgttdt|�d��}||�}x�t|�d	hBD]�}||||f�xttd
t|�d�D]Y}|||||f�x:tdt|�d�D]}	||||||	f�q�Wq�Wq�Wq5WdS)Nc@s7eZdZfdd�Zdd�Zdd�ZdS)zATestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclasscSs
||_dS)N)�seq)r)r�r*r*r+r��szJTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__init__cSs|j|S)N)r�)r)�indexr*r*r+rn�szMTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__getitem__cSs
t|j�S)N)rDr�)r)r*r*r+rK�szITestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__len__N)r(r3r4r�rnrKr*r*r*r+�SequenceSubclass�sr�cs|y|j|�}Wn6tk
rK�jt��|j|�WdQRXYn-X|j|�}�j||d||f�dS)Nz
%r.index%s)r�r�rhrA)Zseq1Zseq2Z
index_argsZexpectedZactual)r)r*r+�assert_index_same�s
zBTestCollectionABCs.test_Sequence_mixins.<locals>.assert_index_same�abracadabrai'i'r;r=i���i������r�r�)rr/r-rMrDr%)
r)r�r�ZtyZ	nativeseqZindexesZseqseqZletter�start�stopr*)r)r+�test_Sequence_mixins�s)  z'TestCollectionABCs.test_Sequence_mixinscCs�x=ttgD]/}|j|�t�|jt|t��q
Wx@tttgD]/}|j	|�t�|j
t|t��qPW|j	td�t�|j
ttt��dS)Nr;)r-r)r�r!rar�r-r/r�r�r`r�)r)r[r*r*r+�test_ByteStringsz"TestCollectionABCs.test_ByteStringc	Cs�x@tttgD]/}|j|�t�|jt|t��qWx@ttt	gD]/}|j
|�t�|jt|t��qSW|jttt��|jtddddddd�dS)Nror7rKrnr�r��insert)
r�r-r-r�r r`r�r/r)r
r�rar�)r)r[r*r*r+�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)r*r*r+r�/szXTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__init__cSs||j|<dS)N)r�)r)r�rr*r*r+r�2sz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__setitem__cSs|j|S)N)r�)r)r�r*r*r+rn5sz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__getitem__cSs
t|j�S)N)rDr�)r)r*r*r+rK8szWTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__len__cSs|j|=dS)N)r�)r)r�r*r*r+r�;sz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__delitem__cSs|jj||�dS)N)r�r�)r)r�rr*r*r+r�>szVTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.insertN)	r(r3r4r�r�rnrKr�r�r*r*r*r+�MutableSequenceSubclass.sr�rr6r7r;r�r?r�r8r9rb)r6r7r;r�)r�r8r9r�)	r rO�extendrArD�reverserf�remove�clear)r)r�Zmssr*r*r+�test_MutableSequence_mixins+s"	






z.TestCollectionABCs.test_MutableSequence_mixinsN)r(r3r4r\r`rgrhrirjrlrqrsrwrxr�r�r�r�r�r�r�r�r�r*r*r*r+rYos(�#
rYc@s(eZdZdd�Zdd�ZdS)�CounterSubclassWithSetItemcOs d|_tj|||�dS)NF)�calledrr�)r)r��kwdsr*r*r+r�Xs	z#CounterSubclassWithSetItem.__init__cCs d|_tj|||�dS)NT)r�rr�)r)rVrr*r*r+r�[s	z&CounterSubclassWithSetItem.__setitem__N)r(r3r4r�r�r*r*r*r+r�Vsr�c@s(eZdZdd�Zdd�ZdS)�CounterSubclassWithGetcOs d|_tj|||�dS)NF)r�rr�)r)r�r�r*r*r+r�as	zCounterSubclassWithGet.__init__cCsd|_tj|||�S)NT)r�rrF)r)rV�defaultr*r*r+rFds	zCounterSubclassWithGet.getN)r(r3r4r�rFr*r*r*r+r�_sr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestCounterc
Cs.td�}|j|tddddddi��|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|��q^W|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#r;r$r7r:r6rbr=rTFr�z!Counter({'a': 3, 'b': 2, 'c': 1})r?r�ZaaabbcrUrYr]r�Zaaaaffffz	Counter()r<r�r9i�i,Zcdci+iM)r#r;)r$r7)r:r6)r#r;)r$r7)r:r6)r#r;)r$r7)r:r6r����r�) rrAr�r1rrar�rD�sumr�r�r9rCrorFrG�most_commonrMr�ryrfr�rgr�rh�NotImplementedErrorr�r�r.�updater��
setdefault)r)r:r�rzZcntr*r*r+r^jst(%%%%%
1%



+zTestCounter.test_basicscCs�|jttdd�j��dg�|jttdd�j��dg�|jttdd�j��dg�|jttd�|jttff�|jttj�dS)Nr)r��iterable)r)r�)r�r�)r�N)rAr/rrCrhr�r�)r)r*r*r+�	test_init�s(((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�r�)r)r�)r�r�)r�N)rr�rAr/rCrhr�)r)r:r*r*r+�test_update�s			zTestCounter.test_updatec
s�tdj�����fdd�}|�j��|tj���|tj���xTttjd�D]?}�jd|��$|tjtj	�|���WdQRXqqW|t
t����t�}|j��||�|t���dS)Nz)which witch had which witches wrist watchcs7d|�f}�j|�|��j|��dS)Nz
copy: %s
words: %s)rJrA)�dup�msg)r)r�r*r+�check�sz'TestCounter.test_copying.<locals>.checkr6r\)
r�splitrIrRrMrNrOZsubTestrPrQrSrGr�)r)r�r\Zupdate_testr*)r)r�r+�test_copying�s*	

zTestCounter.test_copyingcCszGdd�dt�}|d�}|j�}|j||�|jt|�t|��|jt|�t|��dS)Nc@seZdZdS)z1TestCounter.test_copy_subclass.<locals>.MyCounterN)r(r3r4r*r*r*r+�	MyCounter�sr�Zslartibartfast)rrIrArDrH)r)r�r:rUr*r*r+�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)rAr�rryr%r1rC)r)r�r*r*r+�test_conversions�s
((.zTestCounter.test_conversionscCsStdddddd�}x1|D])}|j||k�|j||�q"WdS)Nr#r�r$r7r:rr�)rrarE)r)r:rzr*r*r+�"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) Nr#r�r$r7r:rrki�css$|]}|tdd�fVqdS)r7r�Nr�)r)r�rzr*r*r+r��sz7TestCounter.test_multiset_operations.<locals>.<genexpr>rYr6r]�gcss$|]}|tdd�fVqdS)r7r�Nr�)r)r�rzr*r*r+r��s�hr�r�cSstd||�S)Nr)r�)rxryr*r*r+r��sz6TestCounter.test_multiset_operations.<locals>.<lambda>cSstd||�S)Nr)r�)rxryr*r*r+r��scSstd||�S)Nr)r�)rxryr*r*r+r��scSstdt||��S)Nr)r��min)rxryr*r*r+r��scss|]}|dkVqdS)rNr*)r�rxr*r*r+r��sZabcdefr>css$|]}|tdd�fVqdS)rr7N)r)r�rzr*r*r+r�scss$|]}|tdd�fVqdS)rr7N)r)r�rzr*r*r+r�sr�r�r�)rrAr1rMr��__add__�__sub__�__or__�__and__rar�r%ryr�)
r)r:ryr�r�r�Z	counteropZnumberoprnrxZsetopZcounter_resultZ
set_resultr*r*r+�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)Nrki�css$|]}|tdd�fVqdS)r7r�Nr�)r)r�rzr*r*r+r�sz6TestCounter.test_inplace_operations.<locals>.<genexpr>rYr6r]r�rcss$|]}|tdd�fVqdS)r7r�Nr�)r)r�rzr*r*r+r�sr�r�r�r�r�)rMrr1r��__iadd__r��__isub__r��__ior__r��__iand__r�rI�idrA)r)ryr�r�r�Z
inplace_opZ
regular_opr:Zc_idZregular_resultZinplace_resultr*r*r+�test_inplace_operationss"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)0Nr#r?r$rr:rUr�rY�r�r�r6r7r;r8r]r9r�r�rb�ZaaabbcdZ	aaaabbccer)r�r�r�r�i���i����r�r�i��r�r�i���i����r�r�i��r�r�r�����)r)r�����)r�r�)r�subtractrAr/rCrhr�)r)r:r*r*r+�
test_subtract#s$-4C-:C
1		zTestCounter.test_subtractc
Cs�tdddddddddd	d
d�}|jt|
�tdddddd	d
d��|jt|�tdd��dS)
Nr#r?r$rr:rUr�rYr�r�r�r�)rrAr1)r)r:r*r*r+�
test_unary8s-2zTestCounter.test_unarycCsEtdddd�}t|�}|jd|�|jd|�dS)Nr#r7r$z'a': 2z	'b': None)rrGrE)r)r:�rr*r*r+�test_repr_nonsortable=sz!TestCounter.test_repr_nonsortablecCs/td�}t�}t||�|j|ddddddddd	di�t�}t||�|j|td
ddd
dg��td�}|j|j�|jt|�ddddddd	dddi�td�}|j|j�|jt|�ddddddd	dddi�dS)Nr�r#r?r�r7r$r:r6rU)r#r?)r$r7)r�r7)r:r6)rUr6)	r/r1rrArr�rar�r�)r)ZelemsrUrsr:r*r*r+�test_helper_functionCs	
.	
	4z TestCounter.test_helper_functionN)r(r3r4r^r�r�r�r�r�r�r�r�r�r�r�r�r*r*r*r+r�hs<	'r�cCsNtjdt�}t|tttttg}t	j
|�t	jt|�dS)Nr�)�doctestZDocTestSuite�collectionsrvrrYr�r5r"rZrun_unittestZrun_doctest)r�ZNamedTupleDocsZtest_classesr*r*r+�	test_main]s			
r��__main__r�T)>r�r�rIr��inspectr�r
rNZrandomrrr�r�r�Ztestrrr�rrrrr	r
rrr
�collections.abcrrrrrrrrrrrrrrrrrrr r!ZTestCaser"r5rurvr�rrSrYr�r�r�r�r(r*r*r*r+�<module>sR""""��;�r��		�