HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_collections.cpython-310.opt-1.pyc
o

�i�p�@sJdZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
mZmZm
Z
ddlZddlZddlmZddlZddlZddlmZmZmZmZddlmZmZmZddlmZdd	lmZdd
lmZmZddlm Z m!Z!m"Z"ddlm#Z#m$Z$m%Z%m&Z&m'Z'dd
lm(Z(m)Z)m*Z*m+Z+ddlm,Z,m-Z-ddlm.Z.m/Z/m0Z0m1Z1m2Z2ddlm3Z3m4Z4ddlm5Z5Gdd�dej6�Z7Gdd�dej6�Z8edd�Z9Gdd�dej6�Z:Gdd�dej6�Z;dd�Z<Gdd�de;�Z=Gd d!�d!e-�Z>Gd"d#�d#e;�Z?Gd$d%�d%e�Z@Gd&d'�d'e�ZAGd(d)�d)ej6�ZBd/d*d+�ZCeDd,k�r#eCd-d.�dSdS)0zUnit tests for collections.py.�N)�choice�	randrange)�product�chain�combinations)�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@�DeZdZdd�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-�r3�2/usr/local/lib/python3.10/test/test_collections.py�_superset_test s

��zTestUserObjects._superset_testcCsn|��}|�|j|j�|�|j|j�dg|_t�|�}|�|j|j�|�|j|j�|�|j|j�dS)Ni�)�copy�assertIsNot�data�assertEqual�test�assertIs)r2�objZobj_copyr3r3r4�
_copy_test*s
zTestUserObjects._copy_testcC�|�tt�dS�N)r5r
�str�r2r3r3r4�test_str_protocol7�z!TestUserObjects.test_str_protocolcCr>r?)r5r�listrAr3r3r4�test_list_protocol:rCz"TestUserObjects.test_list_protocolcCr>r?)r5r�dictrAr3r3r4�test_dict_protocol=rCz"TestUserObjects.test_dict_protocolcCst�}|�d�|�|�dS)N�{)r�appendr=�r2r<r3r3r4�test_list_copy@s
zTestUserObjects.test_list_copycCst�}d|d<|�|�dS)N�abcrH)rr=rJr3r3r4�test_dict_copyEszTestUserObjects.test_dict_copyN)
r1�
__module__�__qualname__r5r=rBrErGrKrMr3r3r3r4r*s

r*c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestChainMapcCsjt�}d|d<d|d<|��}d|d<d|d<|�|jddd�ddd	�g�|�|��tdddd
����|�t|�d�dD]}|�||�q?tdddd
d���D]\}}|�|�|d
�|�qR|d=|�|jddiddd	�g�|�|��tdddd
����|�t|�d�dD]}|�||�q�tdddd
d���D]\}}|�|�|d
�|�q�|�t	|�t
|�jdt
|�jdg�|��t�|�fD]<}|�||�|�|j|j�|�
||�|�
|jd|jd�t|jdd�|jdd��D]
\}}|�||�q�q�ttjd�D]4}	t�t�||	��}|�||�|�|j|j�|�
||�t|j|j�D]\}}|�
|||��q4�qt�|�tt	|��fD]+}|�||�|�|j|j�|�
||�t|j|j�D]\}}|�
|||��qk�qN|��}
d|
d<|�|
jddiddiddd	�g�|�|
jjddiddd	�g�|�|
dd�|�|
jdd�dS)N�r,�r-���c�r-rUr+�r,r-rU�rL�d)r,r-rU�zz({'c': 30}, {'a': 1, 'b': 2})z({'c': 30}, {'b': 2, 'a': 1})r�)r�	new_childr9�maps�itemsrF�len�assertIn�get�repr�typer1r6r7�zipr;�range�pickle�HIGHEST_PROTOCOL�loads�dumps�deepcopy�eval�parents)r2rU�d�key�k�v�eZm1Zm2�proto�fr3r3r4�test_basicsQsp
�&��
��"zTestChainMap.test_basicscCsPddd�}ddd�}t||�}|��}|�|�|�t|���t|����dS)NZbachZ	rembrandt)Zmusic�artzvan goghZcarmen)ruZopera)rr6�updater9rDr^)r2ZbaselineZadjustments�cmZcombinedr3r3r4�
test_ordering�s



 zTestChainMap.test_orderingcCs2|�t�jig�|�tddi�jddig�dS�NrQrR)r9rr]rAr3r3r4�test_constructor�s zTestChainMap.test_constructorcCsH|�t��|�tii��|�tddii��|�tiddi��dSry)�assertFalser�
assertTruerAr3r3r4�	test_bool�szTestChainMap.test_boolcCs*Gdd�dt�}|tddd�tddd��}tdddd	d
���D]\}}|�|||�qtddddd
���D]\}}|�|�|d�|�q6tdddd
d
���D]\}}|�||v|�qO|�|�dd�d|�|�|�dd�d�|�|��d�|�t��
|��Wd�dS1s�wYdS)Nc@�eZdZdd�ZdS)z2TestChainMap.test_missing.<locals>.DefaultChainMapcS�dS)N��r3�r2rnr3r3r4�__missing__��z>TestChainMap.test_missing.<locals>.DefaultChainMap.__missing__N)r1rNrOr�r3r3r3r4�DefaultChainMap��r�rQrRr+rSrTrVr��r,r-rUrm�MTFr,i�i��r-rR)	rrFr^r9ra�pop�popitem�assertRaises�KeyError)r2r�rmrorpr3r3r4�test_missing�s
"�zTestChainMap.test_missingcCs�ttddd�t�tdddd�tdd	d
ddd
�t�tddd�tdddddd�t��}|�d�|�d�|�t|���gd��dS)Nr�8[)�j�h�'�\�
)�irmrU����	�Mix)rsr-�grUr��7�)rqr-rQrRrX�r[�r,r-rUrmrq�Z
abcdefghij)
)r,rQ)r-r�)rUr�)rmr�)rqr�)rsr�)r�r�)r�r�)r�r�)r�r)rr
r9�joinrDr^�r2rmr3r3r4�test_order_preservation�s

�
�z$TestChainMap.test_order_preservationcCsBGdd�dt�}|dd�}t|�}d|_t|�|�|jd�dS)Nc@�eZdZdd�Zdd�ZdS)zKTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItemc_�"d|_tj|g|�Ri|��dS�NF)�calledr�__init__�r2�args�kwdsr3r3r4r���zTTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItem.__init__cSsd|_t�||�dS�NT)r�r�__getitem__�r2�itemr3r3r4r��szWTestChainMap.test_iter_not_calling_getitem_on_maps.<locals>.DictWithGetItem.__getitem__N)r1rNrOr�r�r3r3r3r4�DictWithGetItem�sr�rQ�r,Fz__getitem__ was called)rrr�r.r{)r2r�rmrUr3r3r4�%test_iter_not_calling_getitem_on_maps�s
z2TestChainMap.test_iter_not_calling_getitem_on_mapscCsVttddd�tddd��}|�t|�tdddd��|�t|���tdddd��dS)NrQrRr+rSrTrVrW)rrFr9r^r�r3r3r4�test_dict_coercion�s"zTestChainMap.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]}|�||�qVtdddd
d���D]\}}|�|�|d
�|�qitddd��}|jddd�}|�|jddd�ddd�g�dS)z#Tests for changes for issue #16613.rQr,rRr-rSrTrVr+rc@r�)z.TestChainMap.test_new_child.<locals>.lowerdictcS�t|t�r	|��}t�||�Sr?)�
isinstancer@�lowerrFr�r�r3r3r4r���
z:TestChainMap.test_new_child.<locals>.lowerdict.__getitem__cSr�r?)r�r@r�rF�__contains__r�r3r3r4r��r�z;TestChainMap.test_new_child.<locals>.lowerdict.__contains__N)r1rNrOr�r�r3r3r3r4�	lowerdict�sr�rLrY)r,�B�CrZN)	rr\r9r]r;rFr`r^ra)r2rU�mrmr�rnrorpr3r3r4�test_new_child�s*



"zTestChainMap.test_new_childc	CsRttddd�tddd��}ttddd	�td
dd��}|��}tddd
�}ddg}||B}|�|j|jdt|�Bg|jdd���||O}|�||�||B}|�|j|jd|Bg|jdd���|�||Bj|t|�Bg�||O}|�||�|�t��||BWd�n1s�wY|��}||O}|�|j|jdt|�Bg|jdd���Gdd�dt�}Gdd�dt�}t�t�B}|�t|�t�|�t|jd�t�t�|�B}|�t|�t�|�t|jd�t�|�t�B}|�t|�|�|�t|jd�t�t�|�B}|�t|�|�|�t|jd�t�dS)NrQrRr+rXr�)rUrm�
r[)r,rqrS)r-rmrT)r,rU)rUrX)�prrc@�eZdZdS)z3TestChainMap.test_union_operators.<locals>.SubclassN�r1rNrOr3r3r3r4�Subclass�r�c�eZdZ�fdd�Z�ZS)z6TestChainMap.test_union_operators.<locals>.SubclassRorcst��|�Sr?)�super�__ror__�r2�other��	__class__r3r4r��z>TestChainMap.test_union_operators.<locals>.SubclassRor.__ror__)r1rNrOr��
__classcell__r3r3r�r4�SubclassRor�r�)	rrFr6r9r]r��	TypeErrorr;rc)	r2Zcm1Zcm2Zcm3rm�pairs�tmpr�r�r3r3r4�test_union_operatorssD,(
�,z!TestChainMap.test_union_operatorsN)
r1rNrOrtrxrzr}r�r�r�r�r�r�r3r3r3r4rPOs<$rP�TestNTzx y zc@seZdZdd�Zdd�Zdd�Ze�ej	j
dkd�d	d
��Ze�ej	j
dkd�dd��Ze
je�ej	j
dkd�d
d���Ze
jdd��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Ze
jd'd(��Zd)d*�Zd+d,�Zd-S).�TestNamedTuplecCsHtdd�}|�|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
gd��dS)N�Point�x yr3��x�yzabc%zefg ghi�classZ9abcrLzefg g%hiz	abc classz	8efg 9ghiz_efg ghizefg efg ghiZPoint0zx1 y2�_za b c�ntzthe quick brown foxzu')�theZquick�)r�r��!)rr9r1�	__slots__rNr��tuple�_fieldsr��
ValueError�assertNotInrbr��_make)r2r�r�r3r3r4�test_factory7s,




zTestNamedTuple.test_factorycCsHtdddd�}|�|jddd��|�|dd	�d
�|�|d�d�|�|�d�tdddd�}|�|jd
di�|�|dd	�d
�|�|d�d�tdddd�}|�|ji�|�|dd	�d
�|�t��|d�Wd�n1suwY|�t��|�Wd�n1s�wY|�t��|dd	d�Wd�n1s�wY|�t��tdddd�}Wd�n1s�wY|�t��tdddd�}Wd�n1s�wY|�t��tdddd�}Wd�n1s�wYtdddd�}|�|ji�|�|jjd�|�|dd�d�|�t��|d�Wd�n	1�s5wYtddddgd�}|�|jddd��|�|jjd�|�|dd	�d
�|�|d�d�|�|�d�tddtddg�d�}|�|jddd��|�|jjd�|�|dd	�d
�|�|d�d�|�|�d�dS)Nr�r�)r�rS)�defaultsr�rSr�rQrR�rQrR)rQrS)rSr�r3rX�r�rSrTF)	rr9�_field_defaultsr�r��assertIsNone�__new__�__defaults__�iter�r2r�r3r3r4�
test_defaultsTsb
������
�zTestNamedTuple.test_defaultscCs�tdd�}|dd�}|�t��d|_Wd�n1swY|�t��
|`Wd�n1s4wY|�t��d|d<Wd�n1sMwY|�t��|d=Wd�n1sewY|�|jd�|�|dd�dS)Nr�r�r�r�r�r)rr��AttributeErrorr�r�r9�r2r�r�r3r3r4�
test_readonly�s 

��
��zTestNamedTuple.test_readonlyrRz)Docstrings are omitted with -O2 and abovecCs0tdd�}|�|jd�d|_|�|jd�dS)Nr�r�zPoint(x, y)z2D point)rr9�__doc__r�r3r3r4�test_factory_doc_attr�s
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)rr9r�r�r�)r2r�r�r3r3r4�test_field_doc�s

zTestNamedTuple.test_field_doccCsHtdddg�}tdddg�}|�|jj|jj�|�|jj|jj�dS)N�Pr��n�Q�or�)rr;r�r�r�r�r�)r2r�r�r3r3r4�test_field_doc_reuse�sz#TestNamedTuple.test_field_doc_reusecCsftdd�}|�t|j�d�|�t|j�d�d|j_d|j_|�t|j�d�|�t|j�d�dS)	Nr�r�z+_tuplegetter(0, 'Alias for field number 0')z+_tuplegetter(1, 'Alias for field number 1')zThe x-coordinatezThe y-coordinatez#_tuplegetter(0, 'The x-coordinate')z#_tuplegetter(1, 'The y-coordinate'))rr9rbr�r�r�r�r3r3r4�test_field_repr�s
zTestNamedTuple.test_field_reprcCsNddgddgddgddgdd	gd
dgfD]\}}|�td|d
d�j|�qdS)N)�efgzg%hi)r��_1)rLr��rLr�)Z8efgZ9ghi)Z_0r�)rLZ_efg)rLr�r��ghi)rLr�Z_2r)rLr�r�)rLr�r��NTT��rename)r9rr�)r2�specZrenamedr3r3r4�test_name_fixer�s��zTestNamedTuple.test_name_fixercCs$tdddgtd�}|�|jt�dS)Nrr�r���module)r�collectionsr9rN�r2rr3r3r4�test_module_parameter�sz$TestNamedTuple.test_module_parameterc
Cs�tdd�}|dd�}|�||ddd��|�||ddd��|�||ddd��|�||d��|�||ditddd����|�t|d	�|�t|d	d
d�|�t��|d	d
d�Wd�n1sewY|�t��
|d	d
�Wd�n1swY|�t|�d�|�dt|��|�||�ddg��|�|j	d�|�|j
d	d
�d�|�|��tddd��z	|j
d	d
d�Wn	ty�Ynw|�
d�tdd�}|ddd�}|�t|�d�tdd�}|ddd�}|�t|�d�dS)Nr�r�r�r�r�)r�)r�r��r�r�rQrRrX)ZXXXr��r�zPoint(x=11, y=22)�__weakref__)rQr�)r��errorz%Did not detect an incorrect fieldnamezx, yr3)rr9rFr�r�rbr�r/r�r��_replace�_asdictr�Z_failr�r3r3r4�
test_instance�sB

���


zTestNamedTuple.test_instancecCsHtdd�}|dd�}|�|t�|�|d�|�t|�d�|�t|�ddg�|�t|�d�|�t|�d�|\}}|�|||f�|�|d|dfd�|�t��|dWd�n1sdwY|�|d	d�|�t|�td��|�|j	|�|�|j
|�|�t��|jWd�dS1s�wYdS)
Nr�r�r�r�rrrQrX���)
r�assertIsInstancer�r9rD�maxr��
IndexError�hashr�r�r�rZ)r2r�r�r�r�r3r3r4�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||�|�q�t|�|��}	tt|t
|���}
|�|	|
�|jdit|dd
f|ddfg���}tt
|��}d
|d<d|d<|�|t|��|�|jt|��dS)N�Zeror�r3zZero()�DotrmrQ�rQzDot(d=1)r�)rm)r�i�css(�|]}d�dd�td�D��VqdS)r�cSsg|]}ttj��qSr3)r�string�
ascii_letters)�.0r�r3r3r4�
<listcomp>s�z;TestNamedTuple.test_odd_sizes.<locals>.<genexpr>.<listcomp>r�N)r�re)rr�r3r3r4�	<genexpr>s�
��z0TestNamedTuple.test_odd_sizes.<locals>.<genexpr>�Big����*)rr9r�rbrr�rmrrDr.rer_r��	enumerate�getattrrFrd)
r2rrr��namesr r-�pos�namermZ
d_expected�b2Zb2_expectedr3r3r4�test_odd_sizessF



�
(zTestNamedTuple.test_odd_sizescCs�tdddd�}tfD]5}t|d�}t|d�}td|jd�D] }||||��}|�||�|�|j|j�|�d	|||��qq
dS)
Nr�rSrT�r�r�rZrhrirrQsOrderedDict)r�rfr$rergr9r�r�)r2r�rrhri�protocol�qr3r3r4�test_pickle1s


��zTestNamedTuple.test_picklecCsHtdddd�}tjtjfD]}||�}|�||�|�|j|j�q
dS)Nr�rSrTr*)r�r6rjr9r�)r2r�Zcopierr,r3r3r4�	test_copy<s�zTestNamedTuple.test_copycCsFtdd�}|ddddd�}|�|d�|jd	d
ddd
d�}|�|d�hd�}td|�}ttt|���}||�}|�||�|ditt|j|����}|�||�|�	|�}|�||�t
|�|�|��tt|j|���|�	|�}tdd�|D��}|jditt|j|����}|�||�|�|jt|��|�|��|�dS)N�Tz"itemgetter property self cls tuplerQrRrXr�r[)rQrRrXr�r[r�rSrT�(�2)�
itemgetter�propertyr2�clsr�)r�rSrTr0r1>�ZalsoZpickling�targetsrZForr,rDr%�startZExpectedZMakers�helpr��classmethod�operatorZnumber�splitZ	replacingrarmZneedsZ
underscoreZEncounteredrr3Zcreationr]r��	formatted�iterableZGotZreuse_itemgetterr�Zinstantiate�keyword�whereZaddedZsideZmetadata�which�all�builtins�indexr
Z	VariablesZidentifiers�messager�r��objectZ	indexableZUsed�option�s�execr��functionZ
IronPythonZexampleZReturnsZModifyZ	argumentsrZenvironmentsZplain�convertZupZnicelyZlikeZCreateZBuild�method�getterZ	duplicaterbZ
dictionaryrdrfr'ZthanZmust�variable�
startswithr_Zregular�used�class_namespaceZgotr�newZHelperZbyZsequencer�Z
introspection�mapr#ZbuildZhasr2�methodsZNoteZType�namedr�Zeitherr��
num_fields�valuesZ
positionalZValidateZanr�r4ZbutZfield�instanceZeffectZdefinedr��add�	f_globalsrr�Z	interningZReturnZFieldrcZrepresentation�userZBypass�namedtuple_�subclass�this�verbose�field_namesZ	debugging�module_name�be�arg_list�r�sysr.�isidentifier�keywordsZtheirZvalidrF�frame�toZofr@r��repr_fmt�	tuple_newZgenerateZworkZAtZ	docstringZ
docstrings�fields�unpackrZ�	namespacer2r�Z
unexpectedZ
particularZAlias�docZJythonZcannot�stringsZ
accessibleZgreater�replaceZ	specifiedZuserZ	functions�result�seenZ
automatically�created�typename�stepr�r6css�|]}|dVqdS)r�Nr3)rrpr3r3r4r{��z5TestNamedTuple.test_name_conflicts.<locals>.<genexpr>r3)
rr9rr�rer_rFrdr�r�rbr�__getnewargs__)r2r/�tZnewt�wordsrUZ	newvaluesr3r3r4�test_name_conflictsCs,



z"TestNamedTuple.test_name_conflictscCsFtdd�}|�t|d��d�Gdd�d|�}|�t|d��d�dS)N�Ar�rQzA(x=1)c@r�)z#TestNamedTuple.test_repr.<locals>.BNr�r3r3r3r4r��r�r�zB(x=1))rr9rb)r2rzr�r3r3r4�	test_repr�s
zTestNamedTuple.test_reprcCs�|�t��tdddgd�}Wd�n1swYtdddgdd�}|�|jd�|�t��tdddgd	d�}Wd�dS1sGwYdS)
Nrr�r�TrL�defrr�F)r�r�rr9r�r	r3r3r4�test_keyword_only_arguments�s�"�z*TestNamedTuple.test_keyword_only_argumentscCsXGdd�dtdddg��}|dd�}|�|��tdd	g��d
|_|�|jdd
i�dS)Nc@r�)zBTestNamedTuple.test_namedtuple_subclass_issue_24931.<locals>.PointNr�r3r3r3r4r��r�r�Z_Pointr�r�rXr�)r�rX)r�r�r[�w)rr9rr
r~�__dict__)r2r�r,r3r3r4�$test_namedtuple_subclass_issue_24931�s

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)r1rNrOrfrhrir�r�r3�r�r3r4�NewPoint�sr�rQrR)
rr|�inspectZisdatadescriptorr�r9�__get__r�r��__set__�
__delete__r�r�)r2r�r�Znpr3r�r4�test_field_descriptor�s

z$TestNamedTuple.test_field_descriptorcCs4tdd�}|j}|�|jdi�|�|ji�dS)Nr�r3�__builtins__)rr�r9�__globals__r�)r2r<�new_funcr3r3r4�test_new_builtins_issue_43102�s
z,TestNamedTuple.test_new_builtins_issue_43102cCstdd�}|�|jd�dS)Nr�r�r�)rr9�__match_args__r�r3r3r4�test_match_args�s
zTestNamedTuple.test_match_argsN)r1rNrOr�r�r��unittestZskipIfrc�flags�optimizer�r�rZcpython_onlyr�r�rr
rrr)r-r.ryr{r}r�r�r�r�r3r3r3r4r�5sD2�
�
�
&&@


r�c@�$eZdZdd�Zdd�Zdd�ZdS)�ABCTestCasecGs\t�|dd��}td|f|�}|�|D]}|��}||=td|f|�}|�t||�qdS)NcWr�Nrr3�rFr�r3r3r4�<lambda>��z7ABCTestCase.validate_abstract_methods.<locals>.<lambda>r�)rF�fromkeysrcr6r�r�)r2rLr%Zmethodstubsr�r'Zstubsr3r3r4�validate_abstract_methods�s�z%ABCTestCase.validate_abstract_methodscCsxdd�}tdtfddi�}t|||�|�|�|�|�t||��tdtfddi�}|�|�|�|�t||��dS)NcWrr�r3r�r3r3r4r��r�z1ABCTestCase.validate_isinstance.<locals>.<lambda>r��__hash__)rcrD�setattrrr|�
issubclass�assertNotIsInstancer{)r2rLr'Zstubr�r3r3r4�validate_isinstance�szABCTestCase.validate_isinstancecCs�gd�}i}|D]}d|d}tt|�||<qGdd�d�}|��D]\}}t||�s-q#|�}|||�|�|jdt|�|f�q#dS)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|_dSr���
right_siderAr3r3r4r���
z7ABCTestCase.validate_comparison.<locals>.Other.__init__cSs
d|_dSr�r�r�r3r3r4�__eq__�sz5ABCTestCase.validate_comparison.<locals>.Other.__eq__N)r1rNrOr�r��__lt__�__gt__�__le__�__ge__�__ne__r��__rand__�__rxor__�__rsub__r3r3r3r4�Other�sr�zRight side not called for %s.%s)r$r9r^�hasattrr|r�rc)r2rV�opsZ	operators�opr'r�r�r3r3r4�validate_comparison�s



��zABCTestCase.validate_comparisonN)r1rNrOr�r�r�r3r3r3r4r��sr�cc��dVdSr?r3r3r3r3r4�	_test_gen���
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)"�TestOneTrickPonyABCscCs:dd�}tjdd��}dd�}Gdd�d�}Gd	d
�d
t�}|�td�dt�|�t�g}|D]}|�|t�|�t	t
|�t�tt
|���q/|�|�g}|D]}|�|t�|�
t	t
|�t��qO|�}	|�|	t�|�}	|�|	t�|	��Gdd
�d
�}
t�|
�|�
t|
�t��|�
t	|
t��d}
t��dS)Ncsr�r?r3r3r3r3r4�genr�z0TestOneTrickPonyABCs.test_Awaitable.<locals>.gencsr�r?r3r3r3r3r4�coro��
z1TestOneTrickPonyABCs.test_Awaitable.<locals>.coroc���dSr?r3r3r3r3r4�new_coro��z5TestOneTrickPonyABCs.test_Awaitable.<locals>.new_coroc@r~)z0TestOneTrickPonyABCs.test_Awaitable.<locals>.Barcsr�r?r3rAr3r3r4�	__await__r�z:TestOneTrickPonyABCs.test_Awaitable.<locals>.Bar.__await__N�r1rNrOr�r3r3r3r4�Barr�r�c�.eZdZdd�Zd�fdd�	Zdd�Z�ZS)	z8TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCorocS�|Sr?r3�r2�valuer3r3r4�sendr�z=TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.sendNc�t��|||�dSr?�r��throw�r2�typ�val�tbr�r3r4r��z>TestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.throwcsr�r?r3rAr3r3r4r�r�zBTestOneTrickPonyABCs.test_Awaitable.<locals>.MinimalCoro.__await__�NN�r1rNrOr�r�r�r�r3r3r�r4�MinimalCoro�r�r�c@r�)z5TestOneTrickPonyABCs.test_Awaitable.<locals>.CoroLikeNr�r3r3r3r4�CoroLike-�r�)�types�	coroutinerr�r�intrDr�r{r�rcrbrr|�close�registerr�r�
gc_collect�r2r�r�r�r�r��non_samplesr��samplesrUr�r3r3r4�test_Awaitables4
 
z#TestOneTrickPonyABCs.test_AwaitablecCsXdd�}tjdd��}dd�}Gdd�d�}Gd	d
�d
t�}|�tddd
�dt�|�t�|�g}|D]}|�|t�|�tt	|�t�t
t	|���q3|�g}|D]}|�|t�|�
tt	|�t��qQ|�}	|�|	t�|�}	|�|	t�|	��Gdd�d�}
|�
t|
�t��|�
t|
t��Gdd�d�}
|�t|
�t��|�t|
t��dS)Ncsr�r?r3r3r3r3r4r�5r�z0TestOneTrickPonyABCs.test_Coroutine.<locals>.gencsr�r?r3r3r3r3r4r�8r�z1TestOneTrickPonyABCs.test_Coroutine.<locals>.coroc�r�r?r3r3r3r3r4r�<r�z5TestOneTrickPonyABCs.test_Coroutine.<locals>.new_coroc@r~)z0TestOneTrickPonyABCs.test_Coroutine.<locals>.Barcsr�r?r3rAr3r3r4r�@r�z:TestOneTrickPonyABCs.test_Coroutine.<locals>.Bar.__await__Nr�r3r3r3r4r�?r�r�cr�)	z8TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCorocSr�r?r3r�r3r3r4r�Dr�z=TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.sendNcr�r?r�r�r�r3r4r�Fr�z>TestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.throwcsr�r?r3rAr3r3r4r�Hr�zBTestOneTrickPonyABCs.test_Coroutine.<locals>.MinimalCoro.__await__r�r�r3r3r�r4r�Cr�r�r�r�r�c@s.eZdZdd�Zd
dd�Zdd�Zdd	�ZdS)�5TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLikecS�dSr?r3r�r3r3r4r�br��:TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.sendNcSr�r?r3r�r3r3r4r�dr�z;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.throwcSr�r?r3rAr3r3r4r�fr��;TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.closecSr�r?r3rAr3r3r4r�hr��?TestOneTrickPonyABCs.test_Coroutine.<locals>.CoroLike.__await__r�)r1rNrOr�r�r�r�r3r3r3r4r�as

r�c@r�)r�cSr�r?r3r�r3r3r4r�nr�r�cSr�r?r3rAr3r3r4r�pr�r�cSr�r?r3rAr3r3r4r�rr�r�N)r1rNrOr�r�r�r3r3r3r4r�m�)r�r�rr�r�rDr�r{r�rcrbrrr|r�r�r�r3r3r4�test_Coroutine4s4
 	z#TestOneTrickPonyABCs.test_CoroutinecCst�t�t�t�g}|D]}|�|t�|�tt|�t�t	t|���qdt
�t�t�t
�t�t�t
tttt�g}|D]}|�|t�|�tt|�t�t	t|���q;|�tt�Gdd�dt�}|�t|��d�|�tt
|��|�td�|�td�dS)Ncr�)z-TestOneTrickPonyABCs.test_Hashable.<locals>.Hc�
t���Sr?)r�r�rAr�r3r4r��r�z6TestOneTrickPonyABCs.test_Hashable.<locals>.H.__hash__)r1rNrOr�r�r3r3r�r4�H�r�r�rr�)�	bytearrayrDr.rFr�rr{r�rcrbr��float�complexr@r��	frozensetrD�bytesrr|r�r�r9rr�r�)r2r�r�r�r�r3r3r4�
test_Hashablews& � z"TestOneTrickPonyABCs.test_HashablecCs�Gdd�d�}|�t|�t��|�t|t��dtgg}|D]}|�|t�|�tt|�t�tt|���q|�	td�|�
td�dS)Nc@r~)z3TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AIcS�|Sr?r3rAr3r3r4�	__aiter__�r�z=TestOneTrickPonyABCs.test_AsyncIterable.<locals>.AI.__aiter__N)r1rNrOr�r3r3r3r4�AI�r�r�r�)r|r�rr�rDr�r{rcrbr�r�)r2r�r�r�r3r3r4�test_AsyncIterable�s
 z'TestOneTrickPonyABCs.test_AsyncIterablecCs�Gdd�d�}|�t|�t��|�t|t��dtgg}|D]}|�|t�|�tt|�t�tt|���qGdd�d�}|�|�t�|�	tdd�dS)Nc@r�)z3TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AIcSr�r?r3rAr3r3r4r��r�z=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__aiter__c���t�r?��StopAsyncIterationrAr3r3r4�	__anext__�r�z=TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AI.__anext__N)r1rNrOr�r�r3r3r3r4r���r�c@r~)z:TestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnlyc�r�r?r�rAr3r3r4r��r�zDTestOneTrickPonyABCs.test_AsyncIterator.<locals>.AnextOnly.__anext__N)r1rNrOr�r3r3r3r4�	AnextOnly�r�r�r�r�)
r|r�rr�rDr�r{rcrbr�)r2r�r�r�r�r3r3r4�test_AsyncIterator�s
 z'TestOneTrickPonyABCs.test_AsyncIteratorc
Cshgd�}|D]}|�|t�|�tt|�t�tt|���qt�t�t�t	�t
�t�t�t��
�t���t���t�dd�dD�g}|D]}|�|t�|�tt|�t�tt|���qDGdd�dt�}|�t	|��g�|�tt|��|�td�|�td�Gdd	�d	�}Gd
d�d|�}|�t|t��|�t|�t��|�t|t��|�t|�t��dS)N)Nr"���Q�	@��?cs��|]}|VqdSr?r3�rr�r3r3r4r���z5TestOneTrickPonyABCs.test_Iterable.<locals>.<genexpr>r3cr�)z-TestOneTrickPonyABCs.test_Iterable.<locals>.Icr�r?)r��__iter__rAr�r3r4r�r�z6TestOneTrickPonyABCs.test_Iterable.<locals>.I.__iter__)r1rNrOrr�r3r3r�r4�I�r�rrc@r~)z.TestOneTrickPonyABCs.test_Iterable.<locals>.ItcS�tg�Sr?�r�rAr3r3r4r��z7TestOneTrickPonyABCs.test_Iterable.<locals>.It.__iter__N�r1rNrOrr3r3r3r4�It�r�rc@�eZdZdZdS)z5TestOneTrickPonyABCs.test_Iterable.<locals>.ItBlockedNrr3r3r3r4�	ItBlocked��r
)r�rr{r�rcrbr�r@r�rDr.r�rF�keysr^rUr�rr|r9r�r�r�)r2r�r�r�rrr
r3r3r4�
test_Iterable�s0 � z"TestOneTrickPonyABCs.test_IterablecCs�ddddt�t�g}|D]}|�|t�|�tt|�t�tt|���qt�dd�dD�t	g�t
g�g}|D]}|�|t�|�tt|�t�tt|���q6t�t�t
�t�t�t���t���t���t�t���t���t���t�t���t���t���g}|D]}|�|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�csr�r?r3rr3r3r4r�rz7TestOneTrickPonyABCs.test_Reversible.<locals>.<genexpr>r3c@r�)z/TestOneTrickPonyABCs.test_Reversible.<locals>.RcS�
tt��Sr?�r�rDrAr3r3r4r�r�z8TestOneTrickPonyABCs.test_Reversible.<locals>.R.__iter__cSrr?rrAr3r3r4�__reversed__�r�z<TestOneTrickPonyABCs.test_Reversible.<locals>.R.__reversed__N�r1rNrOrrr3r3r3r4�R�r�rrrc@r~)z7TestOneTrickPonyABCs.test_Reversible.<locals>.RevNoItercSrr?��reversedrAr3r3r4r�rzDTestOneTrickPonyABCs.test_Reversible.<locals>.RevNoIter.__reversed__N�r1rNrOrr3r3r3r4�	RevNoIter�r�rc@r~)z9TestOneTrickPonyABCs.test_Reversible.<locals>.RevPlusItercSrr?rrAr3r3r4r�rzBTestOneTrickPonyABCs.test_Reversible.<locals>.RevPlusIter.__iter__Nrr3r3r3r4�RevPlusIter�r�rc@r�)z1TestOneTrickPonyABCs.test_Reversible.<locals>.RevcSrr?rrAr3r3r4rrz:TestOneTrickPonyABCs.test_Reversible.<locals>.Rev.__iter__cSrr?rrAr3r3r4rrz>TestOneTrickPonyABCs.test_Reversible.<locals>.Rev.__reversed__Nrr3r3r3r4�Rev�rc@r	)z:TestOneTrickPonyABCs.test_Reversible.<locals>.RevItBlockedNrr3r3r3r4�RevItBlockedrrc@r	)z;TestOneTrickPonyABCs.test_Reversible.<locals>.RevRevBlockedNrr3r3r3r4�
RevRevBlockedrr)r.r�r�rr{r�rcrbr�r�rr�r@r�rDr
rr^rUr	rFrr|r&r!r"r9r�r�r�)r2r�r�Znon_reversiblesr�rrrrrrr3r3r4�test_Reversible�sN   � z$TestOneTrickPonyABCs.test_ReversiblecCs|dddddd�g}|D]}|�|t�|�tt|�t�tt|���qt�td�tt��dd�d	D�g}|D]}|�|t�|�tt|�t�tt|���q6t	�t
�t�t�t
�t�t�t���t���t���g
}|D]}|�|t�|�tt|�t�tt|���ql|�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)NrRr3rr3r3r4r�rz6TestOneTrickPonyABCs.test_Collection.<locals>.<lambda>�csr�r?r3rr3r3r4rrz7TestOneTrickPonyABCs.test_Collection.<locals>.<genexpr>r3c@r�)z1TestOneTrickPonyABCs.test_Collection.<locals>.ColcSrr?rrAr3r3r4r*r�z:TestOneTrickPonyABCs.test_Collection.<locals>.Col.__iter__cSrr�r3rAr3r3r4�__len__,r�z9TestOneTrickPonyABCs.test_Collection.<locals>.Col.__len__cSrr�r3r�r3r3r4r�.r�z>TestOneTrickPonyABCs.test_Collection.<locals>.Col.__contains__N�r1rNrOrrr�r3r3r3r4�Col)r�r c@r�)z4TestOneTrickPonyABCs.test_Collection.<locals>.DerColNr�r3r3r3r4�DerCol0r�r!rrr�c@r�)z7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoItercSrr�r3rAr3r3r4r=r�z?TestOneTrickPonyABCs.test_Collection.<locals>.ColNoIter.__len__cSrr�r3r�r3r3r4r�>r�zDTestOneTrickPonyABCs.test_Collection.<locals>.ColNoIter.__contains__N)r1rNrOrr�r3r3r3r4�	ColNoIter<rr"c@r�)z7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoSizecSrr?rrAr3r3r4r@rz@TestOneTrickPonyABCs.test_Collection.<locals>.ColNoSize.__iter__cSrr�r3r�r3r3r4r�Ar�zDTestOneTrickPonyABCs.test_Collection.<locals>.ColNoSize.__contains__N)r1rNrOrr�r3r3r3r4�	ColNoSize?rr#c@r�)z7TestOneTrickPonyABCs.test_Collection.<locals>.ColNoContcSrr?rrAr3r3r4rCrz@TestOneTrickPonyABCs.test_Collection.<locals>.ColNoCont.__iter__cSrr�r3rAr3r3r4rDr�z?TestOneTrickPonyABCs.test_Collection.<locals>.ColNoCont.__len__N)r1rNrOrrr3r3r3r4�	ColNoContBrr$c@� eZdZdd�Zdd�ZdZdS)z7TestOneTrickPonyABCs.test_Collection.<locals>.SizeBlockcSrr?rrAr3r3r4rMrz@TestOneTrickPonyABCs.test_Collection.<locals>.SizeBlock.__iter__cSrr�r3rAr3r3r4r�Nr�zDTestOneTrickPonyABCs.test_Collection.<locals>.SizeBlock.__contains__N)r1rNrOrr�rr3r3r3r4�	SizeBlockL�r&c@r%)z7TestOneTrickPonyABCs.test_Collection.<locals>.IterBlockcSrr�r3rAr3r3r4rQr�z?TestOneTrickPonyABCs.test_Collection.<locals>.IterBlock.__len__cSrr�r3rAr3r3r4r�Rr�zDTestOneTrickPonyABCs.test_Collection.<locals>.IterBlock.__contains__N)r1rNrOrr�rr3r3r3r4�	IterBlockPr'r(c@r�)z5TestOneTrickPonyABCs.test_Collection.<locals>.ColImplcSrr?rrAr3r3r4rZr�z>TestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__iter__cSrr�r3rAr3r3r4r\r�z=TestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__len__cSrr�r3r�r3r3r4r�^r�zBTestOneTrickPonyABCs.test_Collection.<locals>.ColImpl.__contains__Nrr3r3r3r4�ColImplYr�r)c@r	)z4TestOneTrickPonyABCs.test_Collection.<locals>.NonColN)r1rNrOr�r3r3r3r4�NonCol`rr*)r�rr{r�rcrbr�r�r�r.r�rFr�r@r�rDrr^rUrr|r&r!r"rr r9r�r�r�)r2Znon_collectionsr�Znon_col_iterablesr�r r!r"r#r$r&r(r)r*r3r3r4�test_Collectionsp � � �
�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|���qa|�td	d
�Gdd�d�}|�|�t�dS)
Nr"r�r�rr�r3csr�r?r3rr3r3r4rqrz5TestOneTrickPonyABCs.test_Iterator.<locals>.<genexpr>�__next__rc@r~)z4TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnlycs��dVdS�NrQr3rAr3r3r4r,zs�z=TestOneTrickPonyABCs.test_Iterator.<locals>.NextOnly.__next__N)r1rNrOr,r3r3r3r4�NextOnlyyr�r/)r.r�rr{r�rcrbr�r�r@r�rDrFr�rr^rUr�rr|r�)r2r�r�r�r/r3r3r4�
test_Iteratorfs$ � z"TestOneTrickPonyABCs.test_Iteratorc
Cs�Gdd�d�}Gdd�d�}Gdd�d�}dddd	d
ddgit�td�tg�|�|�|�g}|D]}|�|t�|�tt|�t�tt|���q0Gd
d�d�}Gdd�dt�}dd�}|�dd��|�|�g}	|	D]}|�|t	�|�|t�|�
tt|�t�tt|���qi|�tdd�|�}
|�|
t|
��|�|
�
d�t|
��|�d|
�
d��|�|
���|�t|
jt�|�td|
jttd��|�t|
jt��Gdd�dt�}|�t|�j�Gdd�dt�}|�t|�j�dS)Nc@�.eZdZdd�Zdd�Zdd�Zd
dd	�ZdS)z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1cSr�r?r3rAr3r3r4r�r�z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__iter__cSr�r?r3rAr3r3r4r,�r�z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.__next__cSr�r?r3rAr3r3r4r��r�z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.closeNcSr�r?r3r�r3r3r4r��r�z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen1.throwr�)r1rNrOrr,r�r�r3r3r3r4�NonGen1��
r2c@�,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2cSr�r?r3rAr3r3r4r�r�z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__iter__cSr�r?r3rAr3r3r4r,�r�z=TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.__next__cSr�r?r3rAr3r3r4r��r�z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.closecSr�r?r3r�r3r3r4r��r�z9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen2.sendN)r1rNrOrr,r�r�r3r3r3r4�NonGen2��
r5c@�&eZdZdd�Zdd�Zddd�ZdS)	z4TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3cSr�r?r3rAr3r3r4r��r�z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.closecSr�r?r3r�r3r3r4r��r�z9TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.sendNcSr�r?r3r�r3r3r4r��r�z:TestOneTrickPonyABCs.test_Generator.<locals>.NonGen3.throwr�)r1rNrOr�r�r�r3r3r3r4�NonGen3��r8r"r�r�rr�r3c@�6eZdZdd�Zdd�Zdd�Zdd�Zdd
d�Zd	S)
z0TestOneTrickPonyABCs.test_Generator.<locals>.GencSr�r?r3rAr3r3r4r�r�z9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__iter__cSr�r?r3rAr3r3r4r,�r�z9TestOneTrickPonyABCs.test_Generator.<locals>.Gen.__next__cSr�r?r3rAr3r3r4r��r�z6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.closecSr�r?r3r�r3r3r4r��r�z5TestOneTrickPonyABCs.test_Generator.<locals>.Gen.sendNcSr�r?r3r�r3r3r4r��r�z6TestOneTrickPonyABCs.test_Generator.<locals>.Gen.throwr�)r1rNrOrr,r�r�r�r3r3r3r4�Gen��r;c�&eZdZdd�Zd�fdd�	Z�ZS)z7TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGencSr�r?r3r�r3r3r4r��r�z<TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.sendNcr�r?r�r�r�r3r4r��r�z=TestOneTrickPonyABCs.test_Generator.<locals>.MinimalGen.throwr�)r1rNrOr�r�r�r3r3r�r4�
MinimalGen��r>csr-r.r3r3r3r3r4r��r�z0TestOneTrickPonyABCs.test_Generator.<locals>.gencss�dVSr?r3r3r3r3r4r��s�z5TestOneTrickPonyABCs.test_Generator.<locals>.<lambda>r�r�rRz^huhu$Zhuhuc@r�)z8TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClosecSr�r?r3r�r3r3r4r��r�z=TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.sendcW�t�r?�r��r2r�r3r3r4r��r�z>TestOneTrickPonyABCs.test_Generator.<locals>.FailOnClose.throwN�r1rNrOr�r�r3r3r3r4�FailOnClose�rrDc@r�)z@TestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExitcSr�r?r3r�r3r3r4r��r�zETestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.sendcWr�r?r3rBr3r3r4r��r�zFTestOneTrickPonyABCs.test_Generator.<locals>.IgnoreGeneratorExit.throwNrCr3r3r3r4�IgnoreGeneratorExit�rrE)r.r�r�rr{r�rcrbrrr|r�r;r��nextr9r�r�r�r�r�ZassertRaisesRegex�
StopIteration�RuntimeError)
r2r2r5r8r�r�r;r>r�r��mgenrDrEr3r3r4�test_Generators@�  �z#TestOneTrickPonyABCs.test_GeneratorcCsHGdd�d�}Gdd�d�}Gdd�d�}dddd	d
ddgit�td�tg�|�|�|�g}|D]}|�|t�|�tt|�t�tt|���q0Gd
d�d�}Gdd�dt�}dd�}|�|�|�g}	|	D]}|�|t	�|�|t�|�
tt|�t�tt|���qe|�tdd�dd�}
|�}|�||�
��|�|
|�d��|
|����|�d|
|�d���|�|
|����|�t��|
|�t��Wd�n1s�wYGdd�dt�}|�t��|
|����Wd�n1s�wYGdd�dt�}
|�t��|
|
����Wd�dS1�swYdS)Nc@r1)z:TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1cSr�r?r3rAr3r3r4r��r�zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.__aiter__cSr�r?r3rAr3r3r4r��r�zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.__anext__cSr�r?r3rAr3r3r4�aclose�r�zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.acloseNcSr�r?r3r�r3r3r4�athrow�r�zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen1.athrowr�)r1rNrOr�r�rKrLr3r3r3r4�NonAGen1�r3rMc@r4)
z:TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2cSr�r?r3rAr3r3r4r��r�zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.__aiter__cSr�r?r3rAr3r3r4r��r�zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.__anext__cSr�r?r3rAr3r3r4rK�r�zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.aclosecSr�r?r3r�r3r3r4�asend�r�z@TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen2.asendN)r1rNrOr�r�rKrNr3r3r3r4�NonAGen2�r6rOc@r7)	z:TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3cSr�r?r3rAr3r3r4rK�r�zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.aclosecSr�r?r3r�r3r3r4rN�r�z@TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.asendNcSr�r?r3r�r3r3r4rL�r�zATestOneTrickPonyABCs.test_AsyncGenerator.<locals>.NonAGen3.athrowr�)r1rNrOrKrNrLr3r3r3r4�NonAGen3�r9rPr"r�r�rr�r3c@r:)
z5TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.GencSr�r?r3rAr3r3r4r��r�z?TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.__aiter__c�r�r?r3rAr3r3r4r����z?TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.__anext__c�r�r?r3rAr3r3r4rK�rQz<TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.aclosec���|Sr?r3r�r3r3r4rN�rQz;TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.asendNc�r�r?r3r�r3r3r4rL�rQz<TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.Gen.athrowr�)r1rNrOr�r�rKrNrLr3r3r3r4r;�r<r;cr=)z=TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGenc�rRr?r3r�r3r3r4rN�r�zCTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGen.asendNc�s�t��|||�IdHdSr?)r�rLr�r�r3r4rL�s�zDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.MinimalAGen.athrowr�)r1rNrOrNrLr�r3r3r�r4�MinimalAGen�r?rScSs�dVdSr.r3r3r3r3r4r��r�z5TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.genrNrLc
SsRd}	z|�d�Wnty'}z|jr|jdnd}WYd}~|Sd}~wwq)NTr)r�rGr�)r�rp�exr3r3r4�	run_async�s
���z;TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.run_asyncrRc@r�)z=TestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClosec�rRr?r3r�r3r3r4rN
rQzCTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClose.asendc�r�r?rArBr3r3r4rLrQzDTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.FailOnClose.athrowN�r1rNrOrNrLr3r3r3r4rD	rrDc@r�)zETestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExitc�rRr?r3r�r3r3r4rNrQzKTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExit.asendc�r�r?r3rBr3r3r4rLrQzLTestOneTrickPonyABCs.test_AsyncGenerator.<locals>.IgnoreGeneratorExit.athrowNrVr3r3r3r4rErrE)r.r�r�rr{r�rcrbrrr|r�r;r�rNr�r9r�rKr�r�rLrH)r2rMrOrPr�r�r;rSr�r�rUrIrDrEr3r3r4�test_AsyncGenerator�sF�  ��$�z(TestOneTrickPonyABCs.test_AsyncGeneratorcCs�ddddt�dd�dD�g}|D]}|�|t�|�tt|�t�tt|���qt�t�t	�t
�t�t�t
�t
���t
���t
���g
}|D]}|�|t�|�tt|�t�tt|���qF|�td�|�td�dS)Nr"r�r�csr�r?r3rr3r3r4rrz2TestOneTrickPonyABCs.test_Sized.<locals>.<genexpr>r3r)r�r�rr{r�rcrbr�r@r�rDr.r�rFrr^rUrr|r�r��r2r�r�r�r3r3r4�
test_Sizeds � � zTestOneTrickPonyABCs.test_Sizedc
Cs�ddddt�dd�dD�g}|D]}|�|t�|�tt|�t�tt|���qt�t�t	�t
�t�t�t
�t
���t
���g	}|D]}|�|t�|�tt|�t�tt|���qB|�td�|�td�dS)Nr"r�r�csr�r?r3rr3r3r4r,rz6TestOneTrickPonyABCs.test_Container.<locals>.<genexpr>r3r�)r�r�rr{r�rcrbr�r@r�rDr.r�rFrr^rr|r�r�rXr3r3r4�test_Container)s � � z#TestOneTrickPonyABCs.test_Containerc
Cs�dddddddgit�t�dd�dD�g}|D]}|�|t�|�tt|�t�tt|���qd	d
�ttt	t
tjgjg}|D]}|�
|t�|�tt|�t�tt|���q>|�td�|�td�dS)Nr"r�r�r�rr3csr�r?r3rr3r3r4r?rz5TestOneTrickPonyABCs.test_Callable.<locals>.<genexpr>cSr�r?r3r3r3r3r4r�Dr�z4TestOneTrickPonyABCs.test_Callable.<locals>.<lambda>�__call__)r.r�r�rr{r�rcrbr�rDr_rDrIrr|r�r�rXr3r3r4�
test_Callable;s$� � z"TestOneTrickPonyABCs.test_CallablecCsLtttttttfD]}Gdd�d|�}|�t||��|�	tt
|��q	dS)Nc@r�)z7TestOneTrickPonyABCs.test_direct_subclassing.<locals>.CNr�r3r3r3r4r�Qr�r�)rrrrrrrr|r�r{r��r2r�r�r3r3r4�test_direct_subclassingOs
�z,TestOneTrickPonyABCs.test_direct_subclassingcCsXtttttttfD] }Gdd�d�}|�t||�|j	�|�
|�|�t||��q	dS)Nc@r	)z1TestOneTrickPonyABCs.test_registration.<locals>.CN)r1rNrOr�r3r3r3r4r�Xrr�)rrrrrrrr{r�r1r�r|r]r3r3r4�test_registrationVs
�z&TestOneTrickPonyABCs.test_registrationN)r1rNrOr�r�r�r�r�r
rr+r0rJrWrYrZr\r^r_r3r3r3r4r��s"4C"9XGQr�c@s>eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)�WithSetr3cCst|�|_dSr?)r.r8)r2�itr3r3r4r�`�zWithSet.__init__cC�
t|j�Sr?�r_r8rAr3r3r4rcr�zWithSet.__len__cCrcr?�r�r8rAr3r3r4rfr�zWithSet.__iter__cC�
||jvSr?�r8r�r3r3r4r�ir�zWithSet.__contains__cC�|j�|�dSr?)r8rWr�r3r3r4rWlrCzWithSet.addcCrhr?)r8�discardr�r3r3r4riorCzWithSet.discardN�r3)	r1rNrOr�rrr�rWrir3r3r3r4r`^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+d,�Zd-d.�Zd/d0�Zd1S)2�TestCollectionABCscCs\ttfD]}|�|�t�|�t|t��q|�tddd�Gdd�dt�}|�|��dS)Nr�rrc@r�)z*TestCollectionABCs.test_Set.<locals>.MySetcSrr�r3�r2r�r3r3r4r�~r�z7TestCollectionABCs.test_Set.<locals>.MySet.__contains__cSrr�r3rAr3r3r4r�r�z2TestCollectionABCs.test_Set.<locals>.MySet.__len__cSrr?rrAr3r3r4r��z3TestCollectionABCs.test_Set.<locals>.MySet.__iter__N�r1rNrOr�rrr3r3r3r4�MySet}r�ro)r.r�rrr|r�r�r�)r2�sampleror3r3r4�test_SetxszTestCollectionABCs.test_SetcCs8Gdd�dt�}|�|�}}|�t|�t|�k�dS)Nc@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z8TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSetcSsgd�|_dS)N�rQrRrX��contentsrAr3r3r4r��rbzATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__init__cSrfr?rtrlr3r3r4r��r�zETestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__contains__cSrcr?�r_rurAr3r3r4r�r�z@TestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__len__cSrcr?�r�rurAr3r3r4r�r�zATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__iter__cSs|��Sr?)�_hashrAr3r3r4r��rmzATestCollectionABCs.test_hash_Set.<locals>.OneTwoThreeSet.__hash__N)r1rNrOr�r�rrr�r3r3r3r4�OneTwoThreeSet��ry)rr|r)r2ryr,r-r3r3r4�
test_hash_Set�sz TestCollectionABCs.test_hash_SetcCsLGdd�dt�}|d�}|d�}|d�}|�|�|��|�|�|��dS)Nc@r4)
z5TestCollectionABCs.test_isdisjoint_Set.<locals>.MySetcS�
||_dSr?rt�r2�itrr3r3r4r��r�z>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__init__cSrfr?rtrlr3r3r4r��r�zBTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__contains__cSrcr?rwrAr3r3r4r�r�z>TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__iter__cS�tdd�|jD��S)NcS�g|]}|�qSr3r3rr3r3r4r��zQTestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__.<locals>.<listcomp>rvrAr3r3r4r�r�z=TestCollectionABCs.test_isdisjoint_Set.<locals>.MySet.__len__N�r1rNrOr�r�rrr3r3r3r4ro��
rors)r�r[�)rQr[r�)rr|�
isdisjointr{�r2ro�s1�s2�s3r3r3r4�test_isdisjoint_Set�s	z&TestCollectionABCs.test_isdisjoint_SetcCs�Gdd�dt�}|d�}|d�}|d�}|d�}|�||k�|�||k�|�||k�|�||k�|�||k�|�||�|�||�dS)Nc@r4)
z3TestCollectionABCs.test_equality_Set.<locals>.MySetcSr|r?rtr}r3r3r4r��r�z<TestCollectionABCs.test_equality_Set.<locals>.MySet.__init__cSrfr?rtrlr3r3r4r��r�z@TestCollectionABCs.test_equality_Set.<locals>.MySet.__contains__cSrcr?rwrAr3r3r4r�r�z<TestCollectionABCs.test_equality_Set.<locals>.MySet.__iter__cSr)NcSr�r3r3rr3r3r4r�r�zOTestCollectionABCs.test_equality_Set.<locals>.MySet.__len__.<locals>.<listcomp>rvrAr3r3r4r�r�z;TestCollectionABCs.test_equality_Set.<locals>.MySet.__len__Nr�r3r3r3r4ro�r�rorr�)rXr�)rr|r{r9�assertNotEqual)r2ror�r�r�Zs4r3r3r4�test_equality_Set�s	z$TestCollectionABCs.test_equality_SetcCs<Gdd�dt�}|d�}|d�}||@}|�||d��dS)Nc@r4)
z5TestCollectionABCs.test_arithmetic_Set.<locals>.MySetcSr|r?rtr}r3r3r4r��r�z>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__init__cSrfr?rtrlr3r3r4r��r�zBTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__contains__cSrcr?rwrAr3r3r4r�r�z>TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__iter__cSr)NcSr�r3r3rr3r3r4r�r�zQTestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__.<locals>.<listcomp>rvrAr3r3r4r�r�z=TestCollectionABCs.test_arithmetic_Set.<locals>.MySet.__len__Nr�r3r3r3r4ro�r�rors)rXr�r[)rX)rr9r�r3r3r4�test_arithmetic_Set�s
	z&TestCollectionABCs.test_arithmetic_SetcCsT|�t�t�|�ttt��|�t�t�|�ttt��|�tddddd�dS)Nr�rrrWri)	rr.r r|r�r�r�r{r�rAr3r3r4�test_MutableSet�s�z"TestCollectionABCs.test_MutableSetcCs,td�}|td�M}|�t|�td��dS)N�abcdZcdefZcd)r`r9r.�r2rFr3r3r4�test_issue_5647�sz"TestCollectionABCs.test_issue_5647cCs\Gdd�dt�}gd�}||�}|��}|�t|�t|�d�|�||�|�||�dS)Nc@sLeZdZdgZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)z1TestCollectionABCs.test_issue_4920.<locals>.MySetZ__sNcSs|durg}t|�|_dSr?)r.�	_MySet__s)r2r^r3r3r4r��sz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__init__cSrfr?)r�)r2rpr3r3r4r��r�z>TestCollectionABCs.test_issue_4920.<locals>.MySet.__contains__cSrcr?)r�r�rAr3r3r4r�r�z:TestCollectionABCs.test_issue_4920.<locals>.MySet.__iter__cSrcr?)r_r�rAr3r3r4r�r�z9TestCollectionABCs.test_issue_4920.<locals>.MySet.__len__cSs||jv}|j�|�|Sr?)r�rW�r2rprpr3r3r4rW��
z5TestCollectionABCs.test_issue_4920.<locals>.MySet.addcSs||jv}|j�|�|Sr?)r�rir�r3r3r4ri�r�z9TestCollectionABCs.test_issue_4920.<locals>.MySet.discardcSsdtt|��S)Nz	MySet(%s))rbrDrAr3r3r4�__repr__�rCz:TestCollectionABCs.test_issue_4920.<locals>.MySet.__repr__r?)r1rNrOr�r�r�rrrWrir�r3r3r3r4ro�s
ro)r[�+rRrQrQ)r r�r9r_r�r`)r2ror^rFrbr3r3r4�test_issue_4920�sz"TestCollectionABCs.test_issue_4920cCs~t�}ttd��}t|�}||8}|�||�t|�}||N}|�||�t|�}||M}|�||�||O}|�||�dS)Nr�)r`rer9)r2�empty�fullrFr3r3r4�test_issue8750�sz!TestCollectionABCs.test_issue8750cCshGdd�dt�}Gdd�dt�}|�}|�}|�||k�|�||k�|�||k�|�||k�dS)Nc@r�)z;TestCollectionABCs.test_issue16373.<locals>.MyComparableSetcSrr�r3rlr3r3r4r�
r�zHTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__contains__cSrr�r3rAr3r3r4rr�zCTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__len__cSrr?rrAr3r3r4rrmzDTestCollectionABCs.test_issue16373.<locals>.MyComparableSet.__iter__Nrnr3r3r3r4�MyComparableSet	r�r�c@rr)z>TestCollectionABCs.test_issue16373.<locals>.MyNonComparableSetcSrr�r3rlr3r3r4r�r�zKTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__contains__cSrr�r3rAr3r3r4rr�zFTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__len__cSrr?rrAr3r3r4rrmzGTestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__iter__cS�tSr?��NotImplementedrlr3r3r4r�r�zETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__le__cSr�r?r�rlr3r3r4r�r�zETestCollectionABCs.test_issue16373.<locals>.MyNonComparableSet.__lt__N)r1rNrOr�rrr�r�r3r3r3r4�MyNonComparableSetrzr�)rr{r|)r2r�r��csZncsr3r3r4�test_issue16373sz"TestCollectionABCs.test_issue16373cCs�Gdd�dt�}td�}tj}||||g�}|t||d��t||d��t||d��g}|D]
}|D]}|�||�q1q-|�|�	|�d�|�|�	|�d�|�|�
|�d�|�|�
|�d�dS)Nc@r�)z:TestCollectionABCs.test_issue26915.<locals>.CustomSequencecSr|r?��_seq�r2�seqr3r3r4r�&r�zCTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__init__cS�
|j|Sr?r��r2rBr3r3r4r�(r�zFTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__getitem__cSrcr?)r_r�rAr3r3r4r*r�zBTestCollectionABCs.test_issue26915.<locals>.CustomSequence.__len__N�r1rNrOr�r�rr3r3r3r4�CustomSequence%r�r��nanr�rrQrR)r&r�rZNEVER_EQr$r#r%r`r9rB�count)r2r�r�r<r�Z
containers�	container�elemr3r3r4�test_issue26915#s"��z"TestCollectionABCs.test_issue26915cCs|�t|�t|��dSr?)ZassertSetEqualr.)r2r�r�r3r3r4�
assertSameSet>sz TestCollectionABCs.assertSameSetcCs(Gdd�dt�}|gd�d�}|dh}|�||�|�d|j�|�ddh|�|d	hB}|�||�|�d|j�|�hd
�|�|dh@}|�||�|�d|j�|�dh|�|dd	hA}|�||�|�d|j�|�hd�|�|dd	gN}|�||�|�d|j�|�hd�|�dS)
z=Verify _from_iterable overridden to an instance method works.c@r))zOTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterablecSs |std��||_t|�|_dS)Nzcreated_by must be specified)r��
created_byr.�_values)r2rUr�r3r3r4r�EszXTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__init__cSst|�|d�S)N�
from_iterable)rc)r2rUr3r3r4�_from_iterableKrbz^TestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable._from_iterablecSrfr?�r�r�r3r3r4r�Nr�z\TestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__contains__css�|jEdHdSr?r�rAr3r3r4rQs�zXTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__iter__cSrcr?)r_r�rAr3r3r4rTr�zWTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.__len__cSrhr?)r�rWr�r3r3r4rWWrCzSTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.addcSrhr?)r�rir�r3r3r4riZrCzWTestCollectionABCs.test_Set_from_iterable.<locals>.SetUsingInstanceFromIterable.discardN)
r1rNrOr�r�r�rrrWrir3r3r3r4�SetUsingInstanceFromIterableDsr�rsr:rQr�rRrXr�>rQrRrXr�>rQrRr�N)r rr9r�)r2r��impl�actualr3r3r4�test_Set_from_iterableBs,


z)TestCollectionABCs.test_Set_from_iterablecCs(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��||
kWd�n	1�s4wY|�t��||kWd�n	1�sNwY|�t��||	kWd�n	1�shwY|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�t��||
kWd�n	1�s�wY|�t��||kWd�n	1�s�wY|�t��||	kWd�n	1�s�wY|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�t��||
kWd�n	1�sNwY|�t��||kWd�n	1�shwY|�t��||	kWd�n	1�s�wY|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�t��||
kWd�n	1�s�wY|�t��||kWd�n	1�s�wY|�t��||	kWd�n	1�swY|�||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>.ListSetr3cSs*g|_|D]
}||jvr|j�|�qdSr?)r8rI)r2�elementsr�r3r3r4r�}s
��zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__init__cSrfr?rg)r2r�r3r3r4r��r�zYTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__contains__cSrcr?rerAr3r3r4r�r�zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__iter__cSrcr?rdrAr3r3r4r�r�zTTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__len__cSsd�|j�S)Nz	Set({!r}))r0r8rAr3r3r4r��r�zUTestCollectionABCs.test_Set_interoperability_with_real_sets.<locals>.ListSet.__repr__Nrj)r1rNrOr�r�rrr�r3r3r3r4�ListSet|s
r�rLZbcdZabcdeZabccbaZbcddcbZ
abcdeedcba)rr.rDr�r|r{r�r�)r2r�Zr1Zr2Zr3�f1�f2Zf3�l1�l2�l3�targetZ
fwd_targetZ
rev_targetr3r3r4�(test_Set_interoperability_with_real_setszs�	
�
�
�
�
�
�
�
�
�
�
�
�z;TestCollectionABCs.test_Set_interoperability_with_real_setscCs�idhdhdhdhdhhd�ddddhhd	�d
dht�t�t�htd�ht�hhtd
��htd
��hd�httjdtjd��g}|D]}t|�}|jt|�t�	|�|d�qGdS)NrQrgrL>rQrRrXr�rY�e>r�r-r,�abFTr���>��rYi,)�msg)
rDr�r�rerc�maxsizer9rrrx)r2ZsetsrF�fsr3r3r4�test_Set_hash_matches_frozensets��z2TestCollectionABCs.test_Set_hash_matches_frozensetcCsltfD]}|�|�t�|�t|t��q|�tdddd�Gdd�dt�}|�|��|�tt	|��dS)Nr�rrr�c@r�)z2TestCollectionABCs.test_Mapping.<locals>.MyMappingcSrr�r3rAr3r3r4r%r�z:TestCollectionABCs.test_Mapping.<locals>.MyMapping.__len__cSr@r?)r)r2r�r3r3r4r�'r�z>TestCollectionABCs.test_Mapping.<locals>.MyMapping.__getitem__cSstd�S)Nr3rrAr3r3r4r)rmz;TestCollectionABCs.test_Mapping.<locals>.MyMapping.__iter__N)r1rNrOrr�rr3r3r3r4�	MyMapping$r�r�)
rFrr!r|r�r�r�r�r�r)r2rpr�r3r3r4�test_Mappings
�zTestCollectionABCs.test_Mappingc	CsDtfD]}|�|�t�|�t|t��q|�tdddddd�dS)Nr�rrr��__setitem__�__delitem__)rFrr"r|r�r��r2rpr3r3r4�test_MutableMapping.s
�z&TestCollectionABCs.test_MutableMappingcCst�}d|d<|�|��t�|�|��t�|�|��t�|�|��t�|�|��t�|�|��t	�t�}d|d<|��dhB}|�|t
�t|�d|d<|�t
|�ddg�t�}d|d<|��dhB}|�|t
�t|�d|d<|�|ddh�dS)Nr[�red�orange�Zblue)r�rX)r�r[)rrrrr#rUrr%r^r$r.rDr9�sorted)r2ZmymaprZr3r3r4�test_MutableMapping_subclass5s,z/TestCollectionABCs.test_MutableMapping_subclasscCs�ttttfD]}|�|�t�|�t|t��q|�td�t�|�ttt��|�t	d�t�|�tt	t��|�ttt��|�
tdddd�dS)Nr�rr�rrr�)r�rDr�r@rr&r|r�re�
memoryviewr�r�r3r3r4�
test_SequencePs�z TestCollectionABCs.test_Sequencec

s�Gdd�dt�}�fdd�}ttfD]S}|d�}ddgttdt|�d	��}||�}t|�d
hBD]2}||||f�tdt|�d	�D]}|||||f�tdt|�d	�D]}	||||||	f�qWqDq2qdS)Nc@s&eZdZd	dd�Zdd�Zdd�ZdS)
zATestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclassr3cSr|r?�r�r�r3r3r4r�^r�zJTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__init__cSr�r?r�r�r3r3r4r�ar�zMTestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__getitem__cSrcr?)r_r�rAr3r3r4rdr�zITestCollectionABCs.test_Sequence_mixins.<locals>.SequenceSubclass.__len__Nrjr�r3r3r3r4�SequenceSubclass]s
r�cs�z|j|�}Wn&ty-��t��|j|�Wd�YdS1s%wYYdSw|j|�}��||d||f�dS)Nz
%r.index%s)rBr�r�r9)Zseq1Zseq2Z
index_argsZexpectedr�rAr3r4�assert_index_samehs&��
�zBTestCollectionABCs.test_Sequence_mixins.<locals>.assert_index_same�abracadabrai���i������rXrZ)r&rDr@rer_r.)
r2r�r��tyZ	nativeseqZindexesZseqseq�letterr6�stopr3rAr4�test_Sequence_mixins\s$�����z'TestCollectionABCs.test_Sequence_mixinscCs�ttfD]}|�|�t�|�t|t��qtttfD]}|�	|�t�|�
t|t��q|�	td�t�|�
ttt��|�tdd�dS)Nrr�r)
r�r�rr(r|r�r@rDr�r�r{r�r�r�r3r3r4�test_ByteStringsz"TestCollectionABCs.test_ByteStringc
Cs�tttfD]}|�|�t�|�t|t��qttt	fD]}|�
|�t�|�t|t��q|�ttt��|�tddddddd�dS)Nr�rrr�r�r��insert)
r�r@r�r�r'r{r�rDr�rrr|r�r�r3r3r4�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?��lstrAr3r3r4r��r�zXTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__init__cSs||j|<dSr?r��r2rBr�r3r3r4r��rbz[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__setitem__cSr�r?r�r�r3r3r4r��r�z[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__getitem__cSrcr?)r_r�rAr3r3r4r�r�zWTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__len__cSs|j|=dSr?r�r�r3r3r4r��r�z[TestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.__delitem__cSs|j�||�dSr?)r�r�r�r3r3r4r��szVTestCollectionABCs.test_MutableSequence_mixins.<locals>.MutableSequenceSubclass.insertN)	r1rNrOr�r�r�rr�r�r3r3r3r4�MutableSequenceSubclass�sr�r)rQrRrXr�r[rXrQr�r�r�rrTZABCD)
r'rI�extendr9r_�reverser��remove�clearrD)r2r�Zmssr^Zmss2r3r3r4�test_MutableSequence_mixins�s2




z.TestCollectionABCs.test_MutableSequence_mixinscCs@|�t��Gdd�dt�}Wd�dS1swYdS)Nc@seZdZejejBZdS)z9TestCollectionABCs.test_illegal_patma_flags.<locals>.BothN)r1rNrOr&�	__flags__r!�__abc_tpflags__r3r3r3r4�Both�sr�)r�r�r)r2r�r3r3r4�test_illegal_patma_flags�s"�z+TestCollectionABCs.test_illegal_patma_flagsN)r1rNrOrqr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r3r3r3r4rkrs48#2rkc@r�)�CounterSubclassWithSetItemcOr�r��r�r	r�r�r3r3r4r��r�z#CounterSubclassWithSetItem.__init__cCsd|_t�|||�dSr�)r�r	r�)r2rnr�r3r3r4r��sz&CounterSubclassWithSetItem.__setitem__N)r1rNrOr�r�r3r3r3r4r���r�c@r�)�CounterSubclassWithGetcOr�r�r�r�r3r3r4r��r�zCounterSubclassWithGet.__init__cCsd|_t�|||�Sr�)r�r	ra)r2rn�defaultr3r3r4ra�szCounterSubclassWithGet.getN)r1rNrOr�rar3r3r3r4r��r�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),�TestCounterc
Cs�td�}|�|tdddd���|�|tdddd��|�|t�|�|t�|�ttt��|�ttt��|�t|�d�|�t|�	��d�|�t
|�	��gd��|�t
|���gd��|�t
|�gd��|�t
|���gd��|�|d	d�|�|d
d�|�|�
d�d
�|�|�
d
�d�|�|�d	d�d�|�|�d
d�d�|�|tdddd��|�t|�d�|�|��gd��td�D]}|�|�|�gd�d|��q�|�d�|���d�|dd7<|d	d8<|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)'NZabcabarXrRrQrWr�)rXrRrQ))r,rXr��rUrQr-rZrrUTFr�z!Counter({'a': 3, 'b': 2, 'c': 1})r[r�Zaaabbcr,rmr!rqrsr����)r,r-rmrqrsZaaaaffffz	Counter()rLr+)rUZPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbA aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbZcdci+r�r�) r	r9rrFr!r|r�r_�sumrUrDrr^r�rarb�most_commonrer�r�r�r�r�r�r��NotImplementedErrorr�r�rrvr��
setdefault)r2rUr�r�Zcntr3r3r4rt�sx��

zTestCounter.test_basicscCs�|�ttdd����dg�|�ttdd����dg�|�ttdd����dg�|�ttd�|�ttdd�|�ttj�dS)Nr"rA�r2r"�r<�r<r"�r<Nr3)r9rDr	r^r�r�r�rAr3r3r4�	test_init"szTestCounter.test_initcCs"tdddd�}|�|��d�dS)Nr�r[rrW�)r	r9�total�r2rUr3r3r4�
test_total*szTestCounter.test_totalcs�|�ttd����gd��|�ttd����gd��|�ttd����gd��d}d}d	d
�tt�||��D���fdd�}t|�t|�}}|�||
��|�||��|�|||��|�|||��|�|||B��|�|||@��t|�t|�}}||7}|�||��t|�t|�}}||8}|�||��t|�t|�}}||O}|�||��t|�t|�}}||M}|�||��t|�t|�}}|�	|�|�||��t|�t|�}}|�
|�|�||��dS)
Nr��)r,r[r�)rbrRr�)rmrQZxyzpdqqdpzyx))r�rR)r�rR)rZrR)r�rR)rmrR)r,rRzabracadabra simsalabim)r,r,r,r,r,r,r,r-r-r-rbrbrUrm� rFrFr�r�r�r��lZaaabbcdddeefggghhijjjkklZabbcccdeefffhkkllllmmnnocSsi|]\}}||�qSr3r3)rr�r�r3r3r4�
<dictcomp>Asz7TestCounter.test_order_preservation.<locals>.<dictcomp>cs�fdd�|D�}|t|�kS)z6Return true if the letters occur in the expected ordercsg|]}�|�qSr3r3)rr���orderr3r4rDszRTestCounter.test_order_preservation.<locals>.correctly_ordered.<locals>.<listcomp>)r�)r�Z	positionsr	r3r4�correctly_orderedBsz>TestCounter.test_order_preservation.<locals>.correctly_ordered)r9rDr	r^r�r#rFr�r|rv�subtract)r2Zps�qsrr�r,r3r	r4r�.sL���

z#TestCounter.test_order_preservationcCs�t�}|jdd�|�t|���dg�t�}|jdd�|�t|���dg�t�}|jdd�|�t|���dg�|�tt�jd�|�tt�jii�|�ttj�dS)Nr"rAr�r�r�r�)r	rvr9rDr^r�r�rr3r3r4�test_updategszTestCounter.test_updatec	s�td������fdd�}|����|t����|t����ttjd�D]#}�j|d��|t�t�	�|���Wd�n1sFwYq(|t
t����t�}|���||�|t���dS)Nz)which witch had which witches wrist watchcs*d|�f}��|�|���|��dS)Nz
copy: %s
words: %s)r7r9)�dupr��r2rxr3r4�checkysz'TestCounter.test_copying.<locals>.checkrQ)rr)
r	r:r6rjrerfrgZsubTestrhrirkrbrv)r2rrrZupdate_testr3rr4�test_copyingus��
zTestCounter.test_copyingcCsXGdd�dt�}|d�}|��}|�||�|�t|�t|��|�t|�t|��dS)Nc@r�)z1TestCounter.test_copy_subclass.<locals>.MyCounterNr�r3r3r3r4�	MyCounter�r�rZslartibartfast)r	r6r9r_rc)r2rrUrmr3r3r4�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)r9r�r	r�r.rFr^r�r3r3r4�test_conversions�s
 zTestCounter.test_conversionscCs6tdddd�}|D]}|�||v�|�||�q	dS)Nr�r�rrW)r	r|r`)r2rUr�r3r3r4�"test_invariant_for_the_in_operator�s
�z.TestCounter.test_invariant_for_the_in_operatorc
Cs�tdddd�t�}|�t|�tdd��d}td�D]q}ttdd	�|D���}|jd
ddd�ttd
d	�|D���}|jd
ddd�tjdd�ftjdd�ftjdd�ftjdd�ffD].\}}|||�}|D]}	|�|||	||	�||	||	||f�qh|�	dd	�|�
�D��q]qd}td�D]J}ttdd	�|D���}ttdd	�|D���}tjtjftjtjftjtjffD] \}}
|||�}|
t|���t|����}|�|t�
|d
��q�q�dS)Nr�r�rrWr�r�r�cs��|]
}|tdd�fVqdS�r�r�N�r�rr�r3r3r4r���z7TestCounter.test_multiset_operations.<locals>.<genexpr>rQr�rqrsr�csrrrrr3r3r4r�r�r�r�r�cSstd||�Sr��rr�r3r3r4r���z6TestCounter.test_multiset_operations.<locals>.<lambda>cSstd||�Sr�rr�r3r3r4r��rcSstd||�Sr�rr�r3r3r4r��r�cSstdt||��Sr�)r�minr�r3r3r4r��r�css�|]}|dkVqdS)rNr3rr3r3r4r�ruZabcdefrYcsr�rrRNrrr3r3r4r�rcsrr!rrr3r3r4r�r)r	r9rFrerv�__add__�__sub__�__or__�__and__r|rUr.r�r�)
r2rUr�r�r�r,Z	counteropZnumberoprpr�ZsetopZcounter_result�
set_resultr3r3r4�test_multiset_operations�sB�

��



�
��z$TestCounter.test_multiset_operationscCs�d}td�D]c}ttdd�|D���}|jdddd�ttd	d�|D���}|jdddd
�tjtjftjtjftjtj	ftj
tjffD]$\}}|��}t
|�}|||�}	|||�}
|�|
|	�|�t
|
�|�qDqdS)Nr�r�csrrrrr3r3r4r�rz6TestCounter.test_inplace_operations.<locals>.<genexpr>rQrrrcsrrrrr3r3r4r�rr)rer	rFrv�__iadd__r"�__isub__r#�__ior__r$�__iand__r%r6�idr9)r2r�r�r�r,Z
inplace_opZ
regular_oprUZc_idZregular_resultZinplace_resultr3r3r4�test_inplace_operations�s&



�

��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!rr[r�rr0�r,r-rUrmrqr�rQrRr�rSrTi���)r,r-rUrmrqrsr�i����r��i��r1)r,r-rUrmrqrsr�r�ZaaabbcdZ	aaaabbccerr�r"rA)r2����r�)r<r0)r	rr9rDr^r�r�rr3r3r4�
test_subtract�s$  
zTestCounter.test_subtractc	CsNtddddddd�}|�t|
�tddddd��|�t|�tdd	��dS)
Nr!rr[r�rr0r.)rUrmrqr�r�)r	r9rFrr3r3r4�
test_unary�szTestCounter.test_unarycCs0tddd�}t|�}|�d|�|�d|�dS)NrRr+z'a': 2z	'b': None)r	rbr`)r2rUrbr3r3r4�test_repr_nonsortable�sz!TestCounter.test_repr_nonsortablec	Cs�td�}t�}t||�|�|dddddd��t�}t||�|�|tgd���td�}|�|j�|�t|�dddddd��td�}|�|j�|�t|�dddddd��dS)Nr�r[rRrQ)r,rbr-rUrmr)r,r-rUrmrb)	rDrFrr9r
r�r|r�r�)r2Zelemsrmr�rUr3r3r4�test_helper_function�s


� z TestCounter.test_helper_functioncsNttdtd����t��fdd�tt��d�D��}dd�|D�}t|dd�D]|\}}t|���}t|���}|�t||�||B�|�t||�||�|�t||B�||B�|�t||@�||@�|�||k||k�|�||k||k�|�||k||k�|�||k||k�|�||k||k�|�||k||k�q(dS)	NrWrRc3s�|]}t�|�VqdSr?)r)rrb�rFr3r4r	s�zTTestCounter.test_multiset_operations_equivalent_to_set_operations.<locals>.<genexpr>rQcSsg|]}tt|���qSr3)r	rF)r�groupsr3r3r4r	szUTestCounter.test_multiset_operations_equivalent_to_set_operations.<locals>.<listcomp>)�repeat)	rDrrerr�r_r.r�r9)r2ZpowersetZcountersZcpZcq�sp�sqr3r5r4�5test_multiset_operations_equivalent_to_set_operations	s"$�zATestCounter.test_multiset_operations_equivalent_to_set_operationscCs6|�tdddd�td��|�tddd�td��dS�NrXrRrrW�ababar+Zbabab)r9r	r�rAr3r3r4�test_eq&	szTestCounter.test_eqcCs:|�tdddd�td�k�|�tddd�td�k�dSr;�r|r	r{rAr3r3r4�test_le*	szTestCounter.test_lecCs<|�tdddd�td�k�|�tdddd�td�k�dS)NrXrQrrWr<rRr>rAr3r3r4�test_lt.	� zTestCounter.test_ltcCs<|�tdddd�td�k�|�tdddd�td�k�dS)NrRrQrrW�aabrXZaabdr>rAr3r3r4�test_ge2	rAzTestCounter.test_gecCs<|�tdddd�td�k�|�tdddd�td�k�dS)NrXrRrrWrBrQr>rAr3r3r4�test_gt6	rAzTestCounter.test_gtN)r1rNrOrtrrr�rrrrrr'r-r1r2r3r4r:r=r?r@rCrDr3r3r3r4r��s,<9	'r�cCs8tjtd�}t|tttttg}t	j
|�t	�t|�dS)Nr)�doctestZDocTestSuiterr�r�rkr�rPr*rZrun_unittestZrun_doctest)r]ZNamedTupleDocsZtest_classesr3r3r4�	test_main?	s�
rF�__main__T)r]r?)Er�rr6rEr�r9rf�randomrr�	itertoolsrrrrrcr:rr�r�rr	r
rrr
rrr�collections.abcrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(ZTestCaser*rPr�r�r�r�r�r`rkr�r�r�rFr1r3r3r3r4�<module>sp0
e;dd		
]

�