Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_set.cpython-39.opt-1.pyc

a

��g��@s�ddlZddlmZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlZddlZddl
ZddlZGdd�de�Zdd�ZGdd	�d	�ZGd
d�d�ZGdd
�d
e�ZGdd�d�ZGdd�deej�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�deej�ZGdd�de�Z Gdd�de�Z!e�Z"Gd d!�d!�Z#Gd"d#�d#e#ej�Z$Gd$d%�d%e#ej�Z%Gd&d'�d'e#ej�Z&Gd(d)�d)e#ej�Z'Gd*d+�d+e#ej�Z(Gd,d-�d-e#ej�Z)Gd.d/�d/e#ej�Z*d0d1�Z+d2d3�Z,Gd4d5�d5ej�Z-Gd6d7�d7ej�Z.Gd8d9�d9ej�Z/Gd:d;�d;ej�Z0Gd<d=�d=ej�Z1Gd>d?�d?�Z2Gd@dA�dAe2ej�Z3GdBdC�dCe2ej�Z4GdDdE�dEe2ej�Z5GdFdG�dGe2ej�Z6GdHdI�dIe2ej�Z7GdJdK�dK�Z8GdLdM�dMe8ej�Z9GdNdO�dOe8ej�Z:GdPdQ�dQe8ej�Z;GdRdS�dSe8ej�Z<GdTdU�dUe8ej�Z=GdVdW�dWe8ej�Z>GdXdY�dY�Z?GdZd[�d[e?ej�Z@Gd\d]�d]e?ej�ZAGd^d_�d_e?ej�ZBGd`da�dae?ej�ZCGdbdc�dce?ej�ZDGddde�deej�ZEdfdg�ZFGdhdi�di�ZGGdjdk�dk�ZHGdldm�dm�ZIGdndo�do�ZJGdpdq�dq�ZKGdrds�ds�ZLGdtdu�du�ZMddvlmNZNdwdx�ZOGdydz�dzej�ZPGd{d|�d|�ZQGd}d~�d~�ZRGdd��d�ej�ZSGd�d��d��ZTGd�d��d�eT�ZUGd�d��d�eUej�ZVGd�d��d�eUej�ZWGd�d��d�eUej�ZXGd�d��d�eUej�ZYGd�d��d�eT�ZZGd�d��d�eZej�Z[Gd�d��d�eZej�Z\Gd�d��d�eZej�Z]Gd�d��d�eZej�Z^Gd�d��d�eZej�Z_Gd�d��d�eZej�Z`d�d��Zad�d��Zbd�d��Zcd�d��ZdGd�d��d�ej�Zeefd�k�r�e�g�dS)��N)�support)�	randrange�shufflec@seZdZdS)�PassThruN��__name__�
__module__�__qualname__�r
r
�)/usr/local/lib/python3.9/test/test_set.pyrsrccst�dVdS�N�)rr
r
r
r�check_pass_thrusrc@seZdZdd�Zdd�ZdS)�BadCmpcCsdSrr
��selfr
r
r�__hash__szBadCmp.__hash__cCst�dS�N)�RuntimeError�r�otherr
r
r�__eq__sz
BadCmp.__eq__N�rrr	rrr
r
r
rrsrc@seZdZdZdd�ZdS)�ReprWrapperz*Used to test self-referential repr() callscCs
t|j�Sr)�repr�valuerr
r
r�__repr__szReprWrapper.__repr__N)rrr	�__doc__rr
r
r
rrsrc@s eZdZdZdd�Zdd�ZdS)�HashCountingIntzBint-like object that counts the number of times __hash__ is calledcGs
d|_dS�Nr��
hash_count)r�argsr
r
r�__init__"szHashCountingInt.__init__cCs|jd7_t�|�Sr)r!�intrrr
r
rr$szHashCountingInt.__hash__N)rrr	rr#rr
r
r
rr src@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�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9S):�TestJointOpscCs2d|_}d|_d|_|�|�|_t�|�|_dS)NZ
simsalabimZ
madagascarZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)�word�	otherword�letters�thetype�s�dict�fromkeys�d)rr&r
r
r�setUp+s

zTestJointOps.setUpcCs*|�t|jgd�|jtt�jdd�dS)N�r
��a)�assertRaises�	TypeErrorr)�setr#rr
r
r�test_new_or_init2szTestJointOps.test_new_or_initcCsHt|j�}t|j�}|�||�|�t|jt��|�t|jgg�dSr)	�sortedr*r-�assertEqualr2rr)rr3)r�actual�expectedr
r
r�test_uniquification6s


z TestJointOps.test_uniquificationcCs|�t|j�t|j��dSr)r7�lenr*r-rr
r
r�test_len=szTestJointOps.test_lencCsb|jD]}|�||jv||jv�q|�t|jjgg�|�t|j�g�}|�	|�|j�|�dSr)
r(r7r*r-r2r3�__contains__r)�	frozenset�assertIn)r�cr*r
r
r�
test_contains@s

zTestJointOps.test_containscCs�|j�|j�}|jD]$}|�||v||jvp4||jv�q|�|j|�|j��|�t|�|j	�|�
t|jjt��|�
t
|jjgg�tttjtttfD]�}|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td	��|�|�d��|d�|d
��td��q�|��}|�|�tdg�|tdg��|�ddg��dS)
N�abcba�cdc�abcd�efgfe�abcefg�ccb�abc�ef�abcefZfgr
r/)r*�unionr'r(r7r-r)r&�type�basetyper2rrr3r4r>r+r,�str�list�tuple)r�ur@�C�xr
r
r�
test_unionGs
"    (zTestJointOps.test_unioncCsp|j�|j�}|�|jt|j�B|�|�|jt|j�B|�z|j|jBWnty`Yn0|�d�dS)Nz(s|t did not screen-out general iterables)r*rKr'r7r4r>r3�fail�r�ir
r
r�test_orZszTestJointOps.test_orcCs�|j�|j�}|jD]$}|�||v||jvo4||jv�q|�|j|�|j��|�t|�|j	�|�
t|jjt��t
ttjtttfD]�}|�|�d��|d��t
d��|�|�d��|d��t
d��|�|�d��|d��t
d��|�|�d��|d��t
d��|�|�d��|d	�|d
��t
d��q�|�d�}|��}|jt�k�rj|�t|�t|��n|�t|�t|��dS)NrBrC�ccrE�rG�bcrIZcbcfZbag�b)r*�intersectionr'r(r7r-r)r&rLrMr2rrr4r>r+r,rNrOrP�id�assertNotEqual)rrWr@rRr*�zr
r
r�test_intersectiones"
"    (
zTestJointOps.test_intersectionc	Cs�dd�}dD]n}|�|�}dD]Z}tttjtttfD]B}||�}|�|�}|||�}|�	||�|�
|dupr|du�q4qqdS)NcSst|��|�S)z&Pure python equivalent of isdisjoint())r4r])�s1�s2r
r
r�fzsz'TestJointOps.test_isdisjoint.<locals>.f)
rZr1�abrHZababacrCrYrErGrITF)r)r4r>r+r,rNrOrP�
isdisjointr7�
assertTrue)	rrdZlargrbZrargrRrcr8r9r
r
r�test_isdisjointys


zTestJointOps.test_isdisjointcCsp|j�|j�}|�|jt|j�@|�|�|jt|j�@|�z|j|j@Wnty`Yn0|�d�dS)Nz(s&t did not screen-out general iterables)r*r]r'r7r4r>r3rUrVr
r
r�test_and�szTestJointOps.test_andcCsf|j�|j�}|jD]$}|�||v||jvo4||jv�q|�|j|�|j��|�t|�|j	�|�
t|jjt��|�
t
|jjgg�tttjtttfD]�}|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td��|�|�d���td��|�|�d��|d�|d	��td
��q�dS)NrBrCrerErHrGr1rIr\r@)r*�
differencer'r(r7r-r)r&rLrMr2rrr3r4r>r+r,rNrOrP�rrWr@rRr
r
r�test_difference�s
"    zTestJointOps.test_differencecCsp|j�|j�}|�|jt|j�|�|�|jt|j�|�z|j|jWnty`Yn0|�d�dS)Nz(s-t did not screen-out general iterables)r*rjr'r7r4r>r3rUrVr
r
r�test_sub�szTestJointOps.test_subcCs&|j�|j�}|jD]$}|�||v||jv||jvA�q|�|j|�|j��|�t|�|j	�|�
t|jjt��|�
t
|jjgg�tttjtttfD]�}|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td	��q�dS)
NrBrC�abdrErFrGr1rIrJ)r*�symmetric_differencer'r(r7r-r)r&rLrMr2rrr3r4r>r+r,rNrOrPrkr
r
r�test_symmetric_difference�s
"   z&TestJointOps.test_symmetric_differencecCsp|j�|j�}|�|jt|j�A|�|�|jt|j�A|�z|j|jAWnty`Yn0|�d�dS)Nz(s^t did not screen-out general iterables)r*ror'r7r4r>r3rUrVr
r
r�test_xor�szTestJointOps.test_xorcCs||�|jt|j��|�|jt|j��|�|j|jkd�|�|jt|j��|�|jt|j��|�|j|jkd�dS�NFT)r7r*r4r&r>r_r'rr
r
r�
test_equality�szTestJointOps.test_equalitycCs,ttgd��}|�|�}|�t|�d�dS)N)ZabcdefZbcdZbdcbZfedZfedccba�)�mapr>r)r7r;)r�tr*r
r
r�test_setOfFrozensets�s
z!TestJointOps.test_setOfFrozensetscCs�t|jgd��\}}}|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�td��d��|�td��d��|�td��d��|�td��d��dS)N)reZabcde�defr1rHZcbs)rur)rgZassertFalser4�issubset�
issuperset)r�p�q�rr
r
r�test_sub_and_super�szTestJointOps.test_sub_and_supercCs�ttjd�D]z}t�|j|�}t�|�}|�|j|d|j|f�t|j�tt	fvrd|j_
t�|j|�}t�|�}|�|jj
|j
�qdS)Nr
�%s != %s�
)�range�pickle�HIGHEST_PROTOCOL�dumpsr*�loadsr7rLr4r>rS)rrWr{�dupr
r
r�
test_pickling�s

zTestJointOps.test_picklingc	Cs�ttjd�D]�}t|j�}|�|j�}t�||�}t�|�}|�|t	j
j�|�|�|�|�t�|�}zt
|�}Wnty�YqYn0t�||�}t�|�}|�|�|�||�|f��qdSr)r�r�r��iterr*r)r�r�ZassertIsInstance�collectionsrH�Iteratorr7�next�
StopIteration)r�protoZitorg�datar-�itZdropr
r
r�test_iterator_pickling�s




z#TestJointOps.test_iterator_picklingcs~G�fdd�d���d�}|�|g�}t�|�}|�t|�t|��|D]}|}qH|�t|�t|��|�|jd|j�dS)Ncs*eZdZdd�Zdd�Zd�fdd�	ZdS)	z*TestJointOps.test_deepcopy.<locals>.TracercSs
||_dSr�r)rrr
r
rr#sz3TestJointOps.test_deepcopy.<locals>.Tracer.__init__cSs|jSrr�rr
r
rrsz3TestJointOps.test_deepcopy.<locals>.Tracer.__hash__Ncs�|jd�Srr�)r�memo��Tracerr
r�__deepcopy__	sz7TestJointOps.test_deepcopy.<locals>.Tracer.__deepcopy__)N)rrr	r#rr�r
r�r
rr�sr�r�r
)r)�copy�deepcopyr_r^r7r)rrvr*r��elemZnewtr
r�r�
test_deepcopys
zTestJointOps.test_deepcopycsNGdd�d��t�fdd�td�D��}|D]}||_||_t|g�|_q,dS)Nc@seZdZdS)zTestJointOps.test_gc.<locals>.ANrr
r
r
r�Asr�c3s|]}��VqdSrr
��.0rW�r�r
r�	<genexpr>�z'TestJointOps.test_gc.<locals>.<genexpr>��)r4r��cycle�sub)rr*r�r
r�r�test_gcszTestJointOps.test_gccCsVGdd�d|j�}|�}t�}|�|�|�||�|�|�|�|�|�|�dS)Nc@seZdZdd�ZdS)z6TestJointOps.test_subclass_with_custom_hash.<locals>.HcSstt|�d@�S)Ni���)r$r^rr
r
rr!sz?TestJointOps.test_subclass_with_custom_hash.<locals>.H.__hash__N)rrr	rr
r
r
r�H sr�)r)r4�addr?�remove�discard)rr�r*rdr
r
r�test_subclass_with_custom_hashs


z+TestJointOps.test_subclass_with_custom_hashcCs||�t�g�}|�t|jt�t�g�|�t|jt��t|d�rx|�t|jt��|�t|jt��|�t|jt��dS)Nr�)	r)rr2rr=�hasattrr�r�r��rr*r
r
r�test_badcmp+s
zTestJointOps.test_badcmpcCsbt�}|�|g�}||_|jtkr4|�t|�d�n*t|��d�d}|�t|�d||f�dS)Nz
{set(...)}�(rz
%s({%s(...)}))rr)rr4r7r�	partition)r�wr*�namer
r
r�test_cyclical_repr6s
zTestJointOps.test_cyclical_reprc	Cs�t�}|�|g�}||_ttjd�}zN|�t|��|��ttjd�}|�	|�
�t|��W|��t�tj�n|��t�tj�0dS�Nr�r})
rr)r�openr�TESTFN�writerN�closer7�readr�unlink)rr�r*�for
r
r�test_cyclical_print@s�z TestJointOps.test_cyclical_printcCs:d}t�ttt|���}|�tdd�|D��|�|�|�}|�tdd�|D��|�|�|�|�tdd�|D��|�t	|d�r�|�
|�|�tdd�|D��|�t�t|��}|�tdd�|D��|�t�t|��}|�td	d�|D��|�t�t|�d
�}|�tdd�|D��|�|�|t�|d
��dS)Nr�css|]}|jVqdSrr �r�r�r
r
rr�Qr�z<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>css|]}|jVqdSrr r�r
r
rr�Sr�css|]}|jVqdSrr r�r
r
rr�Ur��symmetric_difference_updatecss|]}|jVqdSrr r�r
r
rr�Xr�css|]}|jVqdSrr r�r
r
rr�Zr�css|]}|jVqdSrr r�r
r
rr�\r��{css|]}|jVqdSrr r�r
r
rr�^r�)
r+r,rurr�r7�sumr)rjr�r�r4r>)r�nr-r*Zd2Zd3r
r
r�test_do_not_rehash_dict_keysNs"



z)TestJointOps.test_do_not_rehash_dict_keyscCsXGdd�dt�}|�}t�|�}t|dg�}t|�|_~~t��|�|�dud�dS)Nc@seZdZdS)z/TestJointOps.test_container_iterator.<locals>.CNrr
r
r
rrRcsrRr
zCycle was not collected)	�object�weakref�refr4r�rS�gcZcollectrg)rrR�objr��	containerr
r
r�test_container_iteratoras

z$TestJointOps.test_container_iteratorcCst�|t|j�dSr)rZcheck_free_after_iteratingr�r)rr
r
r�test_free_after_iteratingmsz&TestJointOps.test_free_after_iteratingN)rrr	r.r5r:r<rArTrXrarhrirlrmrprqrsrwr~r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr%(s8


r%c@s�eZdZeZeZdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Ze� e!ed3�d4�d5d6��Z"d7S)8�TestSetcCsj|��}|�|j�|�|t|j��|�|j�|�|t|j��|�t|j|d�|�t|jd�dS)Nr/r
)r)r#r&r7r4r'r2r3r�r
r
r�	test_inittszTestSet.test_initcCs0|�td��}|�|�}|�t|�t|��dS�Nrt�r)r�r_r^�rr*rvr
r
r�test_constructor_identity}s
z!TestSet.test_constructor_identitycCs$tgd��}hd�}|�||�dS)N�r
r/rt�r
r/rt�r4r7r�r
r
r�test_set_literal�szTestSet.test_set_literalcCs4hd�}|�t|�d�|��}|�t|�t�dS)N>r
r
)r7r;�poprLr$)rr*Zstored_valuer
r
r� test_set_literal_insertion_order�sz(TestSet.test_set_literal_insertion_ordercs:g��fdd�}|d�|d�|d�h}|��gd��dS)Ncs��|�dSr)�append)r���eventsr
r�record�sz9TestSet.test_set_literal_evaluation_order.<locals>.recordr
r/rtr�)r7)rr�r*r
r�r�!test_set_literal_evaluation_order�sz)TestSet.test_set_literal_evaluation_ordercCs|�tt|j�dSr)r2r3�hashr*rr
r
r�	test_hash�szTestSet.test_hashcCs0|j��|�|jt��|�t|j�d�dSr)r*�clearr7r4r;rr
r
r�
test_clear�s
zTestSet.test_clearcCsD|j��}|�|j|�|�t|j�t|��|�t|�|j�dSr)r*r�r7r_r^rLrM�rr�r
r
r�	test_copy�s
zTestSet.test_copycCsT|j�d�|�d|j�|j��}|j�d�|�|j|�|�t|jjg�dS)N�Q)r*r�r?r�r7r2r3r�r
r
r�test_add�s
zTestSet.test_addcCs�|j�d�|�d|j�|�t|jjd�|�t|jjg�|�t|j�g�}|�	|�|j�|�|�|�|j��|�|�|j�|�|�t|jj|�|j��dS�Nr1r�)
r*r��assertNotInr2�KeyErrorr3r)r>r&r?r�r
r
r�test_remove�szTestSet.test_removecCsbdD]X}z|j�|�Wn:tyR}z"|jd}|�||�WYd}~qd}~00|��qdS)N)r��r
r)r*r�r�r"r7rU)r�v1�e�v2r
r
r�test_remove_keyerror_unpacking�s
"z&TestSet.test_remove_keyerror_unpackingcCst|�ddg�}z|j�|�WnHtyf}z0|�|jd|ud�||jd��WYd}~nd}~00|��dS)Nrt�rzKeyError should be {0}, not {1})r)r*r�r�rgr"�formatrU)r�keyr�r
r
r�test_remove_keyerror_set�s��z TestSet.test_remove_keyerror_setcCs�|j�d�|�d|j�|j�d�|�t|jjg�|�t|j�g�}|�|�|j�|�|�|�|j��|�|�|j�|�|�|�|j��dSr�)	r*r�r�r2r3r)r>r&r?r�r
r
r�test_discard�szTestSet.test_discardcCs@tt|j��D]}|j��}|�||j�q|�t|jj�dSr)r�r;r*r�r�r2r�)rrWr�r
r
r�test_pop�s
zTestSet.test_popc	Cs(|j�|j�}|�|d�|j|jD]}|�||j�q&|�t|jjt��|�t	|jjgg�dD]P\}}t
ttj
tttfD]4}|�d�}|�|�||��d�|�|t
|��q�qfdD]f}d}t
ttj
tttfD]J}|�d�}|�|�||�||��d�|�|t
|�t
|�Bt
|�B�q�q�dS)N))rCrD�rErF)rGrH�rIrJrB)rCrErGrIZabcdaZahi)r*�updater'r7r&r?r2rrr3r4r>r+r,rNrOrPr)�r�retvalr@r{r|rRr*r
r
r�test_update�s"

zTestSet.test_updatecCs8|jt|j�O_|j|jD]}|�||j�q dSr)r*r4r'r&r?�rr@r
r
r�test_ior�szTestSet.test_iorc		Cs.|j�|j�}|�|d�|j|jD]6}||jvrN||jvrN|�||j�q&|�||j�q&|�t|jjt	��|�t
|jjgg�dD]�\}}ttt
jtttfD]�}|�d�}|�|�||��d�|�|t|��d}|�|�}d}|�|�||�||��d�|�|td�t|�@t|�@�q�q�dS)N))rCr@)rErZ)rGr[)rIrZrBZcbc)r*�intersection_updater'r7r&r?r�r2rrr3r4r>r+r,rNrOrPr))	rr�r@r{r|rRr*�ssrvr
r
r�test_intersection_update�s$

z TestSet.test_intersection_updatecCs\|jt|j�M_|j|jD]6}||jvrH||jvrH|�||j�q |�||j�q dSr�r*r4r'r&r?r�r�r
r
r�	test_iands
zTestSet.test_iandcCsr|j�|j�}|�|d�|j|jD]6}||jvrN||jvrN|�||j�q&|�||j�q&|�t|jjt	��|�t
|jjgg�|�t
|jjgg�dD]�\}}tt
tjtttfD]�}|�d�}|�|�||��d�|�|t|��|�d�}|��|�||�d��|�d�}|�|d��|�||�d��|�d�}|�|d�|d��|�||�d��q�q�dS)N))rCre)rErH�rGr1)rIrHrBZ
abcdefghihZabaZcdefghihrCZefghih)r*�difference_updater'r7r&r?r�r2rrr3r�r4r>r+r,rNrOrPr)r�r
r
r�test_difference_updates.



zTestSet.test_difference_updatecCs\|jt|j�8_|j|jD]6}||jvrH||jvrH|�||j�q |�||j�q dSrr�r�r
r
r�	test_isub0s
zTestSet.test_isubcCs�|j�|j�}|�|d�|j|jD]6}||jv||jvArN|�||j�q&|�||j�q&|�t|jjt	��|�t
|jjgg�dD]P\}}ttt
jtttfD]4}|�d�}|�|�||��d�|�|t|��q�q�dS)N))rCrnr�r�r�rB)r*r�r'r7r&r?r�r2rrr3r4r>r+r,rNrOrPr)r�r
r
r� test_symmetric_difference_update8s
z(TestSet.test_symmetric_difference_updatecCs\|jt|j�N_|j|jD]6}||jv||jvArH|�||j�q |�||j�q dSrr�r�r
r
r�	test_ixorHs
zTestSet.test_ixorcCst|j��}||O}|�||j�||M}|�||j�||8}|�||���|j��}||N}|�||���dSr)r*r�r7r))rrvr
r
r�test_inplace_on_selfPs

zTestSet.test_inplace_on_selfcCsF|�d�}t�|�}|�t|�t|��d}t��|�tt|�dS)NZgallahad)	r)r��proxyr7rNr�
gc_collectr2�ReferenceError)rr*r{r
r
r�test_weakref\s

zTestSet.test_weakrefcCs�Gdd�d�}hd�}|�}||k|�|j�|�}||k|�|j�|�}||k|�|j�|�}||k|�|j�dS)Nc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z5TestSet.test_rich_compare.<locals>.TestRichSetComparecSs
d|_dS�NTF)�	gt_called�rZsome_setr
r
r�__gt__fsz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__gt__cSs
d|_dSr)�	lt_calledr
r
r
r�__lt__isz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__lt__cSs
d|_dSr)�	ge_calledr
r
r
r�__ge__lsz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__ge__cSs
d|_dSr)�	le_calledr
r
r
r�__le__osz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__le__N)rrr	rr
rrr
r
r
r�TestRichSetCompareesrr�)rgr	rrr)rrZmysetZmyobjr
r
r�test_rich_comparedszTestSet.test_rich_compare�
test_c_apiz*C API test only available in a debug buildcCs|�t���d�dS�NT)r7r4rrr
r
rr�szTestSet.test_c_apiN)#rrr	r4r)rMr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr�unittestZ
skipUnlessr�rr
r
r
rr�ps>	$�r�c@seZdZdS)�SetSubclassNrr
r
r
rr�src@seZdZeZeZdS)�TestSetSubclassN)rrr	rr)r4rMr
r
r
rr�src@seZdZgdfdd�ZdS)�SetSubclassWithKeywordArgsNcCst�||�dSr)r4r#)r�iterable�newargr
r
rr#�sz#SetSubclassWithKeywordArgs.__init__)rrr	r#r
r
r
rr�src@seZdZdd�ZdS)�TestSetSubclassWithKeywordArgscCstdd�dS)z=SF bug #1486663 -- this used to erroneously raise a TypeErrorr
)rN)rrr
r
r�test_keywords_in_subclass�sz8TestSetSubclassWithKeywordArgs.test_keywords_in_subclassN)rrr	rr
r
r
rr�src@sTeZdZeZeZdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dS)�
TestFrozenSetcCs.|�|j�}|�|j�|�|t|j��dSr)r)r&r#r'r7r4r�r
r
rr��szTestFrozenSet.test_initcCsnt�}t�tg�td�td�t�tg�td�td�ttd��tt��t|�|g}|�tttt|���d�dS)Nr
rZrr
)r>r�r7r;r4rur^)rrd�efsr
r
r�test_singleton_empty_frozenset�s�z,TestFrozenSet.test_singleton_empty_frozensetcCs0|�td��}|�|�}|�t|�t|��dSr�)r)r�r7r^r�r
r
rr��s
z'TestFrozenSet.test_constructor_identitycs~|�t|�d��t|�d���d��fdd�t��D�}t�}td�D] }t|�|�t|�|���qH|�t|�d�dS)NZabcdebZebecda�dcsg|]}t���qSr
�rr��r�r
r�
<listcomp>�r�z+TestFrozenSet.test_hash.<locals>.<listcomp>��r
)r7r�r)r�r4rr�r;)r�seq�resultsrWr
r#rr��s�zTestFrozenSet.test_hashcCs$|j��}|�t|j�t|��dSr)r*r�r7r^r�r
r
rr��s
zTestFrozenSet.test_copycCsrttd��td�dg}|�|�}|�t|��}|�||�|�t|�t|��i}d||<|�||d�dS)Nr�ZabcdefgZapple�*)rOr�r)�reversedr7r_r^)rr&Zkey1Zkey2r-r
r
r�test_frozen_as_dictkey�s
z$TestFrozenSet.test_frozen_as_dictkeycCs"|�d�}|�t|�t|��dS)NZabcdcda)r)r7r��rrdr
r
r�test_hash_caching�s
zTestFrozenSet.test_hash_cachingc
	s�d}t�}|j}dd�t|�D�}td|�D]"�|tt�fdd�|D����q.|�t|�d|�dd�}dd	�}td
�D]V}d|}|d�t|fD]8}t�fdd
�tt|||���D��}	|�d|	|�q�q~dS)N�
cSsg|]}|dd|>f�qSr�r
r�r
r
rr$�r�z9TestFrozenSet.test_hash_effectiveness.<locals>.<listcomp>r/csg|]\}}|�@r|�qSr
r
)r�r��m�rWr
rr$�r�cSs8t�g}t|d�D]}t|�}|�|�q|d|�Sr)r>r�r�)r��numsrW�numr
r
r�zf_range�s
z7TestFrozenSet.test_hash_effectiveness.<locals>.zf_rangecss2tt|�d�D]}ttt�||��EdHqdSr)r�r;rur>�	itertools�combinations)r*rWr
r
r�powerset�sz7TestFrozenSet.test_hash_effectiveness.<locals>.powerset�r
csh|]}|�@�qSr
r
)r��h)�maskr
r�	<setcomp>�r�z8TestFrozenSet.test_hash_effectiveness.<locals>.<setcomp>r�)	r4r�r�r�r>r7r;ruZ
assertGreater)
rr�Z
hashvaluesZaddhashvalueZ	elemmasksr2r5rvr0rQr
)rWr8r�test_hash_effectiveness�s $z%TestFrozenSet.test_hash_effectivenessN)rrr	r>r)rMr�r r�r�r�r*r,r:r
r
r
rr�s	

rc@seZdZdS)�FrozenSetSubclassNrr
r
r
rr;�sr;c@s4eZdZeZeZdd�Zdd�Zdd�Z	dd�Z
d	S)
�TestFrozenSetSubclasscCs0|�td��}|�|�}|�t|�t|��dSr�r�r�r
r
rr��s
z/TestFrozenSetSubclass.test_constructor_identitycCs$|j��}|�t|j�t|��dSr)r*r�r_r^r�r
r
rr��s
zTestFrozenSetSubclass.test_copycCs"|��}|�|�}|�||�dSr)r)r7r�r
r
r�test_nested_empty_constructors
z3TestFrozenSetSubclass.test_nested_empty_constructorcCs�|j}t�}|�}|�|g�|d�|d�|�|g�|d�|d�|td��||��|t��||||�||�g}|�tttt|���t|��dS)Nr
rZr)r)r>r�r7r;r4rur^)rZ	Frozensetrd�Frr
r
rr s�z4TestFrozenSetSubclass.test_singleton_empty_frozensetN)rrr	r;r)r>rMr�r�r=r r
r
r
rr<�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�TestBasicOpscCs"|jdur|�t|j�|j�dSr)rr7r4rr
r
r�	test_reprs
zTestBasicOps.test_reprcCslt|j�}|�|�d��|�|�d��|dd��d�}|��dd�|jD�}|��|�||�dS)N�{�}r
���z, cSsg|]}t|��qSr
)r)r�rr
r
rr$#r�z:TestBasicOps.check_repr_against_values.<locals>.<listcomp>)	rr4rg�
startswith�endswith�split�sort�valuesr7)r�text�resultZsorted_repr_valuesr
r
r�check_repr_against_valuess
z&TestBasicOps.check_repr_against_valuesc	Cszz^ttjd�}|�t|j��|��ttjd�}|�|��t	|j��W|��t�
tj�n|��t�
tj�0dSr�)r�rr�r�rNr4r�r7r�rr�)rr�r
r
r�
test_print's�zTestBasicOps.test_printcCs|�t|j�|j�dSr)r7r;r4�lengthrr
r
r�test_length2szTestBasicOps.test_lengthcCs|�|j|j�dSr�r7r4rr
r
r�test_self_equality5szTestBasicOps.test_self_equalitycCs|�|j|j�dSr)r7r4r�rr
r
r�test_equivalent_equality8sz%TestBasicOps.test_equivalent_equalitycCs|�|j��|j�dSr)r7r4r�r�rr
r
rr�;szTestBasicOps.test_copycCs|j|jB}|�||j�dSr�r4r7r��rrJr
r
r�test_self_union>szTestBasicOps.test_self_unioncCs|jtB}|�||j�dSr�r4�	empty_setr7r�rSr
r
r�test_empty_unionBs
zTestBasicOps.test_empty_unioncCst|jB}|�||j�dSr)rVr4r7r�rSr
r
r�test_union_emptyFs
zTestBasicOps.test_union_emptycCs|j|j@}|�||j�dSrrRrSr
r
r�test_self_intersectionJsz#TestBasicOps.test_self_intersectioncCs|jt@}|�|t�dSr�r4rVr7rSr
r
r�test_empty_intersectionNs
z$TestBasicOps.test_empty_intersectioncCst|j@}|�|t�dSr�rVr4r7rSr
r
r�test_intersection_emptyRs
z$TestBasicOps.test_intersection_emptycCs"|j�|j�}|�||j�dSr�r4rfr7rSr
r
r�test_self_isdisjointVsz!TestBasicOps.test_self_isdisjointcCs|j�t�}|�|d�dSr)r4rfrVr7rSr
r
r�test_empty_isdisjointZsz"TestBasicOps.test_empty_isdisjointcCst�|j�}|�|d�dSr)rVrfr4r7rSr
r
r�test_isdisjoint_empty^sz"TestBasicOps.test_isdisjoint_emptycCs|j|jA}|�|t�dSr�r4r7rVrSr
r
r�test_self_symmetric_differencebsz+TestBasicOps.test_self_symmetric_differencecCs|jtA}|�||j�dSrrZrSr
r
r�test_empty_symmetric_differencefs
z,TestBasicOps.test_empty_symmetric_differencecCs|j|j}|�|t�dSrrbrSr
r
r�test_self_differencejsz!TestBasicOps.test_self_differencecCs|jt}|�||j�dSrrUrSr
r
r�test_empty_differencens
z"TestBasicOps.test_empty_differencecCst|j}|�|t�dSrr\rSr
r
r�test_empty_difference_revrs
z&TestBasicOps.test_empty_difference_revcCs>|jD]}|�||j�qt|j�}|�|��t|j��dSr)r4r?rHr�r7�__length_hint__r;)r�vZsetiterr
r
r�test_iterationvs

zTestBasicOps.test_iterationcCsJttjd�D]6}t�|j|�}t�|�}|�|j|d|j|f�qdS)Nr
r)r�r�r�r�r4r�r7)rr�r{r�r
r
rr�|s

�zTestBasicOps.test_picklingcCsp|�t��t��d�Wd�n1s,0Y|�t��t��d�Wd�n1sb0YdS)Nr�)r2r3r4rjr�rr
r
r�test_issue_37219�s*zTestBasicOps.test_issue_37219N)rrr	r@rKrLrNrPrQr�rTrWrXrYr[r]r_r`rarcrdrerfrgrjr�rkr
r
r
rr?s0r?c@seZdZdd�ZdS)�TestBasicOpsEmptycCs4d|_g|_t|j�|_t|j�|_d|_d|_dS)Nz	empty setrzset()��caserHr4r�rMrrr
r
rr.�szTestBasicOpsEmpty.setUpN�rrr	r.r
r
r
rrl�srlc@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsSingletoncCs6d|_dg|_t|j�|_t|j�|_d|_d|_dS)Nzunit set (number)rtr
z{3}rmrr
r
rr.�szTestBasicOpsSingleton.setUpcCs|�d|j�dSr��r?r4rr
r
r�test_in�szTestBasicOpsSingleton.test_incCs|�d|j�dS�Nr/�r�r4rr
r
r�test_not_in�sz!TestBasicOpsSingleton.test_not_inN�rrr	r.rrrur
r
r
rrp�srpc@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsTuplecCs6d|_dg|_t|j�|_t|j�|_d|_d|_dS)Nzunit set (tuple)�r�zeror
z
{(0, 'zero')}rmrr
r
rr.�szTestBasicOpsTuple.setUpcCs|�d|j�dS)Nrxrqrr
r
rrr�szTestBasicOpsTuple.test_incCs|�d|j�dS)N�	rtrr
r
rru�szTestBasicOpsTuple.test_not_inNrvr
r
r
rrw�srwc@seZdZdd�ZdS)�TestBasicOpsTriplecCs<d|_ddtjg|_t|j�|_t|j�|_d|_d|_dS)Nz
triple setrryrt)rn�operatorr�rHr4r�rMrrr
r
rr.�szTestBasicOpsTriple.setUpNror
r
r
rr{�sr{c@seZdZdd�Zdd�ZdS)�TestBasicOpsStringcCs2d|_gd�|_t|j�|_t|j�|_d|_dS)Nz
string set�r1r\r@rt�rnrHr4r�rMrr
r
rr.�s

zTestBasicOpsString.setUpcCs|��dSr�rKrr
r
rr@�szTestBasicOpsString.test_reprN�rrr	r.r@r
r
r
rr}�sr}c@seZdZdd�Zdd�ZdS)�TestBasicOpsBytescCs2d|_gd�|_t|j�|_t|j�|_d|_dS)Nz	bytes set)�a�b�crtrrr
r
rr.�s

zTestBasicOpsBytes.setUpcCs|��dSrr�rr
r
rr@�szTestBasicOpsBytes.test_reprNr�r
r
r
rr��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsMixedStringBytescCsRt��|_|j��t�dt�d|_gd�|_t	|j�|_	t	|j�|_
d|_dS)N�ignorezstring and bytes set)r1r\r�r�r�)rZcheck_warnings�_warning_filters�	__enter__�warnings�simplefilter�BytesWarningrnrHr4r�rMrr
r
rr.�s


z"TestBasicOpsMixedStringBytes.setUpcCs|j�ddd�dSr)r��__exit__rr
r
r�tearDown�sz%TestBasicOpsMixedStringBytes.tearDowncCs|��dSrr�rr
r
rr@�sz&TestBasicOpsMixedStringBytes.test_reprN)rrr	r.r�r@r
r
r
rr��s
r�ccst�dVdSr)r3r
r
r
r�baditer�sr�ccs
dVdSrr
r
r
r
r�gooditer�sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�TestExceptionPropagationz?SF 628246:  Set constructor should not trap iterator TypeErrorscCs|�ttt��dSr)r2r3r4r�rr
r
r�test_instanceWithException�sz3TestExceptionPropagation.test_instanceWithExceptioncCsFtgd��td�tdddd��ttd��td�tt��dS)Nr�r
r/rt)ZoneZtwoZthreerH)r4r�r�rr
r
r�test_instancesWithoutException�sz7TestExceptionPropagation.test_instancesWithoutExceptioncCsHtgd��}z|D]}|�dg�qWnty8Yn0|�d�dS)Nr�r�z0no exception when changing size during iteration)r4r�rrU)rr*rWr
r
r�test_changingSizeWhileIteratingsz8TestExceptionPropagation.test_changingSizeWhileIteratingN)rrr	rr�r�r�r
r
r
rr��s	r�c@seZdZdd�ZdS)�
TestSetOfSetscCs\tdg�}t|g�}|��}|�t|�t�|�|�|�|�|�|t��|�|�dSr)r>r4r�r7rLr�r�r�)r�innerZouter�elementr
r
r�test_constructors



zTestSetOfSets.test_constructorN)rrr	r�r
r
r
rr�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!d"�Zd#d$�Zd%S)&�
TestBinaryOpscCstd�|_dS�N�r/r���r4rr
r
rr. szTestBinaryOps.setUpcCs|�|jtdddd���dS)Nr
rt�r�rOrr
r
r�test_eq#szTestBinaryOps.test_eqcCs$|jtdg�B}|�|td��dS�Nr/r�r�rSr
r
r�test_union_subset&szTestBinaryOps.test_union_subsetcCs*|jtgd��B}|�|tgd���dS�N�r/r�r��r�rSr
r
r�test_union_superset*sz!TestBinaryOps.test_union_supersetcCs*|jtgd��B}|�|tgd���dS�N�rtr�r�)r/rtr�r�r�r�rSr
r
r�test_union_overlap.sz TestBinaryOps.test_union_overlapcCs(|jtdg�B}|�|tgd���dS�Nr�r�r�rSr
r
r�test_union_non_overlap2sz$TestBinaryOps.test_union_non_overlapcCs"|jtd�@}|�|td��dS�N�r/r�r�rSr
r
r�test_intersection_subset6sz&TestBinaryOps.test_intersection_subsetcCs*|jtgd��@}|�|tgd���dS�Nr�r�r�rSr
r
r�test_intersection_superset:sz(TestBinaryOps.test_intersection_supersetcCs(|jtgd��@}|�|tdg��dS�Nr�r�r�rSr
r
r�test_intersection_overlap>sz'TestBinaryOps.test_intersection_overlapcCs |jtdg�@}|�|t�dS�Nr�rbrSr
r
r�test_intersection_non_overlapBsz+TestBinaryOps.test_intersection_non_overlapcCs |j�td��}|�|d�dS)Nr�Fr^rSr
r
r�test_isdisjoint_subsetFsz$TestBinaryOps.test_isdisjoint_subsetcCs$|j�tgd���}|�|d�dS)Nr�Fr^rSr
r
r�test_isdisjoint_supersetJsz&TestBinaryOps.test_isdisjoint_supersetcCs$|j�tgd���}|�|d�dS)Nr�Fr^rSr
r
r�test_isdisjoint_overlapNsz%TestBinaryOps.test_isdisjoint_overlapcCs"|j�tdg��}|�|d�dS)Nr�Tr^rSr
r
r�test_isdisjoint_non_overlapRsz)TestBinaryOps.test_isdisjoint_non_overlapcCs$|jtd�A}|�|tdg��dS�Nr�r�r�rSr
r
r�test_sym_difference_subsetVsz(TestBinaryOps.test_sym_difference_subsetcCs$|jtd�A}|�|tdg��dS�Nr�r�r�rSr
r
r�test_sym_difference_supersetZsz*TestBinaryOps.test_sym_difference_supersetcCs&|jtd�A}|�|tgd���dS�Nr�)r/rtr�r�r�rSr
r
r�test_sym_difference_overlap^sz)TestBinaryOps.test_sym_difference_overlapcCs(|jtdg�A}|�|tgd���dSr�r�rSr
r
r�test_sym_difference_non_overlapbsz-TestBinaryOps.test_sym_difference_non_overlapN)rrr	r.r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr�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),�
TestUpdateOpscCstd�|_dSr�r�rr
r
rr.iszTestUpdateOps.setUpcCs*|jtdg�O_|�|jtd��dSr�r�rr
r
rr�lszTestUpdateOps.test_union_subsetcCs0|jtgd��O_|�|jtgd���dSr�r�rr
r
rr�psz!TestUpdateOps.test_union_supersetcCs0|jtgd��O_|�|jtgd���dSr�r�rr
r
rr�tsz TestUpdateOps.test_union_overlapcCs.|jtdg�O_|�|jtgd���dSr�r�rr
r
rr�xsz$TestUpdateOps.test_union_non_overlapcCs.|j�tgd���|�|jtgd���dSr�)r4r�r7rr
r
r�test_union_method_call|sz$TestUpdateOps.test_union_method_callcCs(|jtd�M_|�|jtd��dSr�r�rr
r
rr��sz&TestUpdateOps.test_intersection_subsetcCs0|jtgd��M_|�|jtgd���dSr�r�rr
r
rr��sz(TestUpdateOps.test_intersection_supersetcCs.|jtgd��M_|�|jtdg��dSr�r�rr
r
rr��sz'TestUpdateOps.test_intersection_overlapcCs&|jtdg�M_|�|jt�dSr�rbrr
r
rr��sz+TestUpdateOps.test_intersection_non_overlapcCs,|j�tgd���|�|jtdg��dSr�)r4r�r7rr
r
r�test_intersection_method_call�sz+TestUpdateOps.test_intersection_method_callcCs*|jtd�N_|�|jtdg��dSr�r�rr
r
rr��sz(TestUpdateOps.test_sym_difference_subsetcCs*|jtd�N_|�|jtdg��dSr�r�rr
r
rr��sz*TestUpdateOps.test_sym_difference_supersetcCs,|jtd�N_|�|jtgd���dSr�r�rr
r
rr��sz)TestUpdateOps.test_sym_difference_overlapcCs.|jtdg�N_|�|jtgd���dSr�r�rr
r
rr��sz-TestUpdateOps.test_sym_difference_non_overlapcCs.|j�tgd���|�|jtgd���dSr�)r4r�r7rr
r
r�test_sym_difference_method_call�sz-TestUpdateOps.test_sym_difference_method_callcCs*|jtd�8_|�|jtdg��dSr�r�rr
r
r�test_difference_subset�sz$TestUpdateOps.test_difference_subsetcCs(|jtd�8_|�|jtg��dSr�r�rr
r
r�test_difference_superset�sz&TestUpdateOps.test_difference_supersetcCs,|jtd�8_|�|jtddg��dS�Nr�r/r�r�rr
r
r�test_difference_overlap�sz%TestUpdateOps.test_difference_overlapcCs.|jtdg�8_|�|jtgd���dS)Nr�r�r�rr
r
r�test_difference_non_overlap�sz)TestUpdateOps.test_difference_non_overlapcCs.|j�tgd���|�|jtddg��dSr�)r4r�r7rr
r
r�test_difference_method_call�sz)TestUpdateOps.test_difference_method_callN)rrr	r.r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr�hs*r�c@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�
TestMutatecCsgd�|_t|j�|_dS)Nr~)rHr4rr
r
rr.�s
zTestMutate.setUpcCs"|j�d�|�|jtd��dS)Nr@rH�r4r�r7rr
r
r�test_add_present�szTestMutate.test_add_presentcCs"|j�d�|�|jtd��dS)Nr-rDr�rr
r
r�test_add_absent�szTestMutate.test_add_absentcCsJt�}d}|jD]&}|�|�|d7}|�t|�|�q|�||j�dS)Nrr
)r4rHr�r7r;)r�tmp�expected_lenrir
r
r�test_add_until_full�s

zTestMutate.test_add_until_fullcCs"|j�d�|�|jtd��dS)Nr\Zac)r4r�r7rr
r
r�test_remove_present�szTestMutate.test_remove_presentcCs2z|j�d�|�d�Wnty,Yn0dS)Nr-z7Removing missing element should have raised LookupError)r4r�rU�LookupErrorrr
r
r�test_remove_absent�s
zTestMutate.test_remove_absentcCs@t|j�}|jD]*}|j�|�|d8}|�t|j�|�qdSr)r;r4rHr�r7)rr�rir
r
r�test_remove_until_empty�s


z"TestMutate.test_remove_until_emptycCs"|j�d�|�|jtd��dS)Nr@re�r4r�r7rr
r
r�test_discard_present�szTestMutate.test_discard_presentcCs"|j�d�|�|jtd��dS)Nr-rHr�rr
r
r�test_discard_absent�szTestMutate.test_discard_absentcCs |j��|�t|j�d�dSr)r4r�r7r;rr
r
rr��s
zTestMutate.test_clearcCsLi}|jrd||j��<q|�t|�t|j��|jD]}|�||�q6dSr)r4r�r7r;rHr?)rZpoppedrir
r
rr��s
zTestMutate.test_popcCs$|j�d�|�|jt|j��dS)Nr
�r4r�r7rHrr
r
r�test_update_empty_tuple�sz"TestMutate.test_update_empty_tuplecCs$|j�d�|�|jt|j��dS)Nr0r�rr
r
r�test_update_unit_tuple_overlap�sz)TestMutate.test_update_unit_tuple_overlapcCs*|j�d�|�|jt|jdg��dS)N)r1r`r`r�rr
r
r�"test_update_unit_tuple_non_overlapsz-TestMutate.test_update_unit_tuple_non_overlapN)rrr	r.r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr��s	r�c@s0eZdZddd�Zdddddd	d
�Zdd�Zd
S)�TestSubsetsryrz)�<=�>=�==�!=�>�<r�r�)r�r�r�r�r�r�cCs�|j}|j}dD]�}||jv}td|dt��}|�||�|tjvrlt|tj|�}||�}|�||�tj	|}td|dt��}|�||�|tjvrt|tj|�}||�}|�||�qdS)N)r�r�r�r�r�r�rS�y)
�left�right�cases�eval�localsr7r��case2method�getattr�reverse)rrSr�rnr9rJ�methodZrcaser
r
r�
test_issubsets"



zTestSubsets.test_issubsetN)rrr	r�r�r�r
r
r
rr�s��r�c@s eZdZe�Ze�ZdZdZdS)�TestSubsetEqualEmptyz
both empty�r�r�r�N�rrr	r4r�r�r�r�r
r
r
rr�.sr�c@s,eZdZeddg�Zeddg�ZdZdZdS)�TestSubsetEqualNonEmptyr
r/z
equal pairr�Nr�r
r
r
rr�6sr�c@s&eZdZe�Zeddg�ZdZdZdS)�TestSubsetEmptyNonEmptyr
r/zone empty, one non-empty�r�r�r�Nr�r
r
r
rr�>sr�c@s*eZdZedg�Zeddg�ZdZdZdS)�TestSubsetPartialr
r/z&one a non-empty proper subset of otherr�Nr�r
r
r
rr�Fs
r�c@s(eZdZedg�Zedg�ZdZdZdS)�TestSubsetNonOverlapr
r/zneither empty, neither containsr�Nr�r
r
r
rr�Ns

r�c@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestOnlySetsInBinaryOpscCsT|�|j|jkd�|�|j|jkd�|�|j|jkd�|�|j|jkd�dSrr)r7rr4rr
r
r�
test_eq_neXsz"TestOnlySetsInBinaryOps.test_eq_necs���t�fdd����t�fdd����t�fdd����t�fdd����t�fdd����t�fdd����t�fdd����t�fd	d��dS)
Ncs�j�jkSr�r4rr
rr
r�<lambda>`r�z:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>cs�j�jkSrr�r
rr
rr�ar�cs�j�jkSrr�r
rr
rr�br�cs�j�jkSrr�r
rr
rr�cr�cs�j�jkSr�rr4r
rr
rr�er�cs�j�jkSrr�r
rr
rr�fr�cs�j�jkSrr�r
rr
rr�gr�cs�j�jkSrr�r
rr
rr�hr�)r2r3rr
rr�test_ge_gt_le_lt_sz(TestOnlySetsInBinaryOps.test_ge_gt_le_ltcCs6z|j|jO_Wnty&Yn0|�d�dS�Nzexpected TypeError�r4rr3rUrr
r
r�test_update_operatorjs
z,TestOnlySetsInBinaryOps.test_update_operatorcCs.|jr|j�|j�n|�t|jj|j�dSr)�otherIsIterabler4r�rr2r3rr
r
rr�rsz#TestOnlySetsInBinaryOps.test_updatecsV��t�fdd����t�fdd���jr>�j��j�n��t�jj�j�dS)Ncs�j�jBSrr�r
rr
rr�yr�z4TestOnlySetsInBinaryOps.test_union.<locals>.<lambda>cs�j�jBSrr�r
rr
rr�zr�)r2r3r�r4rKrrr
rrrTxs
z"TestOnlySetsInBinaryOps.test_unioncCs6z|j|jM_Wnty&Yn0|�d�dSr�r�rr
r
r�!test_intersection_update_operator�s
z9TestOnlySetsInBinaryOps.test_intersection_update_operatorcCs.|jr|j�|j�n|�t|jj|j�dSr)r�r4r�rr2r3rr
r
rr��s�z0TestOnlySetsInBinaryOps.test_intersection_updatecsV��t�fdd����t�fdd���jr>�j��j�n��t�jj�j�dS)Ncs�j�j@Srr�r
rr
rr��r�z;TestOnlySetsInBinaryOps.test_intersection.<locals>.<lambda>cs�j�j@Srr�r
rr
rr��r�)r2r3r�r4r]rrr
rrra�s
z)TestOnlySetsInBinaryOps.test_intersectioncCs6z|j|jN_Wnty&Yn0|�d�dSr�r�rr
r
r�#test_sym_difference_update_operator�s
z;TestOnlySetsInBinaryOps.test_sym_difference_update_operatorcCs.|jr|j�|j�n|�t|jj|j�dSr)r�r4r�rr2r3rr
r
r�test_sym_difference_update�s�z2TestOnlySetsInBinaryOps.test_sym_difference_updatecsV��t�fdd����t�fdd���jr>�j��j�n��t�jj�j�dS)Ncs�j�jASrr�r
rr
rr��r�z=TestOnlySetsInBinaryOps.test_sym_difference.<locals>.<lambda>cs�j�jASrr�r
rr
rr��r�)r2r3r�r4rorrr
rr�test_sym_difference�s
z+TestOnlySetsInBinaryOps.test_sym_differencecCs6z|j|j8_Wnty&Yn0|�d�dSr�r�rr
r
r�test_difference_update_operator�s
z7TestOnlySetsInBinaryOps.test_difference_update_operatorcCs.|jr|j�|j�n|�t|jj|j�dSr)r�r4r�rr2r3rr
r
rr��s�z.TestOnlySetsInBinaryOps.test_difference_updatecsV��t�fdd����t�fdd���jr>�j��j�n��t�jj�j�dS)Ncs�j�jSrr�r
rr
rr��r�z9TestOnlySetsInBinaryOps.test_difference.<locals>.<lambda>cs�j�jSrr�r
rr
rr��r�)r2r3r�r4rjrrr
rrrl�s
z'TestOnlySetsInBinaryOps.test_differenceN)rrr	r�r�r�r�rTr�r�rarrrrr�rlr
r
r
rr�Vsr�c@seZdZdd�ZdS)�TestOnlySetsNumericcCstd�|_d|_d|_dS)Nr��F�r4rr�rr
r
rr.�s
zTestOnlySetsNumeric.setUpNror
r
r
rr�src@seZdZdd�ZdS)�TestOnlySetsDictcCs td�|_ddd�|_d|_dS)Nr�r/r�)r
rtTrrr
r
rr.�s
zTestOnlySetsDict.setUpNror
r
r
rr�src@seZdZdd�ZdS)�TestOnlySetsOperatorcCstd�|_tj|_d|_dS)Nr�F)r4r|r�rr�rr
r
rr.�s
zTestOnlySetsOperator.setUpNror
r
r
rr�src@seZdZdd�ZdS)�TestOnlySetsTuplecCstd�|_d|_d|_dS)Nr�r�Trrr
r
rr.�s
zTestOnlySetsTuple.setUpNror
r
r
rr	�sr	c@seZdZdd�ZdS)�TestOnlySetsStringcCstd�|_d|_d|_dS)Nr�rHTrrr
r
rr.�s
zTestOnlySetsString.setUpNror
r
r
rr
�sr
c@seZdZdd�ZdS)�TestOnlySetsGeneratorcCs$dd�}td�|_|�|_d|_dS)Ncsstddd�D]
}|VqdS)Nrr�r/)r�r/r
r
r�gen�sz(TestOnlySetsGenerator.setUp.<locals>.genr�Tr)rrr
r
rr.�s
zTestOnlySetsGenerator.setUpNror
r
r
rr�src@seZdZdd�Zdd�ZdS)�TestCopyingcCsd|j��}t|td�}t|jtd�}|�t|�t|��tt|��D]}|�||||u�qDdS�N�r�)r4r�r6rr7r;r�rg�rr�Zdup_listZset_listrWr
r
rr��s
zTestCopying.test_copycCsdt�|j�}t|td�}t|jtd�}|�t|�t|��tt|��D]}|�||||�qFdSr)r�r�r4r6rr7r;r�rr
r
r�test_deep_copyszTestCopying.test_deep_copyN)rrr	r�rr
r
r
rr
�sr
c@seZdZdd�ZdS)�TestCopyingEmptycCst�|_dSrr�rr
r
rr.szTestCopyingEmpty.setUpNror
r
r
rrsrc@seZdZdd�ZdS)�TestCopyingSingletoncCstdg�|_dS)NZhellor�rr
r
rr.szTestCopyingSingleton.setUpNror
r
r
rrsrc@seZdZdd�ZdS)�TestCopyingTriplecCstgd��|_dS)N)ryrNr�rr
r
rr.szTestCopyingTriple.setUpNror
r
r
rrsrc@seZdZdd�ZdS)�TestCopyingTuplecCstdg�|_dS)N�r
r/r�rr
r
rr.%szTestCopyingTuple.setUpNror
r
r
rr$src@seZdZdd�ZdS)�TestCopyingNestedcCstdg�|_dS)N)r)rtr�r�rr
r
rr.+szTestCopyingNested.setUpNror
r
r
rr*src@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestIdentitiescCstd�|_td�|_dS)NZabracadabraZalacazam)r4r1r\rr
r
rr.1s
zTestIdentities.setUpcCs�|j|j}}|�|||k�|�|||k�|�||@|k�|�||@|k�|�||B|k�|�||B|k�|�||A||Bk�dSr)r1r\rg�rr1r\r
r
r�test_binopsVsSubsets5sz#TestIdentities.test_binopsVsSubsetscCsj|j|j}}|�||@||@�|�||B||B�|�||A||A�||krf|�||||�dSr)r1r\r7r_rr
r
r�test_commutativity?sz!TestIdentities.test_commutativitycCs�|j|j}}|�||||@B||B||B�|�||@||AB||B�|�|||B||B�|�|||B||B�|�||||@B|�|�||||@B|�|�||||B||A�dSr)r1r\r7rr
r
r�test_summationsGs$zTestIdentities.test_summationscCsZ|j|jt�}}}|�|||@|�|�|||@|�|�||@||A@|�dSr)r1r\r4r7)rr1r\ryr
r
r�test_exclusionRszTestIdentities.test_exclusionN)rrr	r.rrrrr
r
r
rr0s

rccs|D]
}|VqdS)zRegular generatorNr
��seqnrWr
r
r�R[sr c@s eZdZdZdd�Zdd�ZdS)�GzSequence using __getitem__cCs
||_dSr�r�rrr
r
rr#bsz
G.__init__cCs
|j|Srr"rVr
r
r�__getitem__dsz
G.__getitem__N)rrr	rr#r$r
r
r
rr!`sr!c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�Iz Sequence using iterator protocolcCs||_d|_dSrrr#r
r
rr#isz
I.__init__cCs|Srr
rr
r
r�__iter__lsz
I.__iter__cCs2|jt|j�krt�|j|j}|jd7_|Sr�rWr;rr��rrir
r
r�__next__nsz
I.__next__N�rrr	rr#r&r)r
r
r
rr%gsr%c@s eZdZdZdd�Zdd�ZdS)�Igz9Sequence using iterator protocol defined with a generatorcCs||_d|_dSrrr#r
r
rr#vszIg.__init__ccs|jD]
}|VqdSrr")r�valr
r
rr&ys
zIg.__iter__N�rrr	rr#r&r
r
r
rr+tsr+c@s eZdZdZdd�Zdd�ZdS)�Xz Missing __getitem__ and __iter__cCs||_d|_dSrrr#r
r
rr#sz
X.__init__cCs2|jt|j�krt�|j|j}|jd7_|Srr'r(r
r
rr)�sz
X.__next__N)rrr	rr#r)r
r
r
rr.}sr.c@s eZdZdZdd�Zdd�ZdS)�NzIterator missing __next__()cCs||_d|_dSrrr#r
r
rr#�sz
N.__init__cCs|Srr
rr
r
rr&�sz
N.__iter__Nr-r
r
r
rr/�sr/c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�EzTest propagation of exceptionscCs||_d|_dSrrr#r
r
rr#�sz
E.__init__cCs|Srr
rr
r
rr&�sz
E.__iter__cCsdddS)Nrtrr
rr
r
rr)�sz
E.__next__Nr*r
r
r
rr0�sr0c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�SzTest immediate stopcCsdSrr
r#r
r
rr#�sz
S.__init__cCs|Srr
rr
r
rr&�sz
S.__iter__cCst�dSr)r�rr
r
rr)�sz
S.__next__Nr*r
r
r
rr1�sr1)�chaincCsttdd�ttt|�����S)z Test multiple tiers of iteratorscSs|Srr
�rSr
r
rr��r�zL.<locals>.<lambda>)r2rur r+r!r"r
r
r�L�sr4c@s$eZdZdd�Zdd�Zdd�ZdS)�TestVariousIteratorArgsc
Cs�ttfD]�}ddtd�dtddd�fD]x}ttttttfD],}|�	t
|||��td�t
||�td��q:|�t
|t|��|�t
|t|��|�t|t|��q&qdS)	N�123rZr��Zdog333333�?���r�r)r4r>r�r!r%r+r1r4r r7r6rr2r3r.r/�ZeroDivisionErrorr0)rZconsr*�gr
r
rr��s*z(TestVariousIteratorArgs.test_constructorc
Cs�td�}ddtd�dtddd�d	fD]�}|j|j|j|j|jfD]�}ttt	t
tfD]L}||�}|||��}t|t
�r�|�||�qR|�t|td
�t|td
��qR|�t|t|��|�t|t|��|�t|t|��q@q$dS)NZnovemberr6rZr�r7r8r9r��decemberr)r4r�rKr]rjrorfr!r%r+r4r �
isinstance�boolr7r6rr2r3r.r/r:r0)rr*r��methr;r9r8r
r
r�test_inline_methods�s 
z+TestVariousIteratorArgs.test_inline_methodsc
Cs�ddtd�dtddd�dfD]�}d	D]�}ttttttfD]X}td
�}|��}t	||�t
||���t	||�||��|�t|t
d�t|t
d��q8|�tt	td
�|�t|��|�tt	td
�|�t|��|�tt	td
�|�t|��q$qdS)Nr6rZr�r7r8r9r�r<)r�r�r�r�Zjanuaryr)r�r!r%r+r1r4r r4r�r�rOr7r6rr2r3r.r/r:r0)rr�Zmethnamer;r*rvr
r
r�test_inplace_methods�s z,TestVariousIteratorArgs.test_inplace_methodsN)rrr	r�r@rAr
r
r
rr5�s	r5c@seZdZdd�Zdd�ZdS)�bad_eqcCstrt��t�||uSr)�be_bad�set2r�r:rr
r
rr�sz
bad_eq.__eq__cCsdSrr
rr
r
rr�szbad_eq.__hash__N�rrr	rrr
r
r
rrB�srBc@seZdZdd�Zdd�ZdS)�bad_dict_clearcCstrt��||uSr)rC�dict2r�rr
r
rr�szbad_dict_clear.__eq__cCsdSrr
rr
r
rr�szbad_dict_clear.__hash__NrEr
r
r
rrF�srFc@s$eZdZdd�Zdd�Zdd�ZdS)�
TestWeirdBugscCsZdat�h}dd�td�D�ada|�t|jt�dat�h}t�diada|�	t�dS)NFcSsh|]
}t��qSr
)rBr�r
r
rr9�r�z4TestWeirdBugs.test_8420_set_merge.<locals>.<setcomp>�KT)
rCrBr�rDr2r:r�rFrGr�)r�set1r
r
r�test_8420_set_merge�s
z!TestWeirdBugs.test_8420_set_mergecCsXttd��}|��|�td��t|�}|��ttd��}|�td��t|�dS)Nr!)r4r�r�r�r�rO)rr*�sir1r
r
r�test_iter_and_mutate�sz"TestWeirdBugs.test_iter_and_mutatecsBG�fdd�d��t���fdd�td�D��dh}|���dS)Ncs eZdZdd�Z�fdd�ZdS)z.TestWeirdBugs.test_merge_and_mutate.<locals>.XcSstd�Sr)r�rr
r
rr�sz7TestWeirdBugs.test_merge_and_mutate.<locals>.X.__hash__cs���dS)NF)r�)r�o�rr
rrsz5TestWeirdBugs.test_merge_and_mutate.<locals>.X.__eq__Nrr
rOr
rr.�sr.csh|]
}���qSr
r
r�)r.r
rr9r�z6TestWeirdBugs.test_merge_and_mutate.<locals>.<setcomp>r�r)r4r�r�r�r
)r.rr�test_merge_and_mutate�s
z#TestWeirdBugs.test_merge_and_mutateN)rrr	rKrMrPr
r
r
rrH�srHc@s(eZdZdZdZdZdd�Zdd�ZdS)�TestOperationsMutatingzRegression test for bpo-46615NcsfG���fdd�d��d�|��fdd�ttd��D���|��fdd�ttd��D���d���fS)	Ncs$eZdZ���fdd�Zdd�ZdS)z<TestOperationsMutating.make_sets_of_bad_objects.<locals>.Badcs<�sdStd�dkr���td�dkr0���ttd��S)NF�rr/)rr�r>r��enabledrJrDr
rrszCTestOperationsMutating.make_sets_of_bad_objects.<locals>.Bad.__eq__cSstd�Srsr"rr
r
rrszETestOperationsMutating.make_sets_of_bad_objects.<locals>.Bad.__hash__NrEr
rSr
r�BadsrUFc3s|]}��VqdSrr
�r��_�rUr
rr�r�zBTestOperationsMutating.make_sets_of_bad_objects.<locals>.<genexpr>�2c3s|]}��VqdSrr
rVrXr
rr� r�T)�constructor1r�r�constructor2rr
)rUrTrJrDr�make_sets_of_bad_objectss  z/TestOperationsMutating.make_sets_of_bad_objectscCsbtd�D]T}|��\}}z|||�WqtyZ}z|�dt|��WYd}~qd}~00qdS)Nr!zchanged size during iteration)r�r\rr?rN)r�functionrWrJrDr�r
r
r�check_set_op_does_not_crash%sz2TestOperationsMutating.check_set_op_does_not_crash)rrr	rrZr[r\r^r
r
r
rrQs
rQc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �TestBinaryOpsMutatingcCs|�dd��dS)NcSs||kSrr
�r1r\r
r
rr�2r�z=TestBinaryOpsMutating.test_eq_with_mutation.<locals>.<lambda>�r^rr
r
r�test_eq_with_mutation1sz+TestBinaryOpsMutating.test_eq_with_mutationcCs|�dd��dS)NcSs||kSrr
r`r
r
rr�5r�z=TestBinaryOpsMutating.test_ne_with_mutation.<locals>.<lambda>rarr
r
r�test_ne_with_mutation4sz+TestBinaryOpsMutating.test_ne_with_mutationcCs|�dd��dS)NcSs||kSrr
r`r
r
rr�8r�z=TestBinaryOpsMutating.test_lt_with_mutation.<locals>.<lambda>rarr
r
r�test_lt_with_mutation7sz+TestBinaryOpsMutating.test_lt_with_mutationcCs|�dd��dS)NcSs||kSrr
r`r
r
rr�;r�z=TestBinaryOpsMutating.test_le_with_mutation.<locals>.<lambda>rarr
r
r�test_le_with_mutation:sz+TestBinaryOpsMutating.test_le_with_mutationcCs|�dd��dS)NcSs||kSrr
r`r
r
rr�>r�z=TestBinaryOpsMutating.test_gt_with_mutation.<locals>.<lambda>rarr
r
r�test_gt_with_mutation=sz+TestBinaryOpsMutating.test_gt_with_mutationcCs|�dd��dS)NcSs||kSrr
r`r
r
rr�Ar�z=TestBinaryOpsMutating.test_ge_with_mutation.<locals>.<lambda>rarr
r
r�test_ge_with_mutation@sz+TestBinaryOpsMutating.test_ge_with_mutationcCs|�dd��dS)NcSs||@Srr
r`r
r
rr�Dr�z>TestBinaryOpsMutating.test_and_with_mutation.<locals>.<lambda>rarr
r
r�test_and_with_mutationCsz,TestBinaryOpsMutating.test_and_with_mutationcCs|�dd��dS)NcSs||BSrr
r`r
r
rr�Gr�z=TestBinaryOpsMutating.test_or_with_mutation.<locals>.<lambda>rarr
r
r�test_or_with_mutationFsz+TestBinaryOpsMutating.test_or_with_mutationcCs|�dd��dS)NcSs||Srr
r`r
r
rr�Jr�z>TestBinaryOpsMutating.test_sub_with_mutation.<locals>.<lambda>rarr
r
r�test_sub_with_mutationIsz,TestBinaryOpsMutating.test_sub_with_mutationcCs|�dd��dS)NcSs||ASrr
r`r
r
rr�Mr�z>TestBinaryOpsMutating.test_xor_with_mutation.<locals>.<lambda>rarr
r
r�test_xor_with_mutationLsz,TestBinaryOpsMutating.test_xor_with_mutationcCsdd�}|�|�dS)NcSs||M}dSrr
r`r
r
rrdPsz8TestBinaryOpsMutating.test_iadd_with_mutation.<locals>.frar+r
r
r�test_iadd_with_mutationOsz-TestBinaryOpsMutating.test_iadd_with_mutationcCsdd�}|�|�dS)NcSs||O}dSrr
r`r
r
rrdUsz7TestBinaryOpsMutating.test_ior_with_mutation.<locals>.frar+r
r
r�test_ior_with_mutationTsz,TestBinaryOpsMutating.test_ior_with_mutationcCsdd�}|�|�dS)NcSs||8}dSrr
r`r
r
rrdZsz8TestBinaryOpsMutating.test_isub_with_mutation.<locals>.frar+r
r
r�test_isub_with_mutationYsz-TestBinaryOpsMutating.test_isub_with_mutationcCsdd�}|�|�dS)NcSs||N}dSrr
r`r
r
rrd_sz8TestBinaryOpsMutating.test_ixor_with_mutation.<locals>.frar+r
r
r�test_ixor_with_mutation^sz-TestBinaryOpsMutating.test_ixor_with_mutationcCs:dd�}dd�}dd�}|�|�|�|�|�|�dS)NcSs|D]}q|D]}qdSrr
�r1r\rSr�r
r
r�f1dsz>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f1cSs|D]}q|D]}qdSrr
)r1r\r�rSr
r
r�f2isz>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f2cSst||�D]\}}q
dSr)�ziprpr
r
r�f3nsz>TestBinaryOpsMutating.test_iteration_with_mutation.<locals>.f3ra)rrqrrrtr
r
r�test_iteration_with_mutationcs

z2TestBinaryOpsMutating.test_iteration_with_mutationN)rrr	rbrcrdrerfrgrhrirjrkrlrmrnrorur
r
r
rr_/sr_c@seZdZeZeZdS)�TestBinaryOpsMutating_Set_SetN�rrr	r4rZr[r
r
r
rrvvsrvc@seZdZeZeZdS)�'TestBinaryOpsMutating_Subclass_SubclassN�rrr	rrZr[r
r
r
rrxzsrxc@seZdZeZeZdS)�"TestBinaryOpsMutating_Set_SubclassN�rrr	r4rZrr[r
r
r
rrz~srzc@seZdZeZeZdS)�"TestBinaryOpsMutating_Subclass_SetN�rrr	rrZr4r[r
r
r
rr|�sr|c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestMethodsMutatingcCs|�tj�dSr)r^r4ryrr
r
r�test_issubset_with_mutation�sz/TestMethodsMutating.test_issubset_with_mutationcCs|�tj�dSr)r^r4rzrr
r
r�test_issuperset_with_mutation�sz1TestMethodsMutating.test_issuperset_with_mutationcCs|�tj�dSr)r^r4r]rr
r
r�test_intersection_with_mutation�sz3TestMethodsMutating.test_intersection_with_mutationcCs|�tj�dSr)r^r4rKrr
r
r�test_union_with_mutation�sz,TestMethodsMutating.test_union_with_mutationcCs|�tj�dSr)r^r4rjrr
r
r�test_difference_with_mutation�sz1TestMethodsMutating.test_difference_with_mutationcCs|�tj�dSr)r^r4rorr
r
r�'test_symmetric_difference_with_mutation�sz;TestMethodsMutating.test_symmetric_difference_with_mutationcCs|�tj�dSr)r^r4rfrr
r
r�test_isdisjoint_with_mutation�sz1TestMethodsMutating.test_isdisjoint_with_mutationcCs|�tj�dSr)r^r4r�rr
r
r�$test_difference_update_with_mutation�sz8TestMethodsMutating.test_difference_update_with_mutationcCs|�tj�dSr)r^r4r�rr
r
r�&test_intersection_update_with_mutation�sz:TestMethodsMutating.test_intersection_update_with_mutationcCs|�tj�dSr)r^r4r�rr
r
r�.test_symmetric_difference_update_with_mutation�szBTestMethodsMutating.test_symmetric_difference_update_with_mutationcCs|�tj�dSr)r^r4r�rr
r
r�test_update_with_mutation�sz-TestMethodsMutating.test_update_with_mutationN)rrr	rr�r�r�r�r�r�r�r�r�r�r
r
r
rr~�sr~c@seZdZeZeZdS)�TestMethodsMutating_Set_SetNrwr
r
r
rr��sr�c@seZdZeZeZdS)�%TestMethodsMutating_Subclass_SubclassNryr
r
r
rr��sr�c@seZdZeZeZdS)� TestMethodsMutating_Set_SubclassNr{r
r
r
rr��sr�c@seZdZeZeZdS)� TestMethodsMutating_Subclass_SetNr}r
r
r
rr��sr�c@seZdZeZejZdS)�TestMethodsMutating_Set_DictN)rrr	r4rZr+r,r[r
r
r
rr��sr�c@seZdZeZeZdS)�TestMethodsMutating_Set_ListN)rrr	r4rZrOr[r
r
r
rr��sr�ccsXt|�}z0tt|�g�}t|�D]}|V||BVq WntyRt�VYn0dS)z-Generates all subsets of a set or sequence U.N)r�r>r�r5r�)�UrSr1r
r
rr5�sr5cs0dd�t|�D��t�fdd�tt|��D��S)z!Graph of n-dimensional hypercube.cSsg|]}t|g��qSr
�r>)r�rSr
r
rr$�r�zcube.<locals>.<listcomp>cs&g|]��t�fdd��D��f�qS)csg|]}�|A�qSr
r
)r�r*r3r
rr$�r�z#cube.<locals>.<listcomp>.<listcomp>r�)r��Z
singletonsr3rr$�s�)r�r+r5r#r
r�r�cube�s
�r�cshi}|D]Z�|�D]L���fdd�|�D�}��fdd�|�D�}t||�|t��g�<qq|S)z�Graph, the vertices of which are edges of G,
    with two vertices being adjacent iff the corresponding
    edges share a vertex.cs g|]}|�krt�|g��qSr
r��r�r`�rSr�r
rr$�r�zlinegraph.<locals>.<listcomp>cs g|]}|�krt�|g��qSr
r�r�r�r
rr$�r�r�)r!r4Znx�nyr
r�r�	linegraph�sr�c
Cs�t�}|��D]�\}}|D]�}||D]�}||kr4q&|||vrV|�t|||g��q&||D]v}||krlq^|||vr�|�t||||g��q^||D]:}||ks�||kr�q�|||vr�|�t|||||g��q�q^q&qq|S)zKReturn a set of faces in G.  Where a face is a set of vertices on that face)r4�itemsr�r>)r!rdr��edgesr�Zv3Zv4Zv5r
r
r�faces�s&"r�c@seZdZdd�Zdd�ZdS)�
TestGraphscCs�td�}t|�}|�t|�d�|��D]}|�t|�d�q(tdd�|��D��}|�||�t|�}|�t|�d�|D]}|�t|�d�q|dS)Nrtr�css|]}|D]
}|Vq
qdSrr
)r�r�rir
r
rr�r�z'TestGraphs.test_cube.<locals>.<genexpr>r�r�)r�r4r7r;rHr�)rr;Z	vertices1�edgeZ	vertices2Z	cubefaces�facer
r
r�	test_cube�szTestGraphs.test_cubecCs�td�}t|�}|�t|�d�t|�}|��D]}|�t|�d�q0tdd�|��D��}|�||�t|�}t�t	�}|D]}|t|�d7<q~|�|dd�|�|dd�|D].}	|	}
|�t|
�d	�|
D]}|�
||�q�q�dS)
Nrt�r�css|]}|D]
}|Vq
qdSrr
)r�r�r�r
r
rr�r�z0TestGraphs.test_cuboctahedron.<locals>.<genexpr>r
r�r�r/)r�r�r7r;r4rHr�r��defaultdictr$r?)rr;Z
cuboctahedronZverticesr�Z
otherverticesZ	cubofacesZ	facesizesr�Zvertexr�Zcubevertr
r
r�test_cuboctahedrons&
zTestGraphs.test_cuboctahedronN)rrr	r�r�r
r
r
rr��sr��__main__)hr�testrr�r�r|r�r��randomrrr�r��collections.abcr3�	Exceptionrrrrr$rr%ZTestCaser�r4rrrrrr>r;r<rVr?rlrprwr{r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr	r
rr
rrrrrrr r!r%r+r.r/r0r1r2r4r5rBrFrHrQr_rvrxrzr|r~r�r�r�r�r�r�r5r�r�r�r�r�mainr
r
r
r�<module>s�JRu


IVJ&t+
	
	)	)$G$1


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists