Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_set.cpython-34.pyc

�
g f���@s�ddlZddlmZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlZddlZddl
Z
ddlZ
Gdd�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�ZMddvlNmOZOdwdx�ZPGdydz�dzej�ZQGd{d|�d|�ZRGd}d~�d~�ZSGdd��d�ej�ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXGd�d��d�ej�ZYeZd�kr�ej[�ndS)��N)�support)�	randrange�shufflec@seZdZdS)�PassThruN)�__name__�
__module__�__qualname__�r	r	�2/opt/alt/python34/lib64/python3.4/test/test_set.pyrsrccst�dVdS)N�)rr	r	r	r
�check_pass_thrusrc@s(eZdZdd�Zdd�ZdS)�BadCmpcCsdS)Nrr	)�selfr	r	r
�__hash__szBadCmp.__hash__cCs
t�dS)N)�RuntimeError)r�otherr	r	r
�__eq__sz
BadCmp.__eq__N)rrrrrr	r	r	r
r
sr
c@s"eZdZdZdd�ZdS)�ReprWrapperz*Used to test self-referential repr() callscCs
t|j�S)N)�repr�value)rr	r	r
�__repr__szReprWrapper.__repr__N)rrr�__doc__rr	r	r	r
rsrc@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_tj|�S)Nr)r�intr)rr	r	r
r$szHashCountingInt.__hash__N)rrrrrrr	r	r	r
r src@sTeZdZdd�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�Zd7S)8�TestJointOpscCsGd|_}d|_d|_|j|�|_tj|�|_dS)NZ
simsalabimZ
madagascarZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)�word�	otherword�letters�thetype�s�dict�fromkeys�d)rrr	r	r
�setUp+s

		zTestJointOps.setUpcCs9|jt|jgd�|jtt�jdd�dS)N��ar)�assertRaises�	TypeErrorr!�setr)rr	r	r
�test_new_or_init2szTestJointOps.test_new_or_initcCsdt|j�}t|j�}|j||�|jt|jt��|jt|jgg�dS)N)	�sortedr"r%�assertEqualr)rr!rr*)r�actual�expectedr	r	r
�test_uniquification6s
z TestJointOps.test_uniquificationcCs&|jt|j�t|j��dS)N)r.�lenr"r%)rr	r	r
�test_len=szTestJointOps.test_lencCs�x3|jD](}|j||jk||jk�q
W|jt|jjgg�|jt|j�g�}|j	|j|j�|�dS)N)
r r.r"r%r)r*�__contains__r!�	frozenset�assertIn)r�cr"r	r	r
�
test_contains@s
&zTestJointOps.test_containscCs,|jj|j�}x?|jD]4}|j||k||jkpO||jk�qW|j|j|j|j��|jt|�|j	�|j
t|jjt��|j
t
|jjgg�xtttjtttfD]�}|j|jd�j|d��td��|j|jd�j|d��td��|j|jd�j|d��td��|j|jd�j|d��td	��|j|jd�j|d�|d
��td��q�W|j�}|j|jtdg�|tdg��|jddg��dS)
N�abcba�cdc�abcd�efgfe�abcefg�ccb�abc�ef�abcefZfgrr')r"�unionrr r.r%r!r�type�basetyper)rrr*r+r5r#r$�str�list�tuple)r�ur7�C�xr	r	r
�
test_unionGs2"....;zTestJointOps.test_unioncCs�|jj|j�}|j|jt|j�B|�|j|jt|j�B|�y|j|jBWntk
r{YnX|jd�dS)Nz(s|t did not screen-out general iterables)r"rBrr.r+r5r*�fail)r�ir	r	r
�test_orZs  
zTestJointOps.test_orcCs,|jj|j�}x?|jD]4}|j||k||jkoO||jk�qW|j|j|j|j��|jt|�|j	�|j
t|jjt��xt
ttjtttfD]�}|j|jd�j|d��t
d��|j|jd�j|d��t
d��|j|jd�j|d��t
d��|j|jd�j|d��t
d��|j|jd�j|d	�|d
��t
d��q�W|jd�}|j�}|jt�kr|jt|�t|��n|jt|�t|��dS)Nr9r:�ccr<�r>�bcr@ZcbcfZbag�b)r"�intersectionrr r.r%r!rrCrDr)rrr+r5r#r$rErFrG�id�assertNotEqual)rrMr7rIr"�zr	r	r
�test_intersectiones"2"....;zTestJointOps.test_intersectionc	Cs�dd�}x�dD]�}|j|�}x�dD]�}x|tttjtttfD]_}||�}|j|�}|||�}|j	||�|j
|d
kp�|dk�qQWq/WqWdS)NcSst|�j|�S)z&Pure python equivalent of isdisjoint())r+rS)�s1�s2r	r	r
�fzsz'TestJointOps.test_isdisjoint.<locals>.frPr(�abr?�ababacr:rOr<r>r@TF)
rPr(r[�abcr\�cdc�cc�efgfe�ccb�ef)
rPr(r[r]r\r^r_r`rarb)r!r+r5r#r$rErFrG�
isdisjointr.�
assertTrue)	rrZZlargrXZrargrIrYr/r0r	r	r
�test_isdisjointys

"zTestJointOps.test_isdisjointcCs�|jj|j�}|j|jt|j�@|�|j|jt|j�@|�y|j|j@Wntk
r{YnX|jd�dS)Nz(s&t did not screen-out general iterables)r"rSrr.r+r5r*rL)rrMr	r	r
�test_and�s  
zTestJointOps.test_andcCs|jj|j�}x?|jD]4}|j||k||jkoO||jk�qW|j|j|j|j��|jt|�|j	�|j
t|jjt��|j
t
|jjgg�x7tttjtttfD]}|j|jd�j|d��td��|j|jd�j|d��td��|j|jd�j|d��td��|j|jd�j|d��td��|j|jd�j�td��|j|jd�j|d�|d	��td
��q�WdS)Nr9r:r[r<r?r>r(r@rRr7)r"�
differencerr r.r%r!rrCrDr)rrr*r+r5r#r$rErFrG)rrMr7rIr	r	r
�test_difference�s2"....%zTestJointOps.test_differencecCs�|jj|j�}|j|jt|j�|�|j|jt|j�|�y|j|jWntk
r{YnX|jd�dS)Nz(s-t did not screen-out general iterables)r"rgrr.r+r5r*rL)rrMr	r	r
�test_sub�s  
zTestJointOps.test_subcCs�|jj|j�}x=|jD]2}|j||k||jk||jkA�qW|j|j|j|j��|jt|�|j	�|j
t|jjt��|j
t
|jjgg�x�tttjtttfD]�}|j|jd�j|d��td��|j|jd�j|d��td��|j|jd�j|d��td��|j|jd�j|d��td	��q�WdS)
Nr9r:�abdr<r=r>r(r@rA)r"�symmetric_differencerr r.r%r!rrCrDr)rrr*r+r5r#r$rErFrG)rrMr7rIr	r	r
�test_symmetric_difference�s0"...z&TestJointOps.test_symmetric_differencecCs�|jj|j�}|j|jt|j�A|�|j|jt|j�A|�y|j|jAWntk
r{YnX|jd�dS)Nz(s^t did not screen-out general iterables)r"rkrr.r+r5r*rL)rrMr	r	r
�test_xor�s  
zTestJointOps.test_xorcCs�|j|jt|j��|j|jt|j��|j|j|jkd�|j|jt|j��|j|jt|j��|j|j|jkd�dS)NFT)r.r"r+rr5rUr)rr	r	r
�
test_equality�szTestJointOps.test_equalitycCsGttdddddg�}|j|�}|jt|�d�dS)NZabcdefZbcdZbdcbZfedZfedccba�)�mapr5r!r.r2)r�tr"r	r	r
�test_setOfFrozensets�sz!TestJointOps.test_setOfFrozensetscCsCt|jdddg�\}}}|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|j||k�|jtd�jd��|jtd�jd��|jtd�jd��|jtd�jd��dS)Nr[Zabcde�defr(r?Zcbs)rpr!rdZassertFalser+�issubset�
issuperset)r�p�q�rr	r	r
�test_sub_and_super�s$zTestJointOps.test_sub_and_supercCs�x�ttjd�D]�}tj|j|�}tj|�}|j|j|d|j|f�t|j�tt	fkrd|j_
tj|j|�}tj|�}|j|jj
|j
�qqWdS)Nrz%s != %s�
)�range�pickle�HIGHEST_PROTOCOL�dumpsr"�loadsr.rCr+r5rJ)rrMrv�dupr	r	r
�
test_pickling�s#zTestJointOps.test_picklingcCsx
ttjd�D]�}t|j�}|j|j�}tj||�}tj|�}|j|t	j
j�|j|j|�|�tj|�}yt
|�}Wntk
r�wYnXtj||�}tj|�}|j|j|�||j|f��qWdS)Nr)r{r|r}�iterr"r!r~rZassertIsInstance�collectionsr?�Iteratorr.�next�
StopIteration)r�protoZitorg�datar%�itZdropr	r	r
�test_iterator_pickling�s
z#TestJointOps.test_iterator_picklingcs�G�fdd�d���d�}|j|g�}tj|�}|jt|�t|��x|D]}|}qiW|jt|�t|��|j|jd|j�dS)Ncs=eZdZdd�Zdd�Zd�fdd�ZdS)z*TestJointOps.test_deepcopy.<locals>.TracercSs
||_dS)N)r)rrr	r	r
rsz3TestJointOps.test_deepcopy.<locals>.Tracer.__init__cSs|jS)N)r)rr	r	r
rsz3TestJointOps.test_deepcopy.<locals>.Tracer.__hash__Ncs�|jd�S)Nr)r)r�memo)�Tracerr	r
�__deepcopy__	sz7TestJointOps.test_deepcopy.<locals>.Tracer.__deepcopy__)rrrrrr�r	)r�r	r
r�sr�rzr)r!�copy�deepcopyrUrTr.r)rrqr"r��elemZnewtr	)r�r
�
test_deepcopys

zTestJointOps.test_deepcopycsqGdd�d��t�fdd�td�D��}x2|D]*}||_||_t|g�|_q?WdS)Nc@seZdZdS)zTestJointOps.test_gc.<locals>.AN)rrrr	r	r	r
�Asr�c3s|]}��VqdS)Nr	)�.0rM)r�r	r
�	<genexpr>sz'TestJointOps.test_gc.<locals>.<genexpr>i�)r+r{�cycle�sub)rr"r�r	)r�r
�test_gcs%
		zTestJointOps.test_gccCssGdd�d|j�}|�}t�}|j|�|j||�|j|�|j|�|j|�dS)Nc@seZdZdd�ZdS)z6TestJointOps.test_subclass_with_custom_hash.<locals>.HcSstt|�d@�S)Ni���)rrT)rr	r	r
r!sz?TestJointOps.test_subclass_with_custom_hash.<locals>.H.__hash__N)rrrrr	r	r	r
�H sr�)r!r+�addr6�remove�discard)rr�r"rZr	r	r
�test_subclass_with_custom_hashs		


z+TestJointOps.test_subclass_with_custom_hashcCs�|jt�g�}|jt|jt�t�g�|jt|jt��t|d�r�|jt|jt��|jt|jt��|jt|jt��ndS)Nr�)	r!r
r)rr4�hasattrr�r�r�)rr"r	r	r
�test_badcmp+s"zTestJointOps.test_badcmpcCs�t�}|j|g�}||_|jtkrL|jt|�d�n9t|�jd�d}|jt|�d||f�dS)Nz
{set(...)}�(rz
%s({%s(...)}))rr!rr+r.r�	partition)r�wr"�namer	r	r
�test_cyclical_repr6s		zTestJointOps.test_cyclical_reprcCs�t�}|j|g�}||_ttjd�}zO|jt|��|j�ttjd�}|j	|j
�t|��Wd|j�tjtj�XdS)Nr�rx)
rr!r�openr�TESTFN�writerE�closer.�readr�unlink)rr�r"�for	r	r
�test_cyclical_print@s		
 
z TestJointOps.test_cyclical_printcCs�d}tjttt|���}|jtdd�|D��|�|j|�}|jtdd�|D��|�|j|�|jtdd�|D��|�t	|d�r�|j
|�n|jtdd�|D��|�tjt|��}|jtdd�|D��|�tjt|��}|jtd	d�|D��|�tjt|�d
�}|jtdd�|D��|�|j|tj|d
��dS)Nrzcss|]}|jVqdS)N)r)r�r�r	r	r
r�Qsz<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>css|]}|jVqdS)N)r)r�r�r	r	r
r�Sscss|]}|jVqdS)N)r)r�r�r	r	r
r�Us�symmetric_difference_updatecss|]}|jVqdS)N)r)r�r�r	r	r
r�Xscss|]}|jVqdS)N)r)r�r�r	r	r
r�Zscss|]}|jVqdS)N)r)r�r�r	r	r
r�\s�{css|]}|jVqdS)N)r)r�r�r	r	r
r�^s)
r#r$rprr{r.�sumr!rgr�r�r+r5)r�nr%r"Zd2Zd3r	r	r
�test_do_not_rehash_dict_keysNs"##
#####z)TestJointOps.test_do_not_rehash_dict_keyscCs|Gdd�dt�}|�}tj|�}t|dg�}t|�|_~~tj�|j|�dkd�dS)Nc@seZdZdS)z/TestJointOps.test_container_iterator.<locals>.CN)rrrr	r	r	r
rIcsrIrzCycle was not collected)	�object�weakref�refr+r�rJ�gcZcollectrd)rrI�objr�Z	containerr	r	r
�test_container_iteratoras	
z$TestJointOps.test_container_iteratorN)rrrr&r,r1r3r8rKrNrWrerfrhrirlrmrnrrryr�r�r�r�r�r�r�r�r�r�r	r	r	r
r(s6


rc@sWeZdZeZeZdd�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.�Zejeed/�d0�d1d2��Z d3S)4�TestSetcCs�|j�}|j|j�|j|t|j��|j|j�|j|t|j��|jt|j|d�|jt|jd�dS)Nr'r)r!rrr.r+rr)r*)rr"r	r	r
�	test_initqszTestSet.test_initcCsD|jtd��}|j|�}|jt|�t|��dS)Nro)r!r{rUrT)rr"rqr	r	r
�test_constructor_identityzsz!TestSet.test_constructor_identitycCs8tdddg�}dddh}|j||�dS)Nrr'ro)r+r.)rr"rqr	r	r
�test_set_literalszTestSet.test_set_literalcCs|jtt|j�dS)N)r)r*�hashr")rr	r	r
�	test_hash�szTestSet.test_hashcCs@|jj�|j|jt��|jt|j�d�dS)Nr)r"�clearr.r+r2)rr	r	r
�
test_clear�s
zTestSet.test_clearcCs^|jj�}|j|j|�|jt|j�t|��|jt|�|j�dS)N)r"r�r.rUrTrCrD)rr�r	r	r
�	test_copy�szTestSet.test_copycCsr|jjd�|jd|j�|jj�}|jjd�|j|j|�|jt|jjg�dS)N�Q)r"r�r6r�r.r)r*)rr�r	r	r
�test_add�szTestSet.test_addcCs�|jjd�|jd|j�|jt|jjd�|jt|jjg�|jt|j�g�}|j	|j|j�|�|j|j|j��|j|j|j�|�|jt|jj|j|j��dS)Nr(r�)
r"r��assertNotInr)�KeyErrorr*r!r5rr6)rr"r	r	r
�test_remove�szTestSet.test_removecCs~xwddgD]i}y|jj|�WnBtk
rk}z"|jd}|j||�WYdd}~Xq
X|j�q
WdS)Nr�rr)r)r"r�r�rr.rL)r�v1�e�v2r	r	r
�test_remove_keyerror_unpacking�s
#z&TestSet.test_remove_keyerror_unpackingcCs�|jddg�}y|jj|�WnUtk
r�}z5|j|jd|kdj||jd��WYdd}~XnX|j�dS)Nro�rzKeyError should be {0}, not {1})r!r"r�r�rdr�formatrL)r�keyr�r	r	r
�test_remove_keyerror_set�s	$z TestSet.test_remove_keyerror_setcCs�|jjd�|jd|j�|jjd�|jt|jjg�|jt|j�g�}|j|j|j�|�|j|j|j��|j|j|j�|�|j|j|j��dS)Nr(r�)	r"r�r�r)r*r!r5rr6)rr"r	r	r
�test_discard�szTestSet.test_discardcCs\x?tt|j��D](}|jj�}|j||j�qW|jt|jj�dS)N)r{r2r"�popr�r)r�)rrMr�r	r	r
�test_pop�szTestSet.test_popcCs�|jj|j�}|j|d�x+|j|jD]}|j||j�q6W|jt|jjt��|jt	|jjgg�x~dD]v\}}xgt
ttj
tttfD]J}|jd	�}|j|j||��d�|j|t
|��q�Wq�Wx�dD]�}d}x�t
ttj
tttfD]g}|jd	�}|j|j||�||��d�|j|t
|�t
|�Bt
|�B�q;WqWdS)Nr:r;r<r=r>r?r@rAr9�abcdaZahi��cdczabcd��efgfezabcefg��ccbzabc��efzabcef)r�r�r�r�)r�r�r�r�r�)r"�updaterr.rr6r)rrr*r+r5r#r$rErFrGr!)r�retvalr7rvrwrIr"r	r	r
�test_update�s""
"(zTestSet.test_updatecCsJ|jt|j�O_x+|j|jD]}|j||j�q)WdS)N)r"r+rrr6)rr7r	r	r
�test_ior�szTestSet.test_iorc	Cs�|jj|j�}|j|d�x_|j|jD]M}||jkrp||jkrp|j||j�q6|j||j�q6W|jt|jjt	��|jt
|jjgg�x�dD]�\}}x�ttt
jtttfD]�}|jd�}|j|j||��d�|j|t|��d}|j|�}d	}|j|j||�||��d�|j|td�t|�@t|�@�q�Wq�WdS)Nr:r7r<rPr>rQr@r9Zcbc�zcdcr7�zefgferP�zccbzbc�zefrP)r�r�r�r�)r"�intersection_updaterr.rr6r�r)rrr*r+r5r#r$rErFrGr!)	rr�r7rvrwrIr"Zssrqr	r	r
�test_intersection_update�s$"(z TestSet.test_intersection_updatecCs~|jt|j�M_x_|j|jD]M}||jkrc||jkrc|j||j�q)|j||j�q)WdS)N)r"r+rrr6r�)rr7r	r	r
�	test_iand�s
zTestSet.test_iandcCs|jj|j�}|j|d�x_|j|jD]M}||jkrp||jkrp|j||j�q6|j||j�q6W|jt|jjt	��|jt
|jjgg�|jt
|jjgg�x/dD]'\}}xtt
tjtttfD]�}|jd�}|j|j||��d�|j|t|��|jd	�}|j�|j||jd	��|jd	�}|j|d
��|j||jd��|jd	�}|j|d�|d
��|j||jd��q
Wq�WdS)Nr:r[r<r?r>r(r@r9Z
abcdefghihZabaZcdefghihZefghih�zcdczab�zefgfe�abc�zccbr(�zefr�)r�r�r�r�)r"�difference_updaterr.rr6r�r)rrr*r�r+r5r#r$rErFrGr!)rr�r7rvrwrIr"r	r	r
�test_difference_updates."
zTestSet.test_difference_updatecCs~|jt|j�8_x_|j|jD]M}||jkrc||jkrc|j||j�q)|j||j�q)WdS)N)r"r+rrr6r�)rr7r	r	r
�	test_isubs
zTestSet.test_isubcCsB|jj|j�}|j|d�x]|j|jD]K}||jk||jkArn|j||j�q6|j||j�q6W|jt|jjt	��|jt
|jjgg�x~dD]v\}}xgttt
jtttfD]J}|jd	�}|j|j||��d�|j|t|��q�Wq�WdS)Nr:rjr<r=r>r(r@rAr9�zcdczabd�zefgfezabcefg�zccbr(�zefzabcef)r�r�r�r�)r"r�rr.rr6r�r)rrr*r+r5r#r$rErFrGr!)rr�r7rvrwrIr"r	r	r
� test_symmetric_difference_update&s"z(TestSet.test_symmetric_difference_updatecCs||jt|j�N_x]|j|jD]K}||jk||jkAra|j||j�q)|j||j�q)WdS)N)r"r+rrr6r�)rr7r	r	r
�	test_ixor6s
zTestSet.test_ixorcCs�|jj�}||O}|j||j�||M}|j||j�||8}|j||j��|jj�}||N}|j||j��dS)N)r"r�r.r!)rrqr	r	r
�test_inplace_on_self>s



zTestSet.test_inplace_on_selfcCsW|jd�}tj|�}|jt|�t|��d}|jtt|�dS)NZgallahad)r!r��proxyr.rEr)�ReferenceError)rr"rvr	r	r
�test_weakrefJs
zTestSet.test_weakrefcCs�Gdd�d�}dddh}|�}||k|j|j�|�}||k|j|j�|�}||k|j|j�|�}||k|j|j�dS)Nc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
z5TestSet.test_rich_compare.<locals>.TestRichSetComparecSs
d|_dS)NTF)�	gt_called)r�some_setr	r	r
�__gt__Ss	z<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__gt__cSs
d|_dS)NTF)�	lt_called)rr�r	r	r
�__lt__Vs	z<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__lt__cSs
d|_dS)NTF)�	ge_called)rr�r	r	r
�__ge__Ys	z<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__ge__cSs
d|_dS)NTF)�	le_called)rr�r	r	r
�__le__\s	z<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__le__N)rrrr�r�r�r�r	r	r	r
�TestRichSetCompareRsr�rr'ro)rdr�r�r�r�)rr�ZmysetZmyobjr	r	r
�test_rich_compareQs	
	
	
	
zTestSet.test_rich_compare�
test_c_apiz*C API test only available in a debug buildcCs|jt�j�d�dS)NT)r.r+r)rr	r	r
ruszTestSet.test_c_apiN)!rrrr+r!rDr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�unittestZ
skipUnlessr�rr	r	r	r
r�ms6	$r�c@seZdZdS)�SetSubclassN)rrrr	r	r	r
rzsrc@seZdZeZeZdS)�TestSetSubclassN)rrrrr!r+rDr	r	r	r
r}src@s"eZdZgddd�ZdS)�SetSubclassWithKeywordArgsNcCstj||�dS)N)r+r)r�iterable�newargr	r	r
r�sz#SetSubclassWithKeywordArgs.__init__)rrrrr	r	r	r
r�src@seZdZdd�ZdS)�TestSetSubclassWithKeywordArgscCstdd�dS)z=SF bug #1486663 -- this used to erroneously raise a TypeErrorrrN)r)rr	r	r
�test_keywords_in_subclass�sz8TestSetSubclassWithKeywordArgs.test_keywords_in_subclassN)rrrr	r	r	r	r
r�src@s|eZdZeZeZdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dS)�
TestFrozenSetcCs?|j|j�}|j|j�|j|t|j��dS)N)r!rrrr.r+)rr"r	r	r
r��szTestFrozenSet.test_initcCs�t�}t�tg�tf�td�t�tg�tf�td�ttd��tt��t|�|g}|jtttt|���d�dS)NrPrr)r5r{r.r2r+rprT)rrZ�efsr	r	r
�test_singleton_empty_frozenset�s	!!z,TestFrozenSet.test_singleton_empty_frozensetcCsD|jtd��}|j|�}|jt|�t|��dS)Nro)r!r{r.rT)rr"rqr	r	r
r��sz'TestFrozenSet.test_constructor_identitycs�|jt|jd��t|jd���d��fdd�t��D�}t�}x:td�D],}t|�|jt|j|���qiW|jt|�d�dS)NZabcdebZebecda�dcsg|]}t���qSr	)r)r�rM)r�r	r
�
<listcomp>�s	z+TestFrozenSet.test_hash.<locals>.<listcomp>��r)r.r�r!r{r+rr�r2)r�seqZresultsrMr	)r�r
r��s	
 zTestFrozenSet.test_hashcCs2|jj�}|jt|j�t|��dS)N)r"r�r.rT)rr�r	r	r
r��szTestFrozenSet.test_copycCs�ttd��td�dg}|j|�}|jt|��}|j||�|jt|�t|��i}d||<|j||d�dS)NrzZabcdefgZapple�*)rFr{r!�reversedr.rUrT)rrZkey1Zkey2r%r	r	r
�test_frozen_as_dictkey�s#
z$TestFrozenSet.test_frozen_as_dictkeycCs/|jd�}|jt|�t|��dS)NZabcdcda)r!r.r�)rrZr	r	r
�test_hash_caching�szTestFrozenSet.test_hash_cachingcs�d}t�}|j}dd�t|�D�}xAtd|�D]/�|tt�fdd�|D����qBW|jt|�d|�dS)N�
cSs$g|]}|dd|>f�qS)rr	)r�rMr	r	r
r�s	z9TestFrozenSet.test_hash_effectiveness.<locals>.<listcomp>r'cs&g|]\}}|�@r|�qSr	r	)r�r��m)rMr	r
r�s	)r+r�r{r�r5r.r2)rr�Z
hashvaluesZaddhashvalueZ	elemmasksr	)rMr
�test_hash_effectiveness�s		-z%TestFrozenSet.test_hash_effectivenessN)rrrr5r!rDr�rr�r�r�rrrr	r	r	r
r
�s	

r
c@seZdZdS)�FrozenSetSubclassN)rrrr	r	r	r
r�src@sLeZdZeZeZdd�Zdd�Zdd�Z	dd�Z
d	S)
�TestFrozenSetSubclasscCsD|jtd��}|j|�}|jt|�t|��dS)Nro)r!r{rUrT)rr"rqr	r	r
r��sz/TestFrozenSetSubclass.test_constructor_identitycCs2|jj�}|jt|j�t|��dS)N)r"r�rUrT)rr�r	r	r
r��szTestFrozenSetSubclass.test_copycCs/|j�}|j|�}|j||�dS)N)r!r.)rr"rqr	r	r
�test_nested_empty_constructor�sz3TestFrozenSetSubclass.test_nested_empty_constructorcCs�|j}t�}|�}|�|g�|f�|d�|�|g�|f�|d�|td��||��|t��||||�||�g}|jtttt|���t|��dS)NrPr)r!r5r{r.r2r+rprT)rZ	FrozensetrZ�Frr	r	r
r�s			!!*z4TestFrozenSetSubclass.test_singleton_empty_frozensetN)rrrrr!r5rDr�r�rrr	r	r	r
r�src@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/S)0�TestBasicOpscCs2|jdk	r.|jt|j�|j�ndS)N)rr.r+)rr	r	r
�	test_repr�szTestBasicOps.test_reprcCs�t|j�}|j|jd��|j|jd��|dd�jd�}|j�dd�|jD�}|j�|j||�dS)N�{�}rz, cSsg|]}t|��qSr	)r)r�rr	r	r
r�s	z:TestBasicOps.check_repr_against_values.<locals>.<listcomp>���)	rr+rd�
startswith�endswith�split�sort�valuesr.)r�text�resultZsorted_repr_valuesr	r	r
�check_repr_against_values�s

z&TestBasicOps.check_repr_against_valuescCs�zgttjd�}|jt|j��|j�ttjd�}|j|j�t	|j��Wd|j�tj
tj�XdS)Nr�rx)r�rr�r�rEr+r�r.r�rr�)rr�r	r	r
�
test_prints
#
zTestBasicOps.test_printcCs |jt|j�|j�dS)N)r.r2r+�length)rr	r	r
�test_lengthszTestBasicOps.test_lengthcCs|j|j|j�dS)N)r.r+)rr	r	r
�test_self_equalityszTestBasicOps.test_self_equalitycCs|j|j|j�dS)N)r.r+r�)rr	r	r
�test_equivalent_equalitysz%TestBasicOps.test_equivalent_equalitycCs |j|jj�|j�dS)N)r.r+r�r�)rr	r	r
r�szTestBasicOps.test_copycCs'|j|jB}|j||j�dS)N)r+r.r�)rr'r	r	r
�test_self_unionszTestBasicOps.test_self_unioncCs$|jtB}|j||j�dS)N)r+�	empty_setr.r�)rr'r	r	r
�test_empty_unions
zTestBasicOps.test_empty_unioncCs$t|jB}|j||j�dS)N)r/r+r.r�)rr'r	r	r
�test_union_empty s
zTestBasicOps.test_union_emptycCs'|j|j@}|j||j�dS)N)r+r.r�)rr'r	r	r
�test_self_intersection$sz#TestBasicOps.test_self_intersectioncCs!|jt@}|j|t�dS)N)r+r/r.)rr'r	r	r
�test_empty_intersection(s
z$TestBasicOps.test_empty_intersectioncCs!t|j@}|j|t�dS)N)r/r+r.)rr'r	r	r
�test_intersection_empty,s
z$TestBasicOps.test_intersection_emptycCs-|jj|j�}|j||j�dS)N)r+rcr.)rr'r	r	r
�test_self_isdisjoint0sz!TestBasicOps.test_self_isdisjointcCs&|jjt�}|j|d�dS)NT)r+rcr/r.)rr'r	r	r
�test_empty_isdisjoint4sz"TestBasicOps.test_empty_isdisjointcCs&tj|j�}|j|d�dS)NT)r/rcr+r.)rr'r	r	r
�test_isdisjoint_empty8sz"TestBasicOps.test_isdisjoint_emptycCs$|j|jA}|j|t�dS)N)r+r.r/)rr'r	r	r
�test_self_symmetric_difference<sz+TestBasicOps.test_self_symmetric_differencecCs$|jtA}|j||j�dS)N)r+r/r.)rr'r	r	r
�test_empty_symmetric_difference@s
z,TestBasicOps.test_empty_symmetric_differencecCs$|j|j}|j|t�dS)N)r+r.r/)rr'r	r	r
�test_self_differenceDsz!TestBasicOps.test_self_differencecCs$|jt}|j||j�dS)N)r+r/r.r�)rr'r	r	r
�test_empty_differenceHs
z"TestBasicOps.test_empty_differencecCs!t|j}|j|t�dS)N)r/r+r.)rr'r	r	r
�test_empty_difference_revLs
z&TestBasicOps.test_empty_difference_revcCsYx$|jD]}|j||j�q
Wt|j�}|j|j�t|j��dS)N)r+r6r%r�r.�__length_hint__r2)r�vZsetiterr	r	r
�test_iterationPszTestBasicOps.test_iterationcCsixbttjd�D]M}tj|j|�}tj|�}|j|j|d|j|f�qWdS)Nrz%s != %s)r{r|r}r~r+rr.)rr�rvr�r	r	r
r�Vs
zTestBasicOps.test_picklingN)rrrrr(r)r+r,r-r�r.r0r1r2r3r4r5r6r7r8r9r:r;r<r?r�r	r	r	r
r�s.rc@seZdZdd�ZdS)�TestBasicOpsEmptycCsLd|_g|_t|j�|_t|j�|_d|_d|_dS)Nz	empty setrzset())�caser%r+r�r*r)rr	r	r
r&`s			zTestBasicOpsEmpty.setUpN)rrrr&r	r	r	r
r@_sr@c@s4eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsSingletoncCsOd|_dg|_t|j�|_t|j�|_d|_d|_dS)Nzunit set (number)rorz{3})rAr%r+r�r*r)rr	r	r
r&ks		zTestBasicOpsSingleton.setUpcCs|jd|j�dS)Nro)r6r+)rr	r	r
�test_insszTestBasicOpsSingleton.test_incCs|jd|j�dS)Nr')r�r+)rr	r	r
�test_not_invsz!TestBasicOpsSingleton.test_not_inN)rrrr&rCrDr	r	r	r
rBjsrBc@s4eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsTuplecCsOd|_dg|_t|j�|_t|j�|_d|_d|_dS)Nzunit set (tuple)r�zerorz
{(0, 'zero')})rzzero)rAr%r+r�r*r)rr	r	r
r&|s		zTestBasicOpsTuple.setUpcCs|jd|j�dS)NrrF)rzzero)r6r+)rr	r	r
rC�szTestBasicOpsTuple.test_incCs|jd|j�dS)N�	)r�r+)rr	r	r
rD�szTestBasicOpsTuple.test_not_inN)rrrr&rCrDr	r	r	r
rE{srEc@seZdZdd�ZdS)�TestBasicOpsTriplecCsXd|_ddtjg|_t|j�|_t|j�|_d|_d|_dS)Nz
triple setrrFro)rA�operatorr�r%r+r�r*r)rr	r	r
r&�s		zTestBasicOpsTriple.setUpN)rrrr&r	r	r	r
rH�srHc@s(eZdZdd�Zdd�ZdS)�TestBasicOpsStringcCsLd|_dddg|_t|j�|_t|j�|_d|_dS)Nz
string setr(rRr7ro)rAr%r+r�r*)rr	r	r
r&�s
	zTestBasicOpsString.setUpcCs|j�dS)N)r()rr	r	r
r�szTestBasicOpsString.test_reprN)rrrr&rr	r	r	r
rJ�srJc@s(eZdZdd�Zdd�ZdS)�TestBasicOpsBytescCsLd|_dddg|_t|j�|_t|j�|_d|_dS)Nz
string set�a�b�cro)rAr%r+r�r*)rr	r	r
r&�s
	zTestBasicOpsBytes.setUpcCs|j�dS)N)r()rr	r	r
r�szTestBasicOpsBytes.test_reprN)rrrr&rr	r	r	r
rK�srKc@s4eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsMixedStringBytescCs{tj�|_|jj�tjdt�d|_ddddg|_t	|j�|_	t	|j�|_
d|_dS)N�ignorezstring and bytes setr(rRrLrMr�)rZcheck_warnings�_warning_filters�	__enter__�warnings�simplefilter�BytesWarningrAr%r+r�r*)rr	r	r
r&�s
	z"TestBasicOpsMixedStringBytes.setUpcCs|jjddd�dS)N)rQ�__exit__)rr	r	r
�tearDown�sz%TestBasicOpsMixedStringBytes.tearDowncCs|j�dS)N)r()rr	r	r
r�sz&TestBasicOpsMixedStringBytes.test_reprN)rrrr&rWrr	r	r	r
rO�s
rOccst�dVdS)NT)r*r	r	r	r
�baditer�srXccs	dVdS)NTr	r	r	r	r
�gooditer�srYc@s:eZdZdZdd�Zdd�Zdd�ZdS)	�TestExceptionPropagationz?SF 628246:  Set constructor should not trap iterator TypeErrorscCs|jttt��dS)N)r)r*r+rX)rr	r	r
�test_instanceWithException�sz3TestExceptionPropagation.test_instanceWithExceptioncCsgtdddg�td�tidd6dd6dd6�ttd��td�tt��dS)	Nrr'roZoneZtwoZthreer?)rr'ro)r+r{rY)rr	r	r
�test_instancesWithoutException�s

z7TestExceptionPropagation.test_instancesWithoutExceptioncCs`tdddg�}y%x|D]}|jdg�qWWntk
rNYnX|jd�dS)Nrr'ror�z0no exception when changing size during iteration)r+r�rrL)rr"rMr	r	r
�test_changingSizeWhileIterating�s

z8TestExceptionPropagation.test_changingSizeWhileIteratingN)rrrrr[r\r]r	r	r	r
rZ�s	rZc@seZdZdd�ZdS)�
TestSetOfSetscCs~tdg�}t|g�}|j�}|jt|�t�|j|�|j|�|j|t��|j|�dS)Nr)r5r+r�r.rCr�r�r�)r�innerZouter�elementr	r	r
�test_constructor�s

zTestSetOfSets.test_constructorN)rrrrar	r	r	r
r^�sr^c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%S)&�
TestBinaryOpscCstd�|_dS)Nr'r��)r'r�rc)r+)rr	r	r
r&�szTestBinaryOps.setUpcCs2|j|jtidd6dd6dd6��dS)Nrr'ror��rc)r.r+)rr	r	r
�test_eq�szTestBinaryOps.test_eqcCs0|jtdg�B}|j|td��dS)Nr'r�rc)r'r�rc)r+r.)rr'r	r	r
�test_union_subset�szTestBinaryOps.test_union_subsetcCsE|jtddddg�B}|j|tddddg��dS)Nr'r�rc�)r+r.)rr'r	r	r
�test_union_superset�sz!TestBinaryOps.test_union_supersetcCsE|jtdddg�B}|j|tdddddg��dS)Nror�rdr'rc)r+r.)rr'r	r	r
�test_union_overlapsz TestBinaryOps.test_union_overlapcCs<|jtdg�B}|j|tddddg��dS)Nrgr'r�rc)r+r.)rr'r	r	r
�test_union_non_overlapsz$TestBinaryOps.test_union_non_overlapcCs-|jtd�@}|j|td��dS)Nr'r�)r'r�)r'r�)r+r.)rr'r	r	r
�test_intersection_subset
sz&TestBinaryOps.test_intersection_subsetcCsB|jtddddg�@}|j|tdddg��dS)Nr'r�rcrg)r+r.)rr'r	r	r
�test_intersection_supersetsz(TestBinaryOps.test_intersection_supersetcCs9|jtdddg�@}|j|tdg��dS)Nror�rd)r+r.)rr'r	r	r
�test_intersection_overlapsz'TestBinaryOps.test_intersection_overlapcCs*|jtdg�@}|j|t�dS)Nrg)r+r.r/)rr'r	r	r
�test_intersection_non_overlapsz+TestBinaryOps.test_intersection_non_overlapcCs,|jjtd��}|j|d�dS)Nr'r�F)r'r�)r+rcr.)rr'r	r	r
�test_isdisjoint_subsetsz$TestBinaryOps.test_isdisjoint_subsetcCs8|jjtddddg��}|j|d�dS)Nr'r�rcrgF)r+rcr.)rr'r	r	r
�test_isdisjoint_supersets$z&TestBinaryOps.test_isdisjoint_supersetcCs5|jjtdddg��}|j|d�dS)Nror�rdF)r+rcr.)rr'r	r	r
�test_isdisjoint_overlap"s!z%TestBinaryOps.test_isdisjoint_overlapcCs/|jjtdg��}|j|d�dS)NrgT)r+rcr.)rr'r	r	r
�test_isdisjoint_non_overlap&sz)TestBinaryOps.test_isdisjoint_non_overlapcCs0|jtd�A}|j|tdg��dS)Nr'r�rc)r'r�)r+r.)rr'r	r	r
�test_sym_difference_subset*sz(TestBinaryOps.test_sym_difference_subsetcCs0|jtd�A}|j|tdg��dS)Nr'r�rcrg)r'r�rcrg)r+r.)rr'r	r	r
�test_sym_difference_superset.sz*TestBinaryOps.test_sym_difference_supersetcCs9|jtd�A}|j|tddddg��dS)Nror�rdr'rc)ror�rd)r+r.)rr'r	r	r
�test_sym_difference_overlap2sz)TestBinaryOps.test_sym_difference_overlapcCs<|jtdg�A}|j|tddddg��dS)Nrgr'r�rc)r+r.)rr'r	r	r
�test_sym_difference_non_overlap6sz-TestBinaryOps.test_sym_difference_non_overlapN)rrrr&rerfrhrirjrkrlrmrnrorprqrrrsrtrurvr	r	r	r
rb�s$rbc@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�|_dS)Nr'r�rc)r'r�rc)r+)rr	r	r
r&=szTestUpdateOps.setUpcCs5|jtdg�O_|j|jtd��dS)Nr'r�rc)r'r�rc)r+r.)rr	r	r
rf@szTestUpdateOps.test_union_subsetcCsJ|jtddddg�O_|j|jtddddg��dS)Nr'r�rcrg)r+r.)rr	r	r
rhDs!z!TestUpdateOps.test_union_supersetcCsJ|jtdddg�O_|j|jtdddddg��dS)Nror�rdr'rc)r+r.)rr	r	r
riHsz TestUpdateOps.test_union_overlapcCsA|jtdg�O_|j|jtddddg��dS)Nrgr'r�rc)r+r.)rr	r	r
rjLsz$TestUpdateOps.test_union_non_overlapcCsK|jjtdddg��|j|jtdddddg��dS)Nror�rdr'rc)r+r�r.)rr	r	r
�test_union_method_callPsz$TestUpdateOps.test_union_method_callcCs2|jtd�M_|j|jtd��dS)Nr'r�)r'r�)r'r�)r+r.)rr	r	r
rkTsz&TestUpdateOps.test_intersection_subsetcCsG|jtddddg�M_|j|jtdddg��dS)Nr'r�rcrg)r+r.)rr	r	r
rlXs!z(TestUpdateOps.test_intersection_supersetcCs>|jtdddg�M_|j|jtdg��dS)Nror�rd)r+r.)rr	r	r
rm\sz'TestUpdateOps.test_intersection_overlapcCs/|jtdg�M_|j|jt�dS)Nrg)r+r.r/)rr	r	r
rn`sz+TestUpdateOps.test_intersection_non_overlapcCs?|jjtdddg��|j|jtdg��dS)Nror�rd)r+r�r.)rr	r	r
�test_intersection_method_calldsz+TestUpdateOps.test_intersection_method_callcCs5|jtd�N_|j|jtdg��dS)Nr'r�rc)r'r�)r+r.)rr	r	r
rshsz(TestUpdateOps.test_sym_difference_subsetcCs5|jtd�N_|j|jtdg��dS)Nr'r�rcrg)r'r�rcrg)r+r.)rr	r	r
rtlsz*TestUpdateOps.test_sym_difference_supersetcCs>|jtd�N_|j|jtddddg��dS)Nror�rdr'rc)ror�rd)r+r.)rr	r	r
rupsz)TestUpdateOps.test_sym_difference_overlapcCsA|jtdg�N_|j|jtddddg��dS)Nrgr'r�rc)r+r.)rr	r	r
rvtsz-TestUpdateOps.test_sym_difference_non_overlapcCsH|jjtdddg��|j|jtddddg��dS)Nror�rdr'rc)r+r�r.)rr	r	r
�test_sym_difference_method_callxsz-TestUpdateOps.test_sym_difference_method_callcCs5|jtd�8_|j|jtdg��dS)Nr'r�rc)r'r�)r+r.)rr	r	r
�test_difference_subset|sz$TestUpdateOps.test_difference_subsetcCs2|jtd�8_|j|jtg��dS)Nr'r�rcrg)r'r�rcrg)r+r.)rr	r	r
�test_difference_superset�sz&TestUpdateOps.test_difference_supersetcCs8|jtd�8_|j|jtddg��dS)Nror�rdr'rc)ror�rd)r+r.)rr	r	r
�test_difference_overlap�sz%TestUpdateOps.test_difference_overlapcCs>|jtdg�8_|j|jtdddg��dS)Nrgr'r�rc)r+r.)rr	r	r
�test_difference_non_overlap�sz)TestUpdateOps.test_difference_non_overlapcCsB|jjtdddg��|j|jtddg��dS)Nror�rdr'rc)r+r�r.)rr	r	r
�test_difference_method_call�sz)TestUpdateOps.test_difference_method_callN)rrrr&rfrhrirjrxrkrlrmrnryrsrtrurvrzr{r|r}r~rr	r	r	r
rw<s*rwc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�
TestMutatecCs(dddg|_t|j�|_dS)Nr(rRr7)r%r+)rr	r	r
r&�szTestMutate.setUpcCs-|jjd�|j|jtd��dS)Nr7r?)r+r�r.)rr	r	r
�test_add_present�szTestMutate.test_add_presentcCs-|jjd�|j|jtd��dS)Nr%r;)r+r�r.)rr	r	r
�test_add_absent�szTestMutate.test_add_absentcCsgt�}d}x>|jD]3}|j|�|d7}|jt|�|�qW|j||j�dS)Nrr)r+r%r�r.r2)rZtmp�expected_lenr>r	r	r
�test_add_until_full�s	

zTestMutate.test_add_until_fullcCs-|jjd�|j|jtd��dS)NrRZac)r+r�r.)rr	r	r
�test_remove_present�szTestMutate.test_remove_presentcCs:y!|jjd�|jd�Wntk
r5YnXdS)Nr%z7Removing missing element should have raised LookupError)r+r�rL�LookupError)rr	r	r
�test_remove_absent�s

zTestMutate.test_remove_absentcCsZt|j�}xD|jD]9}|jj|�|d8}|jt|j�|�qWdS)Nr)r2r+r%r�r.)rr�r>r	r	r
�test_remove_until_empty�s

z"TestMutate.test_remove_until_emptycCs-|jjd�|j|jtd��dS)Nr7r[)r+r�r.)rr	r	r
�test_discard_present�szTestMutate.test_discard_presentcCs-|jjd�|j|jtd��dS)Nr%r?)r+r�r.)rr	r	r
�test_discard_absent�szTestMutate.test_discard_absentcCs*|jj�|jt|j�d�dS)Nr)r+r�r.r2)rr	r	r
r��s
zTestMutate.test_clearcCspi}x |jr(d||jj�<q	W|jt|�t|j��x!|jD]}|j||�qRWdS)N)r+r�r.r2r%r6)rZpoppedr>r	r	r
r��szTestMutate.test_popcCs0|jjf�|j|jt|j��dS)N)r+r�r.r%)rr	r	r
�test_update_empty_tuple�sz"TestMutate.test_update_empty_tuplecCs0|jjd�|j|jt|j��dS)Nr()r()r+r�r.r%)rr	r	r
�test_update_unit_tuple_overlap�sz)TestMutate.test_update_unit_tuple_overlapcCs7|jjd�|j|jt|jdg��dS)Nr(rV)r(rV)r+r�r.r%)rr	r	r
�"test_update_unit_tuple_non_overlap�sz-TestMutate.test_update_unit_tuple_non_overlapN)rrrr&r�r�r�r�r�r�r�r�r�r�r�r�r�r	r	r	r
r��s	r�c@s`eZdZidd6dd6Zidd6dd6dd6dd6dd6dd6Zd	d
�ZdS)�TestSubsetsrtz<=ruz>=z==z!=�>�<cCs|j}|j}xd	D]�}||jk}td|dt��}|j||�|tjkr�t|tj|�}||�}|j||�ntj	|}td|dt��}|j||�|tjkrt|tj|�}||�}|j||�qqWdS)
N�!=�==r��<=r��>=rJ�y)r�r�r�r�r�r�)
�left�right�cases�eval�localsr.r��case2method�getattr�reverse)rrJr�rAr0r'�methodZrcaser	r	r
�
test_issubset�s"		

zTestSubsets.test_issubsetN)rrrr�r�r�r	r	r	r
r��s



r�c@s.eZdZe�Ze�ZdZdZdS)�TestSubsetEqualEmptyz
both empty�==�<=�>=N)r�r�r�)rrrr+r�r�r�r�r	r	r	r
r�s		r�c@s@eZdZeddg�Zeddg�ZdZdZdS)	�TestSubsetEqualNonEmptyrr'z
equal pair�==�<=�>=N)r�r�r�)rrrr+r�r�r�r�r	r	r	r
r�
sr�c@s7eZdZe�Zeddg�ZdZdZdS)	�TestSubsetEmptyNonEmptyrr'zone empty, one non-empty�!=r��<=N)r�r�r�)rrrr+r�r�r�r�r	r	r	r
r�s	r�c@s=eZdZedg�Zeddg�ZdZdZdS)	�TestSubsetPartialrr'z&one a non-empty proper subset of other�!=r��<=N)r�r�r�)rrrr+r�r�r�r�r	r	r	r
r�sr�c@s:eZdZedg�Zedg�ZdZdZdS)�TestSubsetNonOverlaprr'zneither empty, neither containsz!=N)rrrr+r�r�r�r�r	r	r	r
r�"sr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestOnlySetsInBinaryOpscCst|j|j|jkd�|j|j|jkd�|j|j|jkd�|j|j|jkd�dS)NFT)r.rr+)rr	r	r
�
test_eq_ne,sz"TestOnlySetsInBinaryOps.test_eq_necs��jt�fdd���jt�fdd���jt�fdd���jt�fdd���jt�fdd���jt�fdd���jt�fdd���jt�fd	d��dS)
Ncs�j�jkS)N)r+rr	)rr	r
�<lambda>4sz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>cs�j�jkS)N)r+rr	)rr	r
r�5scs�j�jkS)N)r+rr	)rr	r
r�6scs�j�jkS)N)r+rr	)rr	r
r�7scs�j�jkS)N)rr+r	)rr	r
r�9scs�j�jkS)N)rr+r	)rr	r
r�:scs�j�jkS)N)rr+r	)rr	r
r�;scs�j�jkS)N)rr+r	)rr	r
r�<s)r)r*)rr	)rr
�test_ge_gt_le_lt3sz(TestOnlySetsInBinaryOps.test_ge_gt_le_ltcCs<y|j|jO_Wntk
r*YnX|jd�dS)Nzexpected TypeError)r+rr*rL)rr	r	r
�test_update_operator>s

z,TestOnlySetsInBinaryOps.test_update_operatorcCs?|jr|jj|j�n|jt|jj|j�dS)N)�otherIsIterabler+r�rr)r*)rr	r	r
r�Fs	z#TestOnlySetsInBinaryOps.test_updatecsw�jt�fdd���jt�fdd���jrW�jj�j�n�jt�jj�j�dS)Ncs�j�jBS)N)r+rr	)rr	r
r�Msz4TestOnlySetsInBinaryOps.test_union.<locals>.<lambda>cs�j�jBS)N)rr+r	)rr	r
r�Ns)r)r*r�r+rBr)rr	)rr
rKLs
	z"TestOnlySetsInBinaryOps.test_unioncCs<y|j|jM_Wntk
r*YnX|jd�dS)Nzexpected TypeError)r+rr*rL)rr	r	r
�!test_intersection_update_operatorTs

z9TestOnlySetsInBinaryOps.test_intersection_update_operatorcCs?|jr|jj|j�n|jt|jj|j�dS)N)r�r+r�rr)r*)rr	r	r
r�\s
			z0TestOnlySetsInBinaryOps.test_intersection_updatecsw�jt�fdd���jt�fdd���jrW�jj�j�n�jt�jj�j�dS)Ncs�j�j@S)N)r+rr	)rr	r
r�esz;TestOnlySetsInBinaryOps.test_intersection.<locals>.<lambda>cs�j�j@S)N)rr+r	)rr	r
r�fs)r)r*r�r+rSr)rr	)rr
rWds
	z)TestOnlySetsInBinaryOps.test_intersectioncCs<y|j|jN_Wntk
r*YnX|jd�dS)Nzexpected TypeError)r+rr*rL)rr	r	r
�#test_sym_difference_update_operatorls

z;TestOnlySetsInBinaryOps.test_sym_difference_update_operatorcCs?|jr|jj|j�n|jt|jj|j�dS)N)r�r+r�rr)r*)rr	r	r
�test_sym_difference_updatets
			z2TestOnlySetsInBinaryOps.test_sym_difference_updatecsw�jt�fdd���jt�fdd���jrW�jj�j�n�jt�jj�j�dS)Ncs�j�jAS)N)r+rr	)rr	r
r�}sz=TestOnlySetsInBinaryOps.test_sym_difference.<locals>.<lambda>cs�j�jAS)N)rr+r	)rr	r
r�~s)r)r*r�r+rkr)rr	)rr
�test_sym_difference|s
	z+TestOnlySetsInBinaryOps.test_sym_differencecCs<y|j|j8_Wntk
r*YnX|jd�dS)Nzexpected TypeError)r+rr*rL)rr	r	r
�test_difference_update_operator�s

z7TestOnlySetsInBinaryOps.test_difference_update_operatorcCs?|jr|jj|j�n|jt|jj|j�dS)N)r�r+r�rr)r*)rr	r	r
r��s
			z.TestOnlySetsInBinaryOps.test_difference_updatecsw�jt�fdd���jt�fdd���jrW�jj�j�n�jt�jj�j�dS)Ncs�j�jS)N)r+rr	)rr	r
r��sz9TestOnlySetsInBinaryOps.test_difference.<locals>.<lambda>cs�j�jS)N)rr+r	)rr	r
r��s)r)r*r�r+rgr)rr	)rr
rh�s
	z'TestOnlySetsInBinaryOps.test_differenceN)rrrr�r�r�r�rKr�r�rWr�r�r�r�r�rhr	r	r	r
r�*sr�c@seZdZdd�ZdS)�TestOnlySetsNumericcCs%td�|_d|_d|_dS)Nrr'ro�F)rr'ro)r+rr�)rr	r	r
r&�s	zTestOnlySetsNumeric.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsDictcCs3td�|_idd6dd6|_d|_dS)Nrr'ror�T)rr'ro)r+rr�)rr	r	r
r&�szTestOnlySetsDict.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsOperatorcCs(td�|_tj|_d|_dS)Nrr'roF)rr'ro)r+rIr�rr�)rr	r	r
r&�szTestOnlySetsOperator.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsTuplecCs%td�|_d|_d|_dS)	Nrr'ror�rcT)rr'ro)r'r�rc)r+rr�)rr	r	r
r&�s	zTestOnlySetsTuple.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsStringcCs%td�|_d|_d|_dS)Nrr'ror?T)rr'ro)r+rr�)rr	r	r
r&�s	zTestOnlySetsString.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsGeneratorcCs4dd�}td�|_|�|_d|_dS)Ncss&xtddd�D]}|VqWdS)Nrrzr')r{)rMr	r	r
�gen�sz(TestOnlySetsGenerator.setUp.<locals>.genrr'roT)rr'ro)r+rr�)rr�r	r	r
r&�szTestOnlySetsGenerator.setUpN)rrrr&r	r	r	r
r��sr�c@s(eZdZdd�Zdd�ZdS)�TestCopyingcCs�|jj�}t|dt�}t|jdt�}|jt|�t|��x5tt|��D]!}|j||||k�qeWdS)Nr�)r+r�r-rr.r2r{rd)rr��dup_list�set_listrMr	r	r
r��szTestCopying.test_copycCs�tj|j�}t|dt�}t|jdt�}|jt|�t|��x2tt|��D]}|j||||�qhWdS)Nr�)r�r�r+r-rr.r2r{)rr�r�r�rMr	r	r
�test_deep_copy�szTestCopying.test_deep_copyN)rrrr�r�r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestCopyingEmptycCst�|_dS)N)r+)rr	r	r
r&�szTestCopyingEmpty.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestCopyingSingletoncCstdg�|_dS)NZhello)r+)rr	r	r
r&�szTestCopyingSingleton.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestCopyingTriplecCstdddg�|_dS)NrFr)r+)rr	r	r
r&�szTestCopyingTriple.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestCopyingTuplecCstdg�|_dS)Nrr')rr')r+)rr	r	r
r&�szTestCopyingTuple.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestCopyingNestedcCstdg�|_dS)Nrr'ror��rr'�ror�)r�r�)r+)rr	r	r
r&�szTestCopyingNested.setUpN)rrrr&r	r	r	r
r��sr�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestIdentitiescCs"td�|_td�|_dS)NZabracadabraZalacazam)r+r(rR)rr	r	r
r&szTestIdentities.setUpcCs�|j|j}}|j|||k�|j|||k�|j||@|k�|j||@|k�|j||B|k�|j||B|k�|j||A||Bk�dS)N)r(rRrd)rr(rRr	r	r
�test_binopsVsSubsets	sz#TestIdentities.test_binopsVsSubsetscCs�|j|j}}|j||@||@�|j||B||B�|j||A||A�||kr�|j||||�ndS)N)r(rRr.rU)rr(rRr	r	r
�test_commutativitysz!TestIdentities.test_commutativitycCs�|j|j}}|j||||@B||B||B�|j||@||AB||B�|j|||B||B�|j|||B||B�|j||||@B|�|j||||@B|�|j||||B||A�dS)N)r(rRr.)rr(rRr	r	r
�test_summationss( zTestIdentities.test_summationscCsm|j|jt�}}}|j|||@|�|j|||@|�|j||@||A@|�dS)N)r(rRr+r.)rr(rRrFr	r	r
�test_exclusion&szTestIdentities.test_exclusionN)rrrr&r�r�r�r�r	r	r	r
r�s

r�ccsx|D]}|VqWdS)zRegular generatorNr	)�seqnrMr	r	r
�R/s
r�c@s.eZdZdZdd�Zdd�ZdS)�GzSequence using __getitem__cCs
||_dS)N)r�)rr�r	r	r
r6sz
G.__init__cCs|j|S)N)r�)rrMr	r	r
�__getitem__8sz
G.__getitem__N)rrrrrr�r	r	r	r
r�4sr�c@s:eZdZdZdd�Zdd�Zdd�ZdS)	�Iz Sequence using iterator protocolcCs||_d|_dS)Nr)r�rM)rr�r	r	r
r=s	z
I.__init__cCs|S)Nr	)rr	r	r
�__iter__@sz
I.__iter__cCsD|jt|j�kr!t�n|j|j}|jd7_|S)Nr)rMr2r�r�)rr>r	r	r
�__next__Bs
	z
I.__next__N)rrrrrr�r�r	r	r	r
r�;sr�c@s.eZdZdZdd�Zdd�ZdS)�Igz9Sequence using iterator protocol defined with a generatorcCs||_d|_dS)Nr)r�rM)rr�r	r	r
rJs	zIg.__init__ccsx|jD]}|Vq
WdS)N)r�)r�valr	r	r
r�MszIg.__iter__N)rrrrrr�r	r	r	r
r�Hsr�c@s.eZdZdZdd�Zdd�ZdS)�Xz Missing __getitem__ and __iter__cCs||_d|_dS)Nr)r�rM)rr�r	r	r
rSs	z
X.__init__cCsD|jt|j�kr!t�n|j|j}|jd7_|S)Nr)rMr2r�r�)rr>r	r	r
r�Vs
	z
X.__next__N)rrrrrr�r	r	r	r
r�Qsr�c@s.eZdZdZdd�Zdd�ZdS)�NzIterator missing __next__()cCs||_d|_dS)Nr)r�rM)rr�r	r	r
r^s	z
N.__init__cCs|S)Nr	)rr	r	r
r�asz
N.__iter__N)rrrrrr�r	r	r	r
r�\sr�c@s:eZdZdZdd�Zdd�Zdd�ZdS)	�EzTest propagation of exceptionscCs||_d|_dS)Nr)r�rM)rr�r	r	r
rfs	z
E.__init__cCs|S)Nr	)rr	r	r
r�isz
E.__iter__cCsdddS)Nrorr	)rr	r	r
r�ksz
E.__next__N)rrrrrr�r�r	r	r	r
r�dsr�c@s:eZdZdZdd�Zdd�Zdd�ZdS)	�SzTest immediate stopcCsdS)Nr	)rr�r	r	r
rpsz
S.__init__cCs|S)Nr	)rr	r	r
r�rsz
S.__iter__cCs
t�dS)N)r�)rr	r	r
r�tsz
S.__next__N)rrrrrr�r�r	r	r	r
r�nsr�)�chaincCs+ttdd�ttt|�����S)z Test multiple tiers of iteratorscSs|S)Nr	)rJr	r	r
r�zszL.<locals>.<lambda>)r�rpr�r�r�)r�r	r	r
�Lxsr�c@s4eZdZdd�Zdd�Zdd�ZdS)�TestVariousIteratorArgsc	Cs�x�ttfD]�}x�ddtd�d
tddd�fD]�}xZttttttfD]@}|j	t
|||��d	t�t
||�d	t��qZW|jt
|t|��|jt
|t|��|jt|t|��q;Wq
WdS)N�123rPi��do�333333�?i�i�rdr�)r�r�)r+r5r{r�r�r�r�r�r�r.r-rr)r*r�r��ZeroDivisionErrorr�)rZconsr"�gr	r	r
ra~s.>z(TestVariousIteratorArgs.test_constructorc	CsGtd�}x4ddtd�dtddd	�d
fD]}x�|j|j|j|j|jfD]�}x�ttt	t
tfD]n}||�}|||��}t|t
�r�|j||�q~|jt|dt�t|dt��q~W|jt|t|��|jt|t|��|jt|t|��qbWq7WdS)
NZnovemberr�rPi�r��333333�?i�i�rd�decemberr�)zdor�)r+r{rBrSrgrkrcr�r�r�r�r��
isinstance�boolr.r-rr)r*r�r�r�r�)rr"r��methr�r0r/r	r	r
�test_inline_methods�s1+,z+TestVariousIteratorArgs.test_inline_methodsc	Cs]xVddtd�dtddd�d	fD]*}x!dD]}x�ttttttfD]~}td�}|j�}t	||�t
||���t	||�||��|jt|dt
�t|dt
��qWW|jtt	td�|�t|��|jtt	td�|�t|��|jtt	td�|�t|��q8Wq+WdS)Nr�rPi�r��333333�?i�i�rdr�r�r�r�r�Zjanuaryr�)zdor�)zupdatezintersection_updatezdifference_updatezsymmetric_difference_update)r{r�r�r�r�r�r�r+r�r�rFr.r-rr)r*r�r�r�r�)rr�Zmethnamer�r"rqr	r	r
�test_inplace_methods�s1
,((z,TestVariousIteratorArgs.test_inplace_methodsN)rrrrar�r�r	r	r	r
r�|s	r�c@s(eZdZdd�Zdd�ZdS)�bad_eqcCs#trtj�t�n||kS)N)�be_bad�set2r�r�)rrr	r	r
r�s
	z
bad_eq.__eq__cCsdS)Nrr	)rr	r	r
r�szbad_eq.__hash__N)rrrrrr	r	r	r
r��sr�c@s(eZdZdd�Zdd�ZdS)�bad_dict_clearcCstrtj�n||kS)N)r��dict2r�)rrr	r	r
r�s
zbad_dict_clear.__eq__cCsdS)Nrr	)rr	r	r
r�szbad_dict_clear.__hash__N)rrrrrr	r	r	r
r��sr�c@s(eZdZdd�Zdd�ZdS)�
TestWeirdBugscCs�dat�h}dd�td�D�ada|jt|jt�dat�h}idt�6ada|j	t�dS)NFcSsh|]}t��qSr	)r�)r�rMr	r	r
�	<setcomp>�s	z4TestWeirdBugs.test_8420_set_merge.<locals>.<setcomp>�KT)
r�r�r{r�r)r�r�r�r�r�)rZset1r	r	r
�test_8420_set_merge�sz!TestWeirdBugs.test_8420_set_mergecCsxttd��}|j�|jtd��t|�}|j�ttd��}|jtd��t|�dS)Nr
)r+r{r�r�r�rF)rr"Zsir(r	r	r
�test_iter_and_mutate�s

z"TestWeirdBugs.test_iter_and_mutateN)rrrr�r�r	r	r	r
r��sr�ccskt|�}y>tt|�g�}x"t|�D]}|V||BVq1WWntk
rft�VYnXdS)z-Generates all subsets of a set or sequence U.N)r�r5r��powersetr�)�UrJr�r	r	r
r��s
r�csBdd�t|�D��t�fdd�tt|��D��S)z!Graph of n-dimensional hypercube.cSsg|]}t|g��qSr	)r5)r�rJr	r	r
r�s	zcube.<locals>.<listcomp>cs5g|]+��t�fdd��D��f�qS)csg|]}�|A�qSr	r	)r�r")rJr	r
r�s	z#cube.<locals>.<listcomp>.<listcomp>)r5)r�)�
singletons)rJr
r�s	)r{r#r�)r�r	)r�r
�cube�sr�cs�i}x�|D]{�xr|�D]f���fdd�|�D�}��fdd�|�D�}t||�|t��g�<qWq
W|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	)r5)r�rV)rJr�r	r
r�s	zlinegraph.<locals>.<listcomp>cs.g|]$}|�krt�|g��qSr	)r5)r�rV)rJr�r	r
r�s	)r5)r�r�ZnxZnyr	)rJr�r
�	linegraph�s
  (r�cCsRt�}xB|j�D]4\}}x%|D]}x||D]}||krRq:n|||kr�|jt|||g��q:x�||D]�}||kr�q�n|||kr�|jt||||g��q�xe||D]Y}||ks�||krq�n|||kr�|jt|||||g��q�q�Wq�Wq:Wq)WqW|S)zKReturn a set of faces in G.  Where a face is a set of vertices on that face)r+�itemsr�r5)r�rZr��edgesr�Zv3Zv4Zv5r	r	r
�faces�s&	
"9rc@s(eZdZdd�Zdd�ZdS)�
TestGraphscCs�td�}t|�}|jt|�d�x*|j�D]}|jt|�d�q;Wtdd�|j�D��}|j||�t|�}|jt|�d�x$|D]}|jt|�d�q�WdS)Nrorgcss"|]}|D]}|Vq
qdS)Nr	)r�r�r>r	r	r
r�sz'TestGraphs.test_cube.<locals>.<genexpr>rcr�)r�r+r.r2r%r)rr�Z	vertices1�edgeZ	vertices2Z	cubefaces�facer	r	r
�	test_cubes
zTestGraphs.test_cubecCsPtd�}t|�}|jt|�d�t|�}x*|j�D]}|jt|�d�qGWtdd�|j�D��}|j||�t|�}tjt	�}x"|D]}|t|�d7<q�W|j|dd�|j|dd�xK|D]C}	|	}
|jt|
�d	�x|
D]}|j
||�q.WqWdS)
Nro�r�css"|]}|D]}|Vq
qdS)Nr	)r�r�rr	r	r
r�(sz0TestGraphs.test_cuboctahedron.<locals>.<genexpr>rrgrcr')r�r�r.r2r+r%rr��defaultdictrr6)rr�Z
cuboctahedronZverticesr�Z
otherverticesZ	cubofacesZ	facesizesrZvertexrZcubevertr	r	r
�test_cuboctahedrons&


zTestGraphs.test_cuboctahedronN)rrrrrr	r	r	r
r
sr�__main__)\rZtestrr�r�rIr�r|Zrandomrr�sysrSr�Zcollections.abc�	Exceptionrrr
rrrrZTestCaser�r+rrrrr
r5rrr/rr@rBrErHrJrKrOrXrYrZr^rbrwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��	itertoolsr�r�r�r�r�r�r�r�r�rrr�mainr	r	r	r
�<module>s��F�?	o


IVJ&t+
	
	)	1