Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_collections.cpython-38.pyc
U

>��g�O�@s2dZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
Z
ddlZddlm
Z
ddlZddlZddlmZmZmZmZddlmZmZmZddlmZddlmZdd	lmZmZdd
lmZmZmZddlmZm Z m!Z!m"Z"m#Z#ddlm$Z$m%Z%m&Z&m'Z'dd
lm(Z(m)Z)ddlm*Z*m+Z+m,Z,m-Z-m.Z.ddlm/Z/m0Z0ddlm1Z1Gdd�dej2�Z3Gdd�dej2�Z4edd�Z5Gdd�dej2�Z6Gdd�dej2�Z7dd�Z8Gdd�de7�Z9Gdd �d e)�Z:Gd!d"�d"e7�Z;Gd#d$�d$e�Z<Gd%d&�d&e�Z=Gd'd(�d(ej2�Z>d.d)d*�Z?e@d+k�r.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�AsyncGenerator)�Hashable�Iterable�Iterator�	Generator�
Reversible)�Sized�	Container�Callable�
Collection)�Set�
MutableSet)�Mapping�MutableMapping�KeysView�	ItemsView�
ValuesView)�Sequence�MutableSequence)�
ByteStringc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestUserObjectscCs0|�tt|��tt|��dj|j|jd��dS)Nz&{a} should have all the methods of {b}��a�b)ZassertGreaterEqual�set�dir�format�__name__)�selfr(r)�r/�4/opt/cppython/lib/python3.8/test/test_collections.py�_superset_tests

��zTestUserObjects._superset_testcCsn|��}|�|j|j�|�|j|j�dg|_t�|�}|�|j|j�|�|j|j�|�|j|j�dS)Ni�)�copy�assertIsNot�data�assertEqual�test�assertIs)r.�objZobj_copyr/r/r0�
_copy_test)s
zTestUserObjects._copy_testcCs|�tt�dS�N)r1r
�str�r.r/r/r0�test_str_protocol6sz!TestUserObjects.test_str_protocolcCs|�tt�dSr:)r1r�listr<r/r/r0�test_list_protocol9sz"TestUserObjects.test_list_protocolcCs|�tt�dSr:)r1r	�dictr<r/r/r0�test_dict_protocol<sz"TestUserObjects.test_dict_protocolcCst�}|�d�|�|�dS)N�{)r�appendr9�r.r8r/r/r0�test_list_copy?s
zTestUserObjects.test_list_copycCst�}d|d<|�|�dS)N�abcrB)r	r9rDr/r/r0�test_dict_copyDszTestUserObjects.test_dict_copyN)
r-�
__module__�__qualname__r1r9r=r?rArErGr/r/r/r0r&s

r&c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestChainMapcCsrt�}d|d<d|d<|��}d|d<d|d<|�|jddd�ddd	�g�|�|��tdddd
����|�t|�d�dD]}|�||�q~tdddd
d���D]\}}|�|�|d
�|�q�|d=|�|jddiddd	�g�|�|��tdddd
����|�t|�d�dD]}|�||��qtdddd
d���D]\}}|�|�|d
�|��q>|�t	|�t
|�jdt
|�jdg�|��t�|�fD]|}|�||�|�|j|j�|�
||�|�
|jd|jd�t|jdd�|jdd��D]\}}|�||��q��q�ttjd�D]h}	t�t�||	��}|�||�|�|j|j�|�
||�t|j|j�D]\}}|�
|||��qp�q$t�|�tt	|��fD]V}|�||�|�|j|j�|�
||�t|j|j�D]\}}|�
|||��qސq�|��}
d|
d<|�|
jddiddiddd	�g�|�|
jjddiddd	�g�|�|
dd�|�|
jdd�dS)N�r(�r)���c�r)rOr'�r(r)rO�rF�d)r(r)rO�zz({'c': 30}, {'a': 1, 'b': 2})z({'c': 30}, {'b': 2, 'a': 1})r�)r�	new_childr5�maps�itemsr@�len�assertIn�get�repr�typer-r2r3�zipr7�range�pickle�HIGHEST_PROTOCOL�loads�dumps�deepcopy�eval�parents)r.rO�d�key�k�v�eZm1Zm2�proto�fr/r/r0�test_basicsPsj
�&
�"zTestChainMap.test_basicscCsPddd�}ddd�}t||�}|��}|�|�|�t|���t|����dS)NZbachZ	rembrandt)Zmusic�artzvan goghZcarmen)roZopera)rr2�updater5r>rX)r.ZbaselineZadjustments�cmZcombinedr/r/r0�
test_ordering�s



zTestChainMap.test_orderingcCs2|�t�jig�|�tddi�jddig�dS�NrKrL)r5rrWr<r/r/r0�test_constructor�szTestChainMap.test_constructorcCsH|�t��|�tii��|�tddii��|�tiddi��dSrs)�assertFalser�
assertTruer<r/r/r0�	test_bool�szTestChainMap.test_boolc	CsGdd�dt�}|tddd�tddd��}tdddd	d
���D]\}}|�|||�q>tddddd
���D]\}}|�|�|d�|�qltdddd
d
���D]\}}|�||k|�q�|�|�dd�d|�|�|�dd�d�|�|��d�|�t��|��W5QRXdS)Nc@seZdZdd�ZdS)z2TestChainMap.test_missing.<locals>.DefaultChainMapcSsdS)N��r/�r.rhr/r/r0�__missing__�sz>TestChainMap.test_missing.<locals>.DefaultChainMap.__missing__N)r-rHrIrzr/r/r/r0�DefaultChainMap�sr{rKrLr'rMrNrPrx�r(r)rOrg�MTFr(i�i��r)rL)	rr@rXr5r[�pop�popitem�assertRaises�KeyError)r.r{rgrirjr/r/r0�test_missing�szTestChainMap.test_missingcCs�ttddd�t�tdddd�tdd	d
ddd
�t�tddd�tdddddd�t��}|�d�|�d�|�t|���dddddddd d!d"g
�dS)#Nr�8[)�j�h�'�\�
)�irgrO����	�Mix)rmr)�grOr��7�)rkr)rKrLrR�rU�r(r)rOrgrk�Z
abcdefghij)r(rK)r)r�)rOr�)rgr�)rkr�)rmr�)r�r�)r�r�)r�r�)r�r)rrr5�joinr>rX�r.rgr/r/r0�test_order_preservation�s*

�
��z$TestChainMap.test_order_preservationcCsVttddd�tddd��}|�t|�tdddd��|�t|���tdddd��dS)NrKrLr'rMrNrPrQ)rr@r5rXr�r/r/r0�test_dict_coercion�szTestChainMap.test_dict_coercioncCs�t�}d|d<d|d<ddd�}|�|�}|�|jddd�ddd�g�|�||jd	�Gd
d�dt�}t�}d|d<d|d<|ddd�}|�|�}|�||jd	�dD]}|�||�q�tdddd
d���D]\}}|�|�|d
�|�q�dS)z#Tests for changes for issue #16613.rKr(rLr)rMrNrPr'rc@seZdZdd�Zdd�ZdS)z.TestChainMap.test_new_child.<locals>.lowerdictcSst|t�r|��}t�||�Sr:)�
isinstancer;�lowerr@�__getitem__ryr/r/r0r��s
z:TestChainMap.test_new_child.<locals>.lowerdict.__getitem__cSst|t�r|��}t�||�Sr:)r�r;r�r@�__contains__ryr/r/r0r��s
z;TestChainMap.test_new_child.<locals>.lowerdict.__contains__N)r-rHrIr�r�r/r/r/r0�	lowerdict�sr�rFrS)r(�B�CrTN)	rrVr5rWr7r@rZrXr[)r.rO�mrgr�rhrirjr/r/r0�test_new_child�s$



zTestChainMap.test_new_childN)r-rHrIrnrrrtrwr�r�r�r�r/r/r/r0rJNs<rJ�TestNTzx y zc@s�eZdZdd�Zdd�Zdd�Ze�ej	j
dkd�d	d
��Ze�ej	j
dkd�dd��Ze
je�ej	j
dkd�d
d���Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Ze
jd%d&��Zd'S)(�TestNamedTuplecCsJtdd�}|�|jd�|�|jd�|�|jt�|�|jtj�|�|jd�|�t	tdd�|�t	tdd�|�t	tdd�|�t	td	d
�|�t	td	d�|�t	td	d�|�t	td	d
�|�t	td	d�tdd�tdd�tdd�}|�
dt|j��tdd�}|�
dt|j��|�t|j
dg�|�t|j
dddg�dS)N�Point�x yr/��x�yzabc%zefg ghi�classZ9abcrFzefg g%hiz	abc classz	8efg 9ghiz_efg ghizefg efg ghiZPoint0zx1 y2�_za b c�ntzthe quick brown foxzu')�theZquick�r��!)rr5r-�	__slots__rHr��tuple�_fieldsr��
ValueError�assertNotInr\�	TypeError�_make)r.r�r�r/r/r0�test_factory�s,




zTestNamedTuple.test_factoryc	Cs�tdddd�}|�|jddd��|�|dd	�d
�|�|d�d�|�|�d�tdddd�}|�|jd
di�|�|dd	�d
�|�|d�d�tdddd�}|�|ji�|�|dd	�d
�|�t��|d�W5QRX|�t��|�W5QRX|�t��|dd	d�W5QRX|�t��tdddd�}W5QRX|�t��tdddd�}W5QRX|�t��tdddd�}W5QRXtdddd�}|�|ji�|�|jjd�|�|dd�d�|�t��|d�W5QRXtddddgd�}|�|jddd��|�|jjd�|�|dd	�d
�|�|d�d�|�|�d�tddtddg�d�}|�|jddd��|�|jjd�|�|dd	�d
�|�|d�d�|�|�d�dS)Nr�r�)�
rM)�defaultsr�rMr�rKrL�rKrL)rKrM)rMr�r/rR�r�rMrNF)	rr5�_field_defaultsr�r��assertIsNone�__new__�__defaults__�iter�r.r�r/r/r0�
test_defaultssTzTestNamedTuple.test_defaultsc	Cs�tdd�}|dd�}|�t��d|_W5QRX|�t��
|`W5QRX|�t��d|d<W5QRX|�t��|d=W5QRX|�|jd�|�|dd�dS)Nr�r�r�r�r�r)rr��AttributeErrorr�r�r5�r.r��pr/r/r0�
test_readonlyCs

zTestNamedTuple.test_readonlyrLz)Docstrings are omitted with -O2 and abovecCs0tdd�}|�|jd�d|_|�|jd�dS)Nr�r�zPoint(x, y)z2D point)rr5�__doc__r�r/r/r0�test_factory_doc_attrQs
z$TestNamedTuple.test_factory_doc_attrcCsxtdd�}|�|jjd�|�|jjd�d|j_|�|jjd�tdd�}|�|jjd�d|j_|�|jjd�dS)Nr�r�zAlias for field number 0zAlias for field number 1zdocstring for Point.x�Vectorzdocstring for Vector.x)rr5r�r�r�)r.r�r�r/r/r0�test_field_docYs

zTestNamedTuple.test_field_doccCsHtdddg�}tdddg�}|�|jj|jj�|�|jj|jj�dS)N�Pr��n�Q�or�)rr7r�r�r�r�r�)r.r�r�r/r/r0�test_field_doc_reusegsz#TestNamedTuple.test_field_doc_reusecCsNddgddgddgddgdd	gd
dgfD] \}}|�td|d
d�j|�q(dS)N)�efgzg%hi)r��_1)rFr��rFr�)Z8efgZ9ghi)Z_0r�)rFZ_efg)rFr�r��ghi)rFr�Z_2r�)rFr�r�)rFr�r��NTT��rename)r5rr�)r.�specZrenamedr/r/r0�test_name_fixerps�zTestNamedTuple.test_name_fixercCs$tdddgtd�}|�|jt�dS)Nr�r�r���module)r�collectionsr5rH�r.r�r/r/r0�test_module_parameter{sz$TestNamedTuple.test_module_parameterc	Cs�tdd�}|dd�}|�||ddd��|�||ddd��|�||ddd��|�||d��|�||ftddd���|�t|d	�|�t|d	d
d�|�t��|d	d
d�W5QRX|�t��|d	d
�W5QRX|�t|�d�|�dt|��|�||�ddg��|�|j	d�|�|j
d	d
�d�|�|��tddd��z|j
d	d
d�Wntk
�rtYnX|�
d�tdd�}|ddd�}|�t|�d�tdd�}|ddd�}|�t|�d�dS)Nr�r�r�r�r�)r�)r�r��r�r�rKrLrR)ZXXXr��r�zPoint(x=11, y=22)�__weakref__)rKr�)r��errorz%Did not detect an incorrect fieldnamezx, y)rr5r@r�r�r\r�r+r�r��_replace�_asdictr�Z_failr�r/r/r0�
test_instances<




zTestNamedTuple.test_instancec	Cstdd�}|dd�}|�|t�|�|d�|�t|�d�|�t|�ddg�|�t|�d�|�t|�d�|\}}|�|||f�|�|d|dfd�|�t��|dW5QRX|�|d	d�|�t|�td��|�|j	|�|�|j
|�|�t��|jW5QRXdS)
Nr�r�r�r�r�rrKrR���)
r�assertIsInstancer�r5r>�maxr��
IndexError�hashr�r�r�rT)r.r�r�r�r�r/r/r0�test_tupleness�s&

zTestNamedTuple.test_tuplenessc
Cstdd�}|�|�d�|�|�g�d�|�t|��d�|�|���i�|�|�jd�tdd�}|�|d�d�|�|�dg�d�|�|d�jd�|�t|d��d	�|�|d���ddi�|�|d�jd
d�d�|�|d�jd�d
}tt	dd�t
|�D���}t|�}td|�}|t
|��}|�|tt
|���|�|�t
|��tt
|���t
|�D]\}}|�t||�|��qjt|�|��}	tt|t
|���}
|�|	|
�|jft|dd
f|ddfg��}tt
|��}d
|d<d|d<|�|t|��|�|jt|��dS)N�Zeror�r/zZero()�DotrgrK�rKzDot(d=1)rx)rg)rxi�css&|]}d�dd�td�D��VqdS)r�cSsg|]}ttj��qSr/)r�string�
ascii_letters)�.0r�r/r/r0�
<listcomp>�s�z;TestNamedTuple.test_odd_sizes.<locals>.<genexpr>.<listcomp>r�N)r�r_)r�r�r/r/r0�	<genexpr>�s�
�z0TestNamedTuple.test_odd_sizes.<locals>.<genexpr>�Big����*)rr5r�r\r�r�rgr�r>r*r_rYr��	enumerate�getattrr@r^)
r.r�r�r��namesr�r)�pos�namergZ
d_expectedZb2Zb2_expectedr/r/r0�test_odd_sizes�sF


�

$zTestNamedTuple.test_odd_sizescCs�tdddd�}tfD]j}t|d�}t|d�}td|jd�D]@}||||��}|�||�|�|j|j�|�d	|||��q<qdS)
Nr�rMrN�r�r�rTrbrcr�rKsOrderedDict)r�r`r�r_rar5r�r�)r.r�r�rbrc�protocol�qr/r/r0�test_pickle�s


zTestNamedTuple.test_picklecCsHtdddd�}tjtjfD](}||�}|�||�|�|j|j�qdS)Nr�rMrNr�)r�r2rdr5r�)r.r�Zcopierr�r/r/r0�	test_copy�s
zTestNamedTuple.test_copyc�Cs�tdd�}|ddddd�}|�|d�|jd	d
ddd
d�}|�|d�ddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�h�}td|�}ttt|���}||�}|�||�|ftt|j|���}|�||�|�	|�}|�||�t
|�|�|��tt|j|���|�	|�}td�d΄|D��}|jftt|j|���}|�||�|�|jt|��|�|��|�dS)�N�Tz"itemgetter property self cls tuplerKrLrRr�rU)rKrLrRr�rUr�rMrN�(�2)�
itemgetter�propertyr.�clsr�)r�rMrNrrZAliasZAtr�ZBuildZBypassZCreateZEncounteredZExpectedZFieldZForZGotZHelperZ
IronPythonZJythonr�ZMakeZModifyZNoterr�ZReturnZReturnsZTyper�ZUsedZValidater�Z	Variablesr(Z
accessible�addZadded�allZalsoZan�arg_list�argsZ	argumentsZ
automatically�beZbuild�builtinsZbutZbyZcannot�class_namespace�classmethodrr��convertr2�createdZcreationrgZ	debuggingZdefinedr@Z
dictionary�docZ	docstringZ
docstringsZ	duplicateZeffectZeitherr�Zenvironmentsr�Zexample�execrm�	f_globalsZfield�field_names�fields�	formatted�frame�functionZ	functionsZgenerater[�getterZgotZgreaterZhas�helpZidentifiers�indexZ	indexable�instanceZinstantiateZ	interningZ
introspection�isidentifierr�r�iterabler��keyword�keywords�kwdsrYZliker>�maprW�messageZmetadata�method�methodsr��module_nameZmustr��namedr�namedtuple_r��	namespaceZneeds�newZnicely�
num_fieldsZnumber�objectZof�operator�optionr�Z
particularr`ZpicklingZplainrZ
positionalr�rZregularr��replaceZ	replacingr\�repr_fmtZrepresentation�resultZreuse_itemgetter�s�seenr.Zsequencer*ZsideZ	specified�split�start�
startswith�stepr;r��strings�subclass�sysZtargetsZthanr�Ztheir�this�tor��	tuple_newr]�typenameZ
underscoreZ
unexpected�unpackZupZuse�used�userZvalid�values�variable�verbose�where�whichZworkr�r�rTr^css|]}|dVqdS)r�Nr/)r�rjr/r/r0r�,sz5TestNamedTuple.test_name_conflicts.<locals>.<genexpr>)
rr5r�r�r_rYr@r^r�r�r\r��__getnewargs__)r.r�tZnewt�wordsrBZ	newvaluesr/r/r0�test_name_conflicts�s�
�


z"TestNamedTuple.test_name_conflictscCsFtdd�}|�t|d��d�Gdd�d|�}|�t|d��d�dS)N�Ar�rKzA(x=1)c@seZdZdS)z#TestNamedTuple.test_repr.<locals>.BN�r-rHrIr/r/r/r0r�8sr�zB(x=1))rr5r\)r.rKr�r/r/r0�	test_repr4s
zTestNamedTuple.test_reprc	Csr|�t��tdddgd�}W5QRXtdddgdd�}|�|jd�|�t��tdddgd	d�}W5QRXdS)
Nr�r�r�TrF�defr�r�F)r�r�rr5r�r�r/r/r0�test_keyword_only_arguments<sz*TestNamedTuple.test_keyword_only_argumentscCsXGdd�dtdddg��}|dd�}|�|��tdd	g��d
|_|�|jdd
i�dS)Nc@seZdZdS)zBTestNamedTuple.test_namedtuple_subclass_issue_24931.<locals>.PointNrLr/r/r/r0r�Gsr�Z_Pointr�r�rRr�)r�rR)r�r�rU�w)rr5r�rrP�__dict__)r.r�r(r/r/r0�$test_namedtuple_subclass_issue_24931Fs

z3TestNamedTuple.test_namedtuple_subclass_issue_24931cs�tdd���dd�}|�t��j��|��j�|�d�|�t�jj	|d�|�t�jj
|�G�fdd�dt�}|dd	g�}|�|jd�|�|jd	�dS)
Nr�r�r�r�r�cs0eZdZe�e��j��Ze�e��j��ZdS)z6TestNamedTuple.test_field_descriptor.<locals>.NewPointN)r-rHrIr`rbrcr�r�r/�r�r/r0�NewPointYsrTrKrL)
rrv�inspectZisdatadescriptorr�r5�__get__r�r��__set__�
__delete__r�r�)r.r�rTZnpr/rSr0�test_field_descriptorPs

z$TestNamedTuple.test_field_descriptorN)r-rHrIr�r�r��unittestZskipIfr:�flags�optimizer�r�rZcpython_onlyr�r�r�r�r�r�r�r�rJrMrOrRrYr/r/r/r0r��s:2�
�
�&&@

r�c@s$eZdZdd�Zdd�Zdd�ZdS)�ABCTestCasecGs\t�|dd��}td|f|�}|�|D].}|��}||=td|f|�}|�t||�q(dS)NcWsdS�Nrr/�r2r	r/r/r0�<lambda>j�z7ABCTestCase.validate_abstract_methods.<locals>.<lambda>r�)r@�fromkeysr]r2r�r�)r.rFr�Zmethodstubsr�r�Zstubsr/r/r0�validate_abstract_methodsisz%ABCTestCase.validate_abstract_methodscCsxdd�}tdtfddi�}t|||�|�|�|�|�t||��tdtfddi�}|�|�|�|�t||��dS)NcWsdSr^r/r_r/r/r0r`xraz1ABCTestCase.validate_isinstance.<locals>.<lambda>r��__hash__)r]r+�setattrr�rv�
issubclass�assertNotIsInstanceru)r.rFr�Zstubr�r/r/r0�validate_isinstancewszABCTestCase.validate_isinstancec	Cs�ddddddddd	g	}i}|D]}d
|d
}tt|�||<qGdd�d�}|��D]>\}}t||�shqT|�}|||�|�|jd
t|�|f�qTdS)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_sider<r/r/r0�__init__�sz7ABCTestCase.validate_comparison.<locals>.Other.__init__cSs
d|_dS�NTrt�r.�otherr/r/r0�__eq__�sz5ABCTestCase.validate_comparison.<locals>.Other.__eq__N)r-rHrIrvrz�__lt__�__gt__�__le__�__ge__�__ne__�__ror__�__rand__�__rxor__�__rsub__r/r/r/r0�Other�sr�zRight side not called for %s.%s)r�r,rX�hasattrrvrur])r.rZopsZ	operators�opr�r�ryr/r/r0�validate_comparison�s



�zABCTestCase.validate_comparisonN)r-rHrIrcrhr�r/r/r/r0r]gsr]ccs
dVdSr:r/r/r/r/r0�	_test_gen�sr�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)"�TestOneTrickPonyABCscCs.dd�}tjdd��}dd�}Gdd�d�}Gd	d
�d
t�}dt�|�t�g}|D].}|�|t�|�tt	|�t�t
t	|���qR|�|�g}|D]$}|�|t�|�tt	|�t��q�|�}	|�|	t�|�}	|�|	t�|	�
�Gdd�d�}
t�|
�|�t|
�t��|�t|
t��d}
t��dS)
Ncss
dVdSr:r/r/r/r/r0�gen�sz0TestOneTrickPonyABCs.test_Awaitable.<locals>.gencss
dVdSr:r/r/r/r/r0�coro�sz1TestOneTrickPonyABCs.test_Awaitable.<locals>.coroc�sdSr:r/r/r/r/r0�new_coro�sz5TestOneTrickPonyABCs.test_Awaitable.<locals>.new_coroc@seZdZdd�ZdS)z0TestOneTrickPonyABCs.test_Awaitable.<locals>.Barcss
dVdSr:r/r<r/r/r0�	__await__�sz:TestOneTrickPonyABCs.test_Awaitable.<locals>.Bar.__await__N�r-rHrIr�r/r/r/r0�Bar�sr�cs.eZdZdd�Zd�fdd�	Zdd�Z�ZS)	z8TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCorocSs|Sr:r/�r.�valuer/r/r0�send�sz=TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.sendNcst��|||�dSr:��super�throw�r.�typ�val�tb��	__class__r/r0r��sz>TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.throwcss
dVdSr:r/r<r/r/r0r��szBTestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.__await__)NN�r-rHrIr�r�r��
__classcell__r/r/r�r0�MinimalCoro�sr�c@seZdZdS)z5TestOneTrickPonyABCs.test_Awaitable.<locals>.CoroLikeNrLr/r/r/r0�CoroLike�sr�)�types�	coroutiner�intr+rgrrurfr]r\r�rv�close�registerr�r�
gc_collect�r.r�r�r�r�r��non_samplesr��samplesrOr�r/r/r0�test_Awaitable�s2
 
z#TestOneTrickPonyABCs.test_AwaitablecCsHdd�}tjdd��}dd�}Gdd�d�}Gd	d
�d
t�}dt�|�t�|�g}|D].}|�|t�|�tt|�t�t	t|���qV|�g}|D]$}|�
|t�|�tt|�t��q�|�}	|�|	t�|�}	|�
|	t�|	�
�Gdd�d�}
|�t|
�t��|�t|
t��Gd
d�d�}
|�t|
�t��|�t|
t��dS)Ncss
dVdSr:r/r/r/r/r0r��sz0TestOneTrickPonyABCs.test_Coroutine.<locals>.gencss
dVdSr:r/r/r/r/r0r��sz1TestOneTrickPonyABCs.test_Coroutine.<locals>.coroc�sdSr:r/r/r/r/r0r��sz5TestOneTrickPonyABCs.test_Coroutine.<locals>.new_coroc@seZdZdd�ZdS)z0TestOneTrickPonyABCs.test_Coroutine.<locals>.Barcss
dVdSr:r/r<r/r/r0r��sz:TestOneTrickPonyABCs.test_Coroutine.<locals>.Bar.__await__Nr�r/r/r/r0r��sr�cs.eZdZdd�Zd�fdd�	Zdd�Z�ZS)	z8TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCorocSs|Sr:r/r�r/r/r0r��sz=TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.sendNcst��|||�dSr:r�r�r�r/r0r��sz>TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.throwcss
dVdSr:r/r<r/r/r0r��szBTestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.__await__)NNr�r/r/r�r0r��sr�c@s.eZdZdd�Zd
dd�Zdd�Zdd	�ZdS)�5TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLikecSsdSr:r/r�r/r/r0r�s�:TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.sendNcSsdSr:r/r�r/r/r0r�sz;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.throwcSsdSr:r/r<r/r/r0r�	s�;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.closecSsdSr:r/r<r/r/r0r�s�?TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.__await__)NN)r-rHrIr�r�r�r�r/r/r/r0r�s
r�c@s$eZdZdd�Zdd�Zdd�ZdS)r�cSsdSr:r/r�r/r/r0r�sr�cSsdSr:r/r<r/r/r0r�sr�cSsdSr:r/r<r/r/r0r�sr�N)r-rHrIr�r�r�r/r/r/r0r�s)r�r�rr�r+rgrurfr]r\r�rrvr�r�r�r/r/r0�test_Coroutine�s2
 	z#TestOneTrickPonyABCs.test_CoroutinecCst�t�t�t�g}|D].}|�|t�|�tt|�t�t	t|���qdt
�t�t�t
�t�t�t
tttt�g}|D].}|�|t�|�tt|�t�t	t|���qv|�tt�Gdd�dt�}|�t|��d�|�tt
|��|�td�|�td�dS)NcseZdZ�fdd�Z�ZS)z-TestOneTrickPonyABCs.test_Hashable.<locals>.Hcs
t���Sr:)r�rdr<r�r/r0rd-sz6TestOneTrickPonyABCs.test_Hashable.<locals>.H.__hash__)r-rHrIrdr�r/r/r�r0�H,sr�rrd)�	bytearrayr>r*r@rgrrurfr]r\r��float�complexr;r��	frozensetr+�bytesr�rvr�r�r5r�rcrh)r.r�r�r�r�r/r/r0�
test_Hashables4 � z"TestOneTrickPonyABCs.test_HashablecCs�Gdd�d�}|�t|�t��|�t|t��dtgg}|D].}|�|t�|�tt|�t�tt|���q>|�	td�|�
td�dS)Nc@seZdZdd�ZdS)z3TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AIcSs|Sr:r/r<r/r/r0�	__aiter__6sz=TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AI.__aiter__N)r-rHrIr�r/r/r/r0�AI5sr�r�)rvr�rrfr+rgrur]r\rcrh)r.r�r�r�r/r/r0�test_AsyncIterable4s
 z'TestOneTrickPonyABCs.test_AsyncIterablecCs�Gdd�d�}|�t|�t��|�t|t��dtgg}|D].}|�|t�|�tt|�t�tt|���q>Gdd�d�}|�|�t�|�	tdd�dS)Nc@seZdZdd�Zdd�ZdS)z3TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AIcSs|Sr:r/r<r/r/r0r�Dsz=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__aiter__c�st�dSr:��StopAsyncIterationr<r/r/r0�	__anext__Fsz=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__anext__N)r-rHrIr�r�r/r/r/r0r�Csr�c@seZdZdd�ZdS)z:TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnlyc�st�dSr:r�r<r/r/r0r�QszDTestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnly.__anext__N)r-rHrIr�r/r/r/r0�	AnextOnlyPsr�r�r�)
rvr�rrfr+rgrur]r\rc)r.r�r�r�r�r/r/r0�test_AsyncIteratorBs
 z'TestOneTrickPonyABCs.test_AsyncIteratorc
Cslddddg}|D].}|�|t�|�tt|�t�tt|���qt�t�t�t	�t
�t�t�t��
�t���t���t�dd�dD�g}|D].}|�|t�|�tt|�t�tt|���q�Gdd�dt�}|�t	|��g�|�tt|��|�td	�|�td	�Gd
d�d�}Gdd
�d
|�}|�t|t��|�t|�t��|�t|t��|�t|�t��dS)Nr����Q�	@��?css|]
}|VqdSr:r/�r�r�r/r/r0r�asz5TestOneTrickPonyABCs.test_Iterable.<locals>.<genexpr>r/cseZdZ�fdd�Z�ZS)z-TestOneTrickPonyABCs.test_Iterable.<locals>.Ics
t���Sr:)r��__iter__r<r�r/r0r�hsz6TestOneTrickPonyABCs.test_Iterable.<locals>.I.__iter__)r-rHrIr�r�r/r/r�r0�Igsr�r�c@seZdZdd�ZdS)z.TestOneTrickPonyABCs.test_Iterable.<locals>.ItcSstg�Sr:�r�r<r/r/r0r�praz7TestOneTrickPonyABCs.test_Iterable.<locals>.It.__iter__N�r-rHrIr�r/r/r/r0�Itosr�c@seZdZdZdS)z5TestOneTrickPonyABCs.test_Iterable.<locals>.ItBlockedNr�r/r/r/r0�	ItBlockedqsr�)rgrrurfr]r\r�r;r�r>r*r�r@�keysrXrBr�r�rvr5rcrhr�)r.r�r�r�r�r�r�r/r/r0�
test_IterableVs< � z"TestOneTrickPonyABCs.test_IterablecCs�ddddt�t�g}|D].}|�|t�|�tt|�t�tt|���qt�dd�dD�t	g�t
g�g}|D].}|�|t�|�tt|�t�tt|���qlt�t�t
�t�t�t���t���t���t�t���t���t���t�t���t���t���g}|D]0}|�|t�|�tt|�t�tt|����q|�ttt�tt��|�ttt�tt��|�ttt�tt��Gdd�dt�}|�tt
|���g�|�tt|��|�td	d
�Gdd�d�}Gd
d�d|�}|�t|t��|�t|�t��|�t|t��|�t|�t��Gdd�d�}Gdd�d|�}	Gdd�d|�}
|�t|t��|�t|�t��|�t|	t��|�t|	�t��|�t|
t��|�t|
�t��dS)Nr�r�r�css|]
}|VqdSr:r/r�r/r/r0r�sz7TestOneTrickPonyABCs.test_Reversible.<locals>.<genexpr>r/c@seZdZdd�Zdd�ZdS)z/TestOneTrickPonyABCs.test_Reversible.<locals>.RcSs
tt��Sr:�r�r>r<r/r/r0r��sz8TestOneTrickPonyABCs.test_Reversible.<locals>.R.__iter__cSs
tt��Sr:r�r<r/r/r0�__reversed__�sz<TestOneTrickPonyABCs.test_Reversible.<locals>.R.__reversed__N�r-rHrIr�r�r/r/r/r0�R�sr�r�r�c@seZdZdd�ZdS)z7TestOneTrickPonyABCs.test_Reversible.<locals>.RevNoItercSstg�Sr:��reversedr<r/r/r0r��razDTestOneTrickPonyABCs.test_Reversible.<locals>.RevNoIter.__reversed__N�r-rHrIr�r/r/r/r0�	RevNoIter�sr�c@seZdZdd�ZdS)z9TestOneTrickPonyABCs.test_Reversible.<locals>.RevPlusItercSstg�Sr:r�r<r/r/r0r��razBTestOneTrickPonyABCs.test_Reversible.<locals>.RevPlusIter.__iter__Nr�r/r/r/r0�RevPlusIter�sr�c@seZdZdd�Zdd�ZdS)z1TestOneTrickPonyABCs.test_Reversible.<locals>.RevcSstg�Sr:r�r<r/r/r0r��raz:TestOneTrickPonyABCs.test_Reversible.<locals>.Rev.__iter__cSstg�Sr:r�r<r/r/r0r��raz>TestOneTrickPonyABCs.test_Reversible.<locals>.Rev.__reversed__Nr�r/r/r/r0�Rev�sr�c@seZdZdZdS)z:TestOneTrickPonyABCs.test_Reversible.<locals>.RevItBlockedNr�r/r/r/r0�RevItBlocked�sr�c@seZdZdZdS)z;TestOneTrickPonyABCs.test_Reversible.<locals>.RevRevBlockedNr�r/r/r/r0�
RevRevBlocked�sr�)r*r�rgrrurfr]r\r�r�r�r�r;r�r>rr�rXrBrr@r�rvr#rrr5r�rcr�)r.r�r�Znon_reversiblesr�r�r�r�r�r�r�r/r/r0�test_Reversiblexs\   �"z$TestOneTrickPonyABCs.test_ReversiblecCs|dddddd�g}|D].}|�|t�|�tt|�t�tt|���qt�td�tt��dd�d	D�g}|D].}|�|t�|�tt|�t�tt|���qlt	�t
�t�t�t
�t�t�t���t���t���g
}|D].}|�|t�|�tt|�t�tt|���q�|�ttt�tt��|�ttt�tt��|�ttt�tt��|�ttt�tt��|�ttt�tt��|�ttt�tt��Gd
d�dt�}Gdd
�d
|�}|�tt|���g�|�tt|��|�tt	|��|�tt|��|�tt|���g�|�tt|��|�tt	|��|�tt|��|�tddd�Gdd�d�}Gdd�d�}Gdd�d�}	|�t|t��|�t|�t��|�t|t��|�t|�t��|�t|	t��|�t|	�t��Gdd�d�}
Gdd�d�}|�t|
t��|�t|
�t��|�t|t��|�t|�t��Gdd�d�}Gdd�d|�}
|�t|
t��|�t|
�t��dS)Nr�r�r�cSsd|S)NrLr/r�r/r/r0r`�raz6TestOneTrickPonyABCs.test_Collection.<locals>.<lambda>racss|]
}|VqdSr:r/r�r/r/r0r��sz7TestOneTrickPonyABCs.test_Collection.<locals>.<genexpr>r/c@s$eZdZdd�Zdd�Zdd�ZdS)z1TestOneTrickPonyABCs.test_Collection.<locals>.ColcSs
tt��Sr:r�r<r/r/r0r��sz:TestOneTrickPonyABCs.test_Collection.<locals>.Col.__iter__cSsdSr^r/r<r/r/r0�__len__�sz9TestOneTrickPonyABCs.test_Collection.<locals>.Col.__len__cSsdSrsr/�r.�itemr/r/r0r��sz>TestOneTrickPonyABCs.test_Collection.<locals>.Col.__contains__N�r-rHrIr�r�r�r/r/r/r0�Col�sr�c@seZdZdS)z4TestOneTrickPonyABCs.test_Collection.<locals>.DerColNrLr/r/r/r0�DerCol�sr�r�r�r�c@seZdZdd�Zdd�ZdS)z7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoItercSsdSr^r/r<r/r/r0r��raz?TestOneTrickPonyABCs.test_Collection.<locals>.ColNoIter.__len__cSsdSrsr/r�r/r/r0r��razDTestOneTrickPonyABCs.test_Collection.<locals>.ColNoIter.__contains__N)r-rHrIr�r�r/r/r/r0�	ColNoIter�sr�c@seZdZdd�Zdd�ZdS)z7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoSizecSstg�Sr:r�r<r/r/r0r��raz@TestOneTrickPonyABCs.test_Collection.<locals>.ColNoSize.__iter__cSsdSrsr/r�r/r/r0r��razDTestOneTrickPonyABCs.test_Collection.<locals>.ColNoSize.__contains__N)r-rHrIr�r�r/r/r/r0�	ColNoSize�sr�c@seZdZdd�Zdd�ZdS)z7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoContcSstg�Sr:r�r<r/r/r0r��raz@TestOneTrickPonyABCs.test_Collection.<locals>.ColNoCont.__iter__cSsdSr^r/r<r/r/r0r��raz?TestOneTrickPonyABCs.test_Collection.<locals>.ColNoCont.__len__N)r-rHrIr�r�r/r/r/r0�	ColNoCont�sr�c@s eZdZdd�Zdd�ZdZdS)z7TestOneTrickPonyABCs.test_Collection.<locals>.SizeBlockcSstg�Sr:r�r<r/r/r0r��raz@TestOneTrickPonyABCs.test_Collection.<locals>.SizeBlock.__iter__cSsdSrsr/r<r/r/r0r��razDTestOneTrickPonyABCs.test_Collection.<locals>.SizeBlock.__contains__N)r-rHrIr�r�r�r/r/r/r0�	SizeBlock�sr�c@s eZdZdd�Zdd�ZdZdS)z7TestOneTrickPonyABCs.test_Collection.<locals>.IterBlockcSsdSr^r/r<r/r/r0r��raz?TestOneTrickPonyABCs.test_Collection.<locals>.IterBlock.__len__cSsdSrwr/r<r/r/r0r��razDTestOneTrickPonyABCs.test_Collection.<locals>.IterBlock.__contains__N)r-rHrIr�r�r�r/r/r/r0�	IterBlock�sr�c@s$eZdZdd�Zdd�Zdd�ZdS)z5TestOneTrickPonyABCs.test_Collection.<locals>.ColImplcSs
tt��Sr:r�r<r/r/r0r��sz>TestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__iter__cSsdSr^r/r<r/r/r0r��sz=TestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__len__cSsdSrsr/r�r/r/r0r�szBTestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__contains__Nr�r/r/r/r0�ColImpl�sr�c@seZdZdZdS)z4TestOneTrickPonyABCs.test_Collection.<locals>.NonColN)r-rHrIr�r/r/r/r0�NonColsr�)rgrrurfr]r\r�r�r�r*r�r@r�r;r�r>r�rXrBr�rvr#rrrrr5r�rcr�)r.Znon_collectionsr�Znon_col_iterablesr�r�r�r�r�r�r�r�r�r�r/r/r0�test_Collection�sv � � �
�z$TestOneTrickPonyABCs.test_Collectionc
Cs dddddddgit�g
}|D].}|�|t�|�tt|�t�tt|���qtt��tt	��tt
��tt��tt��tt��tt
��tt����tt����tt����t�dd�dD�g}|D].}|�|t�|�tt|�t�tt|���q�|�td	d
�Gdd�d�}|�|�t�dS)
Nr�r�r�rar�r/css|]
}|VqdSr:r/r�r/r/r0r�sz5TestOneTrickPonyABCs.test_Iterator.<locals>.<genexpr>�__next__r�c@seZdZdd�ZdS)z4TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnlycss
dVdS�NrKr/r<r/r/r0r�sz=TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnly.__next__N)r-rHrIr�r/r/r/r0�NextOnlysr�)r*rgrrurfr]r\r�r�r;r�r>r@r�r�rXrBr�r�rvrc)r.r�r�r�r�r/r/r0�
test_Iterator	s, � z"TestOneTrickPonyABCs.test_Iteratorc
Cs�Gdd�d�}Gdd�d�}Gdd�d�}dddd	d
ddgit�td�tg�|�|�|�g}|D].}|�|t�|�tt|�t�tt|���q`Gd
d�d�}Gdd�dt�}dd�}|�dd��|�|�g}	|	D]:}|�|t	�|�|t�|�
tt|�t�tt|���q�|�tdd�|�}
|�|
t|
��|�|
�
d�t|
��|�d|
�
d��|�|
���|�t|
jt�|�td|
jttd��|�t|
jt��Gdd�dt�}|�t|�j�Gdd�dt�}|�t|�j�dS)Nc@s.eZdZdd�Zdd�Zdd�Zd
dd	�ZdS)z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1cSs|Sr:r/r<r/r/r0r�$raz=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__iter__cSsdSr:r/r<r/r/r0r�%raz=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__next__cSsdSr:r/r<r/r/r0r�&raz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.closeNcSsdSr:r/r�r/r/r0r�'raz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.throw)NN)r-rHrIr�r�r�r�r/r/r/r0�NonGen1#sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2cSs|Sr:r/r<r/r/r0r�*raz=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__iter__cSsdSr:r/r<r/r/r0r�+raz=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__next__cSsdSr:r/r<r/r/r0r�,raz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.closecSs|Sr:r/r�r/r/r0r�-raz9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.sendN)r-rHrIr�r�r�r�r/r/r/r0�NonGen2)sr�c@s&eZdZdd�Zdd�Zddd�ZdS)	z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3cSsdSr:r/r<r/r/r0r�0raz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.closecSs|Sr:r/r�r/r/r0r�1raz9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.sendNcSsdSr:r/r�r/r/r0r�2raz:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.throw)NN)r-rHrIr�r�r�r/r/r/r0�NonGen3/sr�r�r�r�rar�r/c@s6eZdZdd�Zdd�Zdd�Zdd�Zdd
d�Zd	S)
z0TestOneTrickPonyABCs.test_Generator.<locals>.GencSs|Sr:r/r<r/r/r0r�<raz9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__iter__cSsdSr:r/r<r/r/r0r�=raz9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__next__cSsdSr:r/r<r/r/r0r�>raz6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.closecSs|Sr:r/r�r/r/r0r�?raz5TestOneTrickPonyABCs.test_Generator.<locals>.Gen.sendNcSsdSr:r/r�r/r/r0r�@raz6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.throw)NN)r-rHrIr�r�r�r�r�r/r/r/r0�Gen;s
r�cs&eZdZdd�Zd�fdd�	Z�ZS)z7TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGencSs|Sr:r/r�r/r/r0r�Csz<TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.sendNcst��|||�dSr:r�r�r�r/r0r�Esz=TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.throw)NN)r-rHrIr�r�r�r/r/r�r0�
MinimalGenBsr�css
dVdSr�r/r/r/r/r0r�Hsz0TestOneTrickPonyABCs.test_Generator.<locals>.gencssdVSr:r/r/r/r/r0r`Kraz5TestOneTrickPonyABCs.test_Generator.<locals>.<lambda>r�r�rLz^huhu$Zhuhuc@seZdZdd�Zdd�ZdS)z8TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClosecSs|Sr:r/r�r/r/r0r�^raz=TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.sendcWst�dSr:�r��r.r	r/r/r0r�_raz>TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.throwN�r-rHrIr�r�r/r/r/r0�FailOnClose]sr�c@seZdZdd�Zdd�ZdS)z@TestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExitcSs|Sr:r/r�r/r/r0r�drazETestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.sendcWsdSr:r/r�r/r/r0r�erazFTestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.throwNr�r/r/r/r0�IgnoreGeneratorExitcsr�)r*r�rgrrurfr]r\r�rrvrcr7r��nextr5r�r�r�r�r�ZassertRaisesRegex�
StopIteration�RuntimeError)
r.r�r�r�r�r�r�r�r�r��mgenr�r�r/r/r0�test_Generator"s^�  �z#TestOneTrickPonyABCs.test_GeneratorcCsGdd�d�}Gdd�d�}Gdd�d�}dddd	d
ddgit�td�tg�|�|�|�g}|D].}|�|t�|�tt|�t�tt|���q`Gd
d�d�}Gdd�dt�}dd�}|�|�|�g}	|	D]:}|�|t	�|�|t�|�
tt|�t�tt|���q�|�tdd�dd�}
|�}|�||�
��|�|
|�d��|
|����|�d|
|�d���|�|
|����|�t��|
|�t��W5QRXGdd�dt�}|�t��|
|����W5QRXGdd�dt�}
|�t��|
|
����W5QRXdS)Nc@s.eZdZdd�Zdd�Zdd�Zd
dd	�ZdS)z:TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1cSs|Sr:r/r<r/r/r0r�krazDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.__aiter__cSsdSr:r/r<r/r/r0r�lrazDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.__anext__cSsdSr:r/r<r/r/r0�aclosemrazATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.acloseNcSsdSr:r/r�r/r/r0�athrownrazATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.athrow)NN)r-rHrIr�r�r�r�r/r/r/r0�NonAGen1jsr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z:TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2cSs|Sr:r/r<r/r/r0r�qrazDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.__aiter__cSsdSr:r/r<r/r/r0r�rrazDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.__anext__cSsdSr:r/r<r/r/r0r�srazATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.aclosecSs|Sr:r/r�r/r/r0�asendtraz@TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.asendN)r-rHrIr�r�r�r�r/r/r/r0�NonAGen2psr�c@s&eZdZdd�Zdd�Zddd�ZdS)	z:TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3cSsdSr:r/r<r/r/r0r�wrazATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.aclosecSs|Sr:r/r�r/r/r0r�xraz@TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.asendNcSsdSr:r/r�r/r/r0r�yrazATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.athrow)NN)r-rHrIr�r�r�r/r/r/r0�NonAGen3vsr�r�r�r�rar�r/c@s6eZdZdd�Zdd�Zdd�Zdd�Zdd
d�Zd	S)
z5TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.GencSs|Sr:r/r<r/r/r0r��raz?TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.__aiter__c�sdSr:r/r<r/r/r0r��raz?TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.__anext__c�sdSr:r/r<r/r/r0r��raz<TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.aclosec�s|Sr:r/r�r/r/r0r��raz;TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.asendNc�sdSr:r/r�r/r/r0r��raz<TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.athrow)NN)r-rHrIr�r�r�r�r�r/r/r/r0r��s
r�cs&eZdZdd�Zd�fdd�	Z�ZS)z=TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGenc�s|Sr:r/r�r/r/r0r��szCTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGen.asendNc�st��|||�IdHdSr:)r�r�r�r�r/r0r��szDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGen.athrow)NN)r-rHrIr�r�r�r/r/r�r0�MinimalAGen�sr�cSs
dVdSr�r/r/r/r/r0r��sz5TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.genr�r�c
SsXd}z|�d�Wqtk
rP}z |jr4|jdnd}WY�qTW5d}~XYqXq|Sr^)r�r�r	)r�r1�exr/r/r0�	run_async�sz;TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.run_asyncrLc@seZdZdd�Zdd�ZdS)z=TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClosec�s|Sr:r/r�r/r/r0r��razCTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClose.asendc�st�dSr:r�r�r/r/r0r��razDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClose.athrowN�r-rHrIr�r�r/r/r/r0r��sr�c@seZdZdd�Zdd�ZdS)zETestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExitc�s|Sr:r/r�r/r/r0r��razKTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExit.asendc�sdSr:r/r�r/r/r0r��razLTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExit.athrowNrr/r/r/r0r��sr�)r*r�rgrrurfr]r\r�rrvrcr7r�r�r�r5r�r�r�r�r�r�)r.r�r�r�r�r�r�r�r�r�r�r�r�r�r/r/r0�test_AsyncGeneratorisZ�  z(TestOneTrickPonyABCs.test_AsyncGeneratorcCs�ddddt�dd�dD�g}|D].}|�|t�|�tt|�t�tt|���q t�t�t	�t
�t�t�t
�t
���t
���t
���g
}|D].}|�|t�|�tt|�t�tt|���q�|�td�|�td�dS)Nr�r�r�css|]
}|VqdSr:r/r�r/r/r0r��sz2TestOneTrickPonyABCs.test_Sized.<locals>.<genexpr>r/r�)r�rgrrurfr]r\r�r;r�r>r*r�r@r�rXrBr�rvrcrh�r.r�r�r�r/r/r0�
test_Sized�s,� � zTestOneTrickPonyABCs.test_Sizedc
Cs�ddddt�dd�dD�g}|D].}|�|t�|�tt|�t�tt|���q t�t�t	�t
�t�t�t
�t
���t
���g	}|D].}|�|t�|�tt|�t�tt|���q�|�td�|�td�dS)Nr�r�r�css|]
}|VqdSr:r/r�r/r/r0r��sz6TestOneTrickPonyABCs.test_Container.<locals>.<genexpr>r/r�)r�rgrrurfr]r\r�r;r�r>r*r�r@r�rXr�rvrcrhrr/r/r0�test_Container�s*� � z#TestOneTrickPonyABCs.test_Containerc
Cs�dddddddgit�t�dd�dD�g}|D].}|�|t�|�tt|�t�tt|���q.d	d
�ttt	t
tjgjg}|D].}|�
|t�|�tt|�t�tt|���q||�td�|�td�dS)Nr�r�r�r�rar/css|]
}|VqdSr:r/r�r/r/r0r��sz5TestOneTrickPonyABCs.test_Callable.<locals>.<genexpr>cSsdSr:r/r/r/r/r0r`�raz4TestOneTrickPonyABCs.test_Callable.<locals>.<lambda>�__call__)r*r�rgrrurfr]r\r�r+rYr>rCr�rvrcrhrr/r/r0�
test_Callable�s4� � z"TestOneTrickPonyABCs.test_CallablecCsLtttttttfD]4}Gdd�d|�}|�t||��|�	tt
|��qdS)Nc@seZdZdS)z7TestOneTrickPonyABCs.test_direct_subclassing.<locals>.CNrLr/r/r/r0r��sr�)rrrrrrrrvrfrur��r.r�r�r/r/r0�test_direct_subclassing�sz,TestOneTrickPonyABCs.test_direct_subclassingcCsXtttttttfD]@}Gdd�d�}|�t||�|j	�|�
|�|�t||��qdS)Nc@seZdZdZdS)z1TestOneTrickPonyABCs.test_registration.<locals>.CN)r-rHrIrdr/r/r/r0r��sr�)rrrrrrrrurfr-r�rvrr/r/r0�test_registration�s

z&TestOneTrickPonyABCs.test_registrationN)r-rHrIr�r�r�r�r�r�r�r�r�r�rrrrrr	r/r/r/r0r��s 2A"9XGQr�c@s>eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)�WithSetr/cCst|�|_dSr:)r*r4)r.�itr/r/r0rvszWithSet.__init__cCs
t|j�Sr:�rYr4r<r/r/r0r�szWithSet.__len__cCs
t|j�Sr:�r�r4r<r/r/r0r�	szWithSet.__iter__cCs
||jkSr:�r4r�r/r/r0r�szWithSet.__contains__cCs|j�|�dSr:)r4rr�r/r/r0rszWithSet.addcCs|j�|�dSr:)r4�discardr�r/r/r0rszWithSet.discardN)r/)	r-rHrIrvr�r�r�rrr/r/r/r0r
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!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+S),�TestCollectionABCscCs\ttfD]"}|�|�t�|�t|t��q|�tddd�Gdd�dt�}|�|��dS)Nr�r�r�c@s$eZdZdd�Zdd�Zdd�ZdS)z*TestCollectionABCs.test_Set.<locals>.MySetcSsdSrsr/�r.r�r/r/r0r�!sz7TestCollectionABCs.test_Set.<locals>.MySet.__contains__cSsdSr^r/r<r/r/r0r�#sz2TestCollectionABCs.test_Set.<locals>.MySet.__len__cSstg�Sr:r�r<r/r/r0r�%sz3TestCollectionABCs.test_Set.<locals>.MySet.__iter__N�r-rHrIr�r�r�r/r/r/r0�MySet sr)r*r�r�rrvrfrcr�)r.�samplerr/r/r0�test_SetszTestCollectionABCs.test_SetcCs8Gdd�dt�}|�|�}}|�t|�t|�k�dS)Nc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z8TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSetcSsdddg|_dS)NrKrLrR��contentsr<r/r/r0rv+szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__init__cSs
||jkSr:rrr/r/r0r�-szETestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__contains__cSs
t|j�Sr:�rYrr<r/r/r0r�/sz@TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__len__cSs
t|j�Sr:�r�rr<r/r/r0r�1szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__iter__cSs|��Sr:)�_hashr<r/r/r0rd3szATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__hash__N)r-rHrIrvr�r�r�rdr/r/r/r0�OneTwoThreeSet*s
r)rrvr�)r.rr(r)r/r/r0�
test_hash_Set)sz TestCollectionABCs.test_hash_SetcCsLGdd�dt�}|d�}|d�}|d�}|�|�|��|�|�|��dS)Nc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z5TestCollectionABCs.test_isdisjoint_Set.<locals>.MySetcSs
||_dSr:r�r.�itrr/r/r0rv:sz>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__init__cSs
||jkSr:rrr/r/r0r�<szBTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__contains__cSs
t|j�Sr:rr<r/r/r0r�>sz>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__iter__cSstdd�|jD��S)NcSsg|]}|�qSr/r/r�r/r/r0r�AszQTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__.<locals>.<listcomp>rr<r/r/r0r�@sz=TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__N�r-rHrIrvr�r�r�r/r/r/r0r9sr�rKrLrR)r�rU�)rKrUr!)rrv�
isdisjointru�r.r�s1�s2�s3r/r/r0�test_isdisjoint_Set8s	z&TestCollectionABCs.test_isdisjoint_SetcCs�Gdd�dt�}|d�}|d�}|d�}|d�}|�||k�|�||k�|�||k�|�||k�|�||k�|�||�|�||�dS)Nc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z3TestCollectionABCs.test_equality_Set.<locals>.MySetcSs
||_dSr:rrr/r/r0rvJsz<TestCollectionABCs.test_equality_Set.<locals>.MySet.__init__cSs
||jkSr:rrr/r/r0r�Lsz@TestCollectionABCs.test_equality_Set.<locals>.MySet.__contains__cSs
t|j�Sr:rr<r/r/r0r�Nsz<TestCollectionABCs.test_equality_Set.<locals>.MySet.__iter__cSstdd�|jD��S)NcSsg|]}|�qSr/r/r�r/r/r0r�QszOTestCollectionABCs.test_equality_Set.<locals>.MySet.__len__.<locals>.<listcomp>rr<r/r/r0r�Psz;TestCollectionABCs.test_equality_Set.<locals>.MySet.__len__Nrr/r/r/r0rIsrr�r�)rRr�)rrvrur5ZassertNotEqual)r.rr$r%r&Zs4r/r/r0�test_equality_SetHs	z$TestCollectionABCs.test_equality_SetcCs<Gdd�dt�}|d�}|d�}||@}|�||d��dS)Nc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z5TestCollectionABCs.test_arithmetic_Set.<locals>.MySetcSs
||_dSr:rrr/r/r0rv`sz>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__init__cSs
||jkSr:rrr/r/r0r�bszBTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__contains__cSs
t|j�Sr:rr<r/r/r0r�dsz>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__iter__cSstdd�|jD��S)NcSsg|]}|�qSr/r/r�r/r/r0r�gszQTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__.<locals>.<listcomp>rr<r/r/r0r�fsz=TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__Nrr/r/r/r0r_srr )rRr�rU)rR)rr5r#r/r/r0�test_arithmetic_Set^s
	z&TestCollectionABCs.test_arithmetic_SetcCsT|�t�t�|�ttt��|�t�t�|�ttt��|�tddddd�dS)Nr�r�r�rr)	r�r*rrvrfrgr�rurcr<r/r/r0�test_MutableSetms�z"TestCollectionABCs.test_MutableSetcCs,td�}|td�M}|�t|�td��dS)N�abcdZcdefZcd)r
r5r*�r.r2r/r/r0�test_issue_5647usz"TestCollectionABCs.test_issue_5647cCs`Gdd�dt�}ddddg}||�}|��}|�t|�t|�d�|�||�|�||�dS)Nc@sLeZdZdgZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)z1TestCollectionABCs.test_issue_4920.<locals>.MySetZ__sNcSs|dkrg}t|�|_dSr:)r*�	_MySet__s)r.rXr/r/r0rvsz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__init__cSs
||jkSr:)r.)r.rjr/r/r0r��sz>TestCollectionABCs.test_issue_4920.<locals>.MySet.__contains__cSs
t|j�Sr:)r�r.r<r/r/r0r��sz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__iter__cSs
t|j�Sr:)rYr.r<r/r/r0r��sz9TestCollectionABCs.test_issue_4920.<locals>.MySet.__len__cSs||jk}|j�|�|Sr:)r.r�r.rjr1r/r/r0r�s
z5TestCollectionABCs.test_issue_4920.<locals>.MySet.addcSs||jk}|j�|�|Sr:)r.rr/r/r/r0r�s
z9TestCollectionABCs.test_issue_4920.<locals>.MySet.discardcSsdtt|��S)Nz	MySet(%s))r\r>r<r/r/r0�__repr__�sz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__repr__)N)r-rHrIr�rvr�r�r�rrr0r/r/r/r0r}s
rrU�+rLrK)rrZassertEqualsrYr�rZ)r.rrXr2r.r/r/r0�test_issue_4920{sz"TestCollectionABCs.test_issue_4920cCs~t�}ttd��}t|�}||8}|�||�t|�}||N}|�||�t|�}||M}|�||�||O}|�||�dS)Nr�)r
r_r5)r.�empty�fullr2r/r/r0�test_issue8750�sz!TestCollectionABCs.test_issue8750cCshGdd�dt�}Gdd�dt�}|�}|�}|�||k�|�||k�|�||k�|�||k�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z;TestCollectionABCs.test_issue16373.<locals>.MyComparableSetcSsdSrsr/rr/r/r0r��szHTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__contains__cSsdSr^r/r<r/r/r0r��szCTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__len__cSstg�Sr:r�r<r/r/r0r��szDTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__iter__Nrr/r/r/r0�MyComparableSet�sr6c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z>TestCollectionABCs.test_issue16373.<locals>.MyNonComparableSetcSsdSrsr/rr/r/r0r��szKTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__contains__cSsdSr^r/r<r/r/r0r��szFTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__len__cSstg�Sr:r�r<r/r/r0r��szGTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__iter__cSstSr:��NotImplementedrr/r/r0r}�szETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__le__cSstSr:r7rr/r/r0r{�szETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__lt__N)r-rHrIr�r�r�r}r{r/r/r/r0�MyNonComparableSet�s
r9)rrurv)r.r6r9�csZncsr/r/r0�test_issue16373�sz"TestCollectionABCs.test_issue16373c	Cs�Gdd�d�}Gdd�dt�}td�}|�}||||g�}|t||d��t||d��g}|D]}|D]}|�||�qdq\|�|�|�d�|�|�|�d�|�|�|�d	�|�|�|�d�dS)
Nc@seZdZdd�ZdS)z=TestCollectionABCs.test_issue26915.<locals>.CustomEqualObjectcSsdSrsr/rxr/r/r0rz�szDTestCollectionABCs.test_issue26915.<locals>.CustomEqualObject.__eq__N)r-rHrIrzr/r/r/r0�CustomEqualObject�sr<c@s$eZdZdd�Zdd�Zdd�ZdS)z:TestCollectionABCs.test_issue26915.<locals>.CustomSequencecSs
||_dSr:��_seq�r.�seqr/r/r0rv�szCTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__init__cSs
|j|Sr:r=�r.rr/r/r0r��szFTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__getitem__cSs
t|j�Sr:)rYr>r<r/r/r0r��szBTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__len__N�r-rHrIrvr�r�r/r/r/r0�CustomSequence�srC�nanr�rrKrL)r#r�r!r"rZr5r�count)	r.r<rCrDr8r@Z
containers�	container�elemr/r/r0�test_issue26915�s �z"TestCollectionABCs.test_issue26915cCs|�t|�t|��dSr:)ZassertSetEqualr*)r.r$r%r/r/r0�
assertSameSet�sz TestCollectionABCs.assertSameSetc	Cs Gdd�dt�}td�}td�}td�}|d�}|d�}|d�}td�}td�}	td�}
||@}|�||@|�|�||@|�|�||@|�|�||	@|�||B}|�||B|�|�||B|�|�||B|�|�||	B|�||}||}
|�|||�|�|||
�|�|||�|�|||
�|�|||�|�|||
�|�||	|�|�|||
�||A}|�||A|�|�||A|�|�||A|�|�||	A|�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�t��||
kW5QRX|�t��||kW5QRX|�t��||	kW5QRX|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�t��||
kW5QRX|�t��||kW5QRX|�t��||	kW5QRX|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�t��||
kW5QRX|�t��||kW5QRX|�t��||	kW5QRX|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�t��||
kW5QRX|�t��||kW5QRX|�t��||	kW5QRX|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||
k�|�||k�|�||	k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||
k�|�||k�|�||	k�dS)	Nc@s6eZdZd
dd�Zdd�Zdd�Zdd	�Zd
d�ZdS)zLTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSetr/cSs*g|_|D]}||jkr
|j�|�q
dSr:)r4rC)r.�elementsrGr/r/r0rv�s
zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__init__cSs
||jkSr:r)r.rGr/r/r0r��szYTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__contains__cSs
t|j�Sr:r
r<r/r/r0r��szUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__iter__cSs
t|j�Sr:rr<r/r/r0r��szTTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__len__cSsd�|j�S)Nz	Set({!r}))r,r4r<r/r/r0r0�szUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__repr__N)r/)r-rHrIrvr�r�r�r0r/r/r/r0�ListSet�s

rKrFZbcdZabcdeZabccbaZbcddcbZ
abcdeedcba)rr*r>rIrvrur�r�)r.rKZr1Zr2Zr3�f1�f2Zf3�l1�l2�l3�targetZ
fwd_targetZ
rev_targetr/r/r0�(test_Set_interoperability_with_real_sets�s�	z;TestCollectionABCs.test_Set_interoperability_with_real_setscCsltfD]"}|�|�t�|�t|t��q|�tdddd�Gdd�dt�}|�|��|�tt	|��dS)Nr�r�r�r�c@s$eZdZdd�Zdd�Zdd�ZdS)z2TestCollectionABCs.test_Mapping.<locals>.MyMappingcSsdSr^r/r<r/r/r0r��sz:TestCollectionABCs.test_Mapping.<locals>.MyMapping.__len__cSst�dSr:)r�)r.r�r/r/r0r��sz>TestCollectionABCs.test_Mapping.<locals>.MyMapping.__getitem__cSstd�S)Nr/r�r<r/r/r0r��sz;TestCollectionABCs.test_Mapping.<locals>.MyMapping.__iter__N)r-rHrIr�r�r�r/r/r/r0�	MyMapping�srS)
r@r�rrvrfrcr�r�r�r�)r.rrSr/r/r0�test_Mappings
�zTestCollectionABCs.test_Mappingc	CsDtfD]"}|�|�t�|�t|t��q|�tdddddd�dS)Nr�r�r�r��__setitem__�__delitem__)r@r�rrvrfrc�r.rr/r/r0�test_MutableMapping�s
�z&TestCollectionABCs.test_MutableMappingcCs�t�}d|d<|�|��t�|�|��t�|�|��t�|�|��t�t�}d|d<|��dhB}|�|t�t|�d|d<|�	t
|�ddg�t�}d|d<|��dhB}|�|t�t|�d|d<|�	|ddh�dS)NrU�red�orange�Zblue)rZrR)rYrU)r	r�r�rr rXr!r*r>r5�sorted)r.ZmymaprTr/r/r0�test_MutableMapping_subclass�s(z/TestCollectionABCs.test_MutableMapping_subclasscCs�ttttfD]"}|�|�t�|�t|t��q|�td�t�|�ttt��|�t	d�t�|�tt	t��|�ttt��|�
tdddd�dS)Nr�rar�r�r�r�)r�r>r�r;r�r#rvrfr_�
memoryviewrcrWr/r/r0�
test_Sequence�s�z TestCollectionABCs.test_Sequencec

s�Gdd�dt�}�fdd�}ttfD]�}|d�}ddgttdt|�d	��}||�}t|�d
hBD]d}||||f�tdt|�d	�D]>}|||||f�tdt|�d	�D]}	||||||	f�q�q�qdq$dS)Nc@s&eZdZd	dd�Zdd�Zdd�ZdS)
zATestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclassr/cSs
||_dSr:�r@r?r/r/r0rv�szJTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__init__cSs
|j|Sr:r`rAr/r/r0r��szMTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__getitem__cSs
t|j�Sr:)rYr@r<r/r/r0r��szITestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__len__N)r/rBr/r/r/r0�SequenceSubclass�s
racshz|j|�}Wn4tk
rB��t��|j|�W5QRXYn"X|j|�}��||d||f�dS)Nz
%r.index%s)rr�r�r5)Zseq1Zseq2Z
index_argsZexpected�actualr<r/r0�assert_index_same�s

�zBTestCollectionABCs.test_Sequence_mixins.<locals>.assert_index_same�abracadabrai���i������rRrT)r#r>r;r_rYr*)
r.rarcZtyZ	nativeseqZindexesZseqseq�letterr5�stopr/r<r0�test_Sequence_mixins�s �z'TestCollectionABCs.test_Sequence_mixinscCs~ttfD]"}|�|�t�|�t|t��qtttfD]"}|�	|�t�|�
t|t��q6|�	td�t�|�
ttt��dS)Nra)r�r�r�r%rvrfr;r>r�rgrur^rWr/r/r0�test_ByteString�sz"TestCollectionABCs.test_ByteStringc
Cs�tttfD]"}|�|�t�|�t|t��q
ttt	fD]"}|�
|�t�|�t|t��q8|�ttt��|�tddddddd�dS)Nr�r�r�r�rUrV�insert)
r�r;r�rgr$rurfr>r�r
r�rvrcrWr/r/r0�test_MutableSequence�s
�z'TestCollectionABCs.test_MutableSequencecCs4Gdd�dt�}|�}|�d�|�d�|�t|�d�|�|dd�|��|�|dd�|��|�t|�d�|�d�|�t|�d�|d	7}|�t|�d
�|�|dd�|��|�t|�d�d
}|�}|�||�|��|�|�|�|�|�t|�t|��|�t	|�t	|��dS)Nc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)zOTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclasscSs
g|_dSr:��lstr<r/r/r0rv�szXTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__init__cSs||j|<dSr:rl�r.rr�r/r/r0rU�sz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__setitem__cSs
|j|Sr:rlrAr/r/r0r��sz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__getitem__cSs
t|j�Sr:)rYrmr<r/r/r0r�szWTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__len__cSs|j|=dSr:rlrAr/r/r0rVsz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__delitem__cSs|j�||�dSr:)rmrjrnr/r/r0rjszVTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.insertN)	r-rHrIrvrUr�r�rVrjr/r/r/r0�MutableSequenceSubclass�sror)rKrLrRr�rUrRrKr�r�r!r�rNZABCD)
r$rC�extendr5rY�reverser�remove�clearr>)r.roZmssrXZmss2r/r/r0�test_MutableSequence_mixins�s2




z.TestCollectionABCs.test_MutableSequence_mixinsN)r-rHrIrrr'r(r)r*r-r2r5r;rHrIrRrTrXr]r_rhrirkrtr/r/r/r0rs,#
rc@seZdZdd�Zdd�ZdS)�CounterSubclassWithSetItemcOsd|_tj|f|�|�dSrs��calledrrv�r.r	r r/r/r0rv,sz#CounterSubclassWithSetItem.__init__cCsd|_t�|||�dSrw)rwrrU)r.rhr�r/r/r0rU/sz&CounterSubclassWithSetItem.__setitem__N)r-rHrIrvrUr/r/r/r0ru*sruc@seZdZdd�Zdd�ZdS)�CounterSubclassWithGetcOsd|_tj|f|�|�dSrsrvrxr/r/r0rv5szCounterSubclassWithGet.__init__cCsd|_t�|||�Srw)rwrr[)r.rh�defaultr/r/r0r[8szCounterSubclassWithGet.getN)r-rHrIrvr[r/r/r/r0ry3sryc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestCounterc
Cs�td�}|�|tdddd���|�|tdddd��|�|t�|�|t�|�ttt��|�ttt��|�t|�d�|�t|�	��d�|�t
|�	��dddg�|�t
|���ddd	g�|�t
|�ddd	g�|�t
|���d
ddg�|�|dd�|�|d
d�|�|�
d	�d�|�|�
d
�d�|�|�dd�d�|�|�d
d�d�|�|tdddd��|�t|�d�|�|��d
ddg�td�D]&}|�|�|�d
ddgd|���q�|�d�|���d�|dd7<|dd8<|d	=|d	=|dd8<d|d<|dd7<|�|tdddddd��|�d�|���d�|�|�d�d�|�d|�td�D]}|��\}}|�||��q�|��|�|i�|�t|�d�|�ttjd�|�tt|�|�tddd ��|jdd!�|�td"��|��|�d#�|�d$�|��|�|td%d&ddd'��|�|�dd�d�|�|dd�|�|�dd�d�|�|dd�dS)(NZabcabarRrLrKrQr!r(r)rO)r(rRr~�rOrKrTrTFr�z!Counter({'a': 3, 'b': 2, 'c': 1})rUr�Zaaabbcrgr�rkrmr����)r(r)rgrkrmZaaaaffffz	Counter()rFr')rOZPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbA aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbZcdci+r�r|) rr5r�r@rrvrfrY�sumrBr>r�rXr�r[r\�most_commonr_r�rJrr�r�rsr��NotImplementedErrorrbr�r�rprv�
setdefault)r.rOr�rGZcntr/r/r0rn>sx��

zTestCounter.test_basicscCs�|�ttdd����dg�|�ttdd����dg�|�ttdd����dg�|�ttd�|�ttdd�|�ttj�dS)Nr�r<�r.r��r�rr��rNr/)r5r>rrXr�r�rvr<r/r/r0�	test_initzszTestCounter.test_initcs,|�ttd����dddddg�|�ttd����dd	d
ddd
g�|�ttd����ddddddddddddddddddddddg�d}d}dd�tt�||��D���fdd�}t|�t|�}}|�||
��|�||��|�|||��|�|||��|�|||B��|�|||@��t|�t|�}}||7}|�||��t|�t|�}}||8}|�||��t|�t|�}}||O}|�||��t|�t|�}}||M}|�||��t|�t|�}}|�	|�|�||��t|�t|�}}|�
|�|�||��dS)Nrd�r(rUr~�r.rLr|�rgrKZxyzpdqqdpzyx)r�rL)r�rL)rTrL)r�rL)rgrL)r�rLzabracadabra simsalabimr(r)r.rOrg� r2r�r��lZaaabbcdddeefggghhijjjkklZabbcccdeefffhkkllllmmnnocSsi|]\}}||�qSr/r/)r�r�rfr/r/r0�
<dictcomp>�sz7TestCounter.test_order_preservation.<locals>.<dictcomp>cs�fdd�|D�}|t|�kS)z6Return true if the letters occur in the expected ordercsg|]}�|�qSr/r/)r�rf��orderr/r0r��szRTestCounter.test_order_preservation.<locals>.correctly_ordered.<locals>.<listcomp>)r\)r@Z	positionsr�r/r0�correctly_ordered�sz>TestCounter.test_order_preservation.<locals>.correctly_ordered)r5r>rrXrJr�r@rbrvrp�subtract)r.ZpsZqsr�r�r�r/r�r0r��sd����

z#TestCounter.test_order_preservationcCs�t�}|jdd�|�t|���dg�t�}|jdd�|�t|���dg�t�}|jdd�|�t|���dg�|�tt�jd�|�tt�jii�|�ttj�dS)Nr�r<r�r�r�r�)rrpr5r>rXr�r��r.rOr/r/r0�test_update�szTestCounter.test_updatec
s�td������fdd�}|����|t����|t����ttjd�D]2}�j|d��|t�t�	�|���W5QRXqP|t
t����t�}|���||�|t���dS)Nz)which witch had which witches wrist watchcs*d|�f}��|�|���|��dS)Nz
copy: %s
words: %s)r3r5)�dup�msg�r.rIr/r0�check�sz'TestCounter.test_copying.<locals>.checkrK)rl)
rr4r2rdr_r`raZsubTestrbrcrer\rp)r.r�rlZupdate_testr/r�r0�test_copying�s"
zTestCounter.test_copyingcCsXGdd�dt�}|d�}|��}|�||�|�t|�t|��|�t|�t|��dS)Nc@seZdZdS)z1TestCounter.test_copy_subclass.<locals>.MyCounterNrLr/r/r/r0�	MyCounter�sr�Zslartibartfast)rr2r5rYr])r.r�rOrgr/r/r0�test_copy_subclass�szTestCounter.test_copy_subclasscCsxd}|�tt|����t|��|�tt|��tt|���|�tt|��tt|�����|�tt|��t|��dS)Nz%she sells sea shells by the sea shore)r5r\rrJr*r@rXr,r/r/r0�test_conversions�s
 zTestCounter.test_conversionscCs6tdddd�}|D]}|�||k�|�||�qdS)Nr�r}rrQ)rrvrZ)r.rOrGr/r/r0�"test_invariant_for_the_in_operator�sz.TestCounter.test_invariant_for_the_in_operatorc
Cs�tdddd�t�}|�t|�tdd��d}td�D]�}ttdd	�|D���}|jd
ddd�ttd
d	�|D���}|jd
ddd�tjdd�ftjdd�ftjdd�ftjdd�ffD]\\}}|||�}|D],}	|�|||	||	�||	||	||f�q�|�	dd	�|�
�D��q�q6d}td�D]�}ttdd	�|D���}ttdd	�|D���}tjtjftjtjftjtjffD]B\}}
|||�}|
t|���t|����}|�|t�
|d
���qx�q&dS)Nr�r}rrQ�r(r+��css|]}|tdd�fVqdS�r}r�N�r�r�rGr/r/r0r��sz7TestCounter.test_multiset_operations.<locals>.<genexpr>rKr��rkrmr�css|]}|tdd�fVqdSr�r�r�r/r/r0r��s�r�r�r�cSstd||�Sr^�r�r�r/r/r0r`raz6TestCounter.test_multiset_operations.<locals>.<lambda>cSstd||�Sr^r�r�r/r/r0r`racSstd||�Sr^r�r�r/r/r0r`racSstdt||��Sr^)r��minr�r/r/r0r`racss|]}|dkVqdS)rNr/r�r/r/r0r�sZabcdefrScss|]}|tdd�fVqdS�rrLNr�r�r/r/r0r�scss|]}|tdd�fVqdSr�r�r�r/r/r0r�s)rr5r@r_rp�__add__�__sub__�__or__�__and__rvrBr*rJrb)
r.rOrJr�r�r�Z	counteropZnumberopr1r�ZsetopZcounter_result�
set_resultr/r/r0�test_multiset_operations�s<�

�


�
z$TestCounter.test_multiset_operationscCs�d}td�D]�}ttdd�|D���}|jdddd�ttd	d�|D���}|jdddd
�tjtjftjtjftjtj	ftj
tjffD]H\}}|��}t
|�}|||�}	|||�}
|�|
|	�|�t
|
�|�q�qdS)Nr+r�css|]}|tdd�fVqdSr�r�r�r/r/r0r�sz6TestCounter.test_inplace_operations.<locals>.<genexpr>rKr�rr�css|]}|tdd�fVqdSr�r�r�r/r/r0r�!sr�)r_rr@rp�__iadd__r��__isub__r��__ior__r��__iand__r�r2�idr5)r.rJr�r�r�Z
inplace_opZ
regular_oprOZc_idZregular_resultZinplace_resultr/r/r0�test_inplace_operationss"



�

z#TestCounter.test_inplace_operationsc
CsPtddddddd�}|jdd	d
dddd
d�|�|tddddddddd��tddddddd�}|�tdd	d
dddd
d��|�|tddddddddd��td�}|�d�|�|tdddddd��t�}|jdd�|�t|���dg�t�}|jdd�|�t|���dg�|�tt�jd�|�tt�jii�|�ttj�dS)Nr�rrUr��r�r(r)rOrgrkr�rKrLrerMrNi���)r(r)rOrgrkrmr�i����r}�i��r)r(r)rOrgrkrmr�r�ZaaabbcdZ	aaaabbccer�r�r�r<)r.����r�)rr�)rr�r5r>rXr�r�r�r/r/r0�
test_subtract0s$  
zTestCounter.test_subtractc	CsNtddddddd�}|�t|
�tddddd��|�t|�tdd	��dS)
Nr�rrUr�r�rr�)rOrgrkr�r�)rr5r@r�r/r/r0�
test_unaryEszTestCounter.test_unarycCs0tddd�}t|�}|�d|�|�d|�dS)NrLr'z'a': 2z	'b': None)rr\rZ)r.rOr.r/r/r0�test_repr_nonsortableJsz!TestCounter.test_repr_nonsortablec	Cs�td�}t�}t||�|�|dddddd��t�}t||�|�|tdddd	d
g��td�}|�|j�|�t|�dddddd��td�}|�|j�|�t|�dddddd��dS)NrdrUrLrK)r(r.r)rOrgr�r~r�r|r�)r(r)rOrgr.)	r>r@rr5rrurvrwry)r.Zelemsrgr�rOr/r/r0�test_helper_functionPs

�z TestCounter.test_helper_functionN)r-rHrIrnr�r�r�r�r�r�r�r�r�r�r�r�r�r/r/r/r0r{<s<9	'r{cCs8tjtd�}t|tttttg}t	j
|�t	�t|�dS)Nr�)�doctestZDocTestSuiter�r�r�rr{rJr&rZrun_unittestZrun_doctest)rDZNamedTupleDocsZtest_classesr/r/r0�	test_mainjs�
r��__main__T)rD)N)Ar�r�r2r�rUr,r`�randomrrr�r:r6rr�rZrrrrr	r
rrr
�collections.abcrrrrrrrrrrrrrrrrrrr r!r"r#r$r%ZTestCaser&rJr�r�r]r�r�r
rruryr{r�r-r/r/r/r0�<module>sh0#
w;`		0




F1le Man4ger