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.7/test/__pycache__/test_set.cpython-37.pyc
B

��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�ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWGd�d��d�ej�ZXeYd�k�r�e�Z�dS)��N)�support)�	randrange�shufflec@seZdZdS)�PassThruN)�__name__�
__module__�__qualname__�r	r	�)/usr/local/lib/python3.7/test/test_set.pyrsrccst�dVdS)N�)rr	r	r	r
�check_pass_thrusrc@seZdZdd�Zdd�ZdS)�BadCmpcCsdS)Nrr	)�selfr	r	r
�__hash__szBadCmp.__hash__cCst�dS)N)�RuntimeError)r�otherr	r	r
�__eq__sz
BadCmp.__eq__N)rrrrrr	r	r	r
r
sr
c@seZdZdZdd�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
rsrc@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�|�S)Nr)r�intr)rr	r	r
r$szHashCountingInt.__hash__N)rrrrrrr	r	r	r
r 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)rrr	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�dS)N)	�sortedr"r%�assertEqualr)rr!rr*)r�actual�expectedr	r	r
�test_uniquification6s


z TestJointOps.test_uniquificationcCs|�t|j�t|j��dS)N)r.�lenr"r%)rr	r	r
�test_len=szTestJointOps.test_lencCsfx&|jD]}|�||jk||jk�qW|�t|jjgg�|�t|j�g�}|�	|�|j�|�dS)N)
r r.r"r%r)r*�__contains__r!�	frozenset�assertIn)r�cr"r	r	r
�
test_contains@s
zTestJointOps.test_containscCs�|j�|j�}x.|jD]$}|�||k||jkp6||jk�qW|�|j|�|j��|�t|�|j	�|�
t|jjt��|�
t
|jjgg�x�tttjtttfD]�}|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td	��|�|�d��|d�|d
��td��q�W|��}|�|�tdg�|tdg��|�dd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_unionGs$    *zTestJointOps.test_unioncCsr|j�|j�}|�|jt|j�B|�|�|jt|j�B|�y|j|jBWntk
rbYnX|�d�dS)Nz(s|t did not screen-out general iterables)r"rBrr.r+r5r*�fail)r�ir	r	r
�test_orZszTestJointOps.test_orcCs�|j�|j�}x.|jD]$}|�||k||jko6||jk�qW|�|j|�|j��|�t|�|j	�|�
t|jjt��x�t
ttjtttfD]�}|�|�d��|d��t
d��|�|�d��|d��t
d��|�|�d��|d��t
d��|�|�d��|d��t
d��|�|�d��|d	�|d
��t
d��q�W|�d�}|��}|jt�k�rr|�t|�t|��n|�t|�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"$    *
zTestJointOps.test_intersectionc	Cs�dd�}x~dD]v}|�|�}xfdD]^}xXtttjtttfD]B}||�}|�|�}|||�}|�	||�|�
|dkpx|dk�q:Wq"WqWdS)NcSst|��|�S)z&Pure python equivalent of isdisjoint())r+rS)�s1�s2r	r	r
�fzsz'TestJointOps.test_isdisjoint.<locals>.f)
rPr(�abr?Zababacr:rOr<r>r@TF)r!r+r5r#r$rErFrG�
isdisjointr.�
assertTrue)	rrZZlargrXZrargrIrYr/r0r	r	r
�test_isdisjointys




zTestJointOps.test_isdisjointcCsr|j�|j�}|�|jt|j�@|�|�|jt|j�@|�y|j|j@Wntk
rbYnX|�d�dS)Nz(s&t did not screen-out general iterables)r"rSrr.r+r5r*rL)rrMr	r	r
�test_and�szTestJointOps.test_andcCsn|j�|j�}x.|jD]$}|�||k||jko6||jk�qW|�|j|�|j��|�t|�|j	�|�
t|jjt��|�
t
|jjgg�x�tttjtttfD]�}|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td��|�|�d���td��|�|�d��|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�s$    zTestJointOps.test_differencecCsr|j�|j�}|�|jt|j�|�|�|jt|j�|�y|j|jWntk
rbYnX|�d�dS)Nz(s-t did not screen-out general iterables)r"r`rr.r+r5r*rL)rrMr	r	r
�test_sub�szTestJointOps.test_subcCs.|j�|j�}x.|jD]$}|�||k||jk||jkA�qW|�|j|�|j��|�t|�|j	�|�
t|jjt��|�
t
|jjgg�x�tttjtttfD]�}|�|�d��|d��td��|�|�d��|d��td��|�|�d��|d��td��|�|�d��|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�s$   z&TestJointOps.test_symmetric_differencecCsr|j�|j�}|�|jt|j�A|�|�|jt|j�A|�y|j|jAWntk
rbYnX|�d�dS)Nz(s^t did not screen-out general iterables)r"rdrr.r+r5r*rL)rrMr	r	r
�test_xor�szTestJointOps.test_xorcCs||�|jt|j��|�|jt|j��|�|j|jkd�|�|jt|j��|�|jt|j��|�|j|jkd�dS)NFT)r.r"r+rr5rUr)rr	r	r
�
test_equality�szTestJointOps.test_equalitycCs2ttdddddg�}|�|�}|�t|�d�dS)NZabcdefZbcdZbdcbZfedZfedccba�)�mapr5r!r.r2)r�tr"r	r	r
�test_setOfFrozensets�s
z!TestJointOps.test_setOfFrozensetscCs�t|jdddg�\}}}|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�||k�|�td��d��|�td��d��|�td��d��|�td��d��dS)Nr[Zabcde�defr(r?Zcbs)rir!r]ZassertFalser+�issubset�
issuperset)r�p�q�rr	r	r
�test_sub_and_super�szTestJointOps.test_sub_and_supercCs�x�ttjd�D]z}t�|j|�}t�|�}|�|j|d|j|f�t|j�tt	fkrd|j_
t�|j|�}t�|�}|�|jj
|j
�qWdS)Nrz%s != %s�
)�range�pickle�HIGHEST_PROTOCOL�dumpsr"�loadsr.rCr+r5rJ)rrMro�dupr	r	r
�
test_pickling�s

zTestJointOps.test_picklingc	Cs�x�ttjd�D]�}t|j�}|�|j�}t�||�}t�|�}|�|t	j
j�|�|�|�|�t�|�}yt
|�}Wntk
r�wYnXt�||�}t�|�}|�|�|�||�|f��qWdS)Nr)rtrurv�iterr"r!rwrxZassertIsInstance�collectionsr?�Iteratorr.�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|��x|D]}|}qJW|�t|�t|��|�|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)rZmemo)�Tracerr	r
�__deepcopy__	sz7TestJointOps.test_deepcopy.<locals>.Tracer.__deepcopy__)N)rrrrrr�r	)r�r	r
r�sr�rsr)r!�copy�deepcopyrUrTr.r)rrjr"ry�elemZnewtr	)r�r
�
test_deepcopys

zTestJointOps.test_deepcopycsRGdd�d��t�fdd�td�D��}x$|D]}||_||_t|g�|_q.WdS)Nc@seZdZdS)zTestJointOps.test_gc.<locals>.AN)rrrr	r	r	r
�Asr�c3s|]}��VqdS)Nr	)�.0rM)r�r	r
�	<genexpr>sz'TestJointOps.test_gc.<locals>.<genexpr>i�)r+rt�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���)rrT)rr	r	r
r!sz?TestJointOps.test_subclass_with_custom_hash.<locals>.H.__hash__N)rrrrr	r	r	r
�H sr�)r!r+�addr6�remove�discard)rr�r"rZr	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!r
r)rr4�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!rr+r.r�	partition)r�wr"�namer	r	r
�test_cyclical_repr6s
zTestJointOps.test_cyclical_reprc	Cszt�}|�|g�}||_ttjd�}z:|�t|��|��ttjd�}|�	|�
�t|��Wd|��t�tj�XdS)Nr�rq)
rr!r�openr�TESTFN�writerE�closer.�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)Nrscss|]}|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$rirrtr.�sumr!r`r�r�r+r5)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��|�|�dkd�dS)Nc@seZdZdS)z/TestJointOps.test_container_iterator.<locals>.CN)rrrr	r	r	r
rIcsrIrzCycle was not collected)	�object�weakref�refr+r{rJ�gcZcollectr])rrI�objr��	containerr	r	r
�test_container_iteratoras

z$TestJointOps.test_container_iteratorcCst�|t|j�dS)N)rZcheck_free_after_iteratingr{r!)rr	r	r
�test_free_after_iteratingmsz&TestJointOps.test_free_after_iteratingN)rrrr&r,r1r3r8rKrNrWr^r_rarbrerfrgrkrrrzr�r�r�r�r�r�r�r�r�r�r	r	r	r
r(s8


rc@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!rrr.r+rr)r*)rr"r	r	r
�	test_inittszTestSet.test_initcCs0|�td��}|�|�}|�t|�t|��dS)Nrh)r!rtrUrT)rr"rjr	r	r
�test_constructor_identity}s
z!TestSet.test_constructor_identitycCs(tdddg�}dddh}|�||�dS)Nrr'rh)r+r.)rr"rjr	r	r
�test_set_literal�s
zTestSet.test_set_literalcCs6dddh}|�t|�d�|��}|�t|�t�dS)Nrg�?T)r.r2�poprCr)rr"Zstored_valuer	r	r
� test_set_literal_insertion_order�s
z(TestSet.test_set_literal_insertion_ordercs<g��fdd�}|d�|d�|d�h}|��dddg�dS)Ncs��|�dS)N)�append)r�)�eventsr	r
�record�sz9TestSet.test_set_literal_evaluation_order.<locals>.recordrr'rh)r.)rr�r"r	)r�r
�!test_set_literal_evaluation_order�sz)TestSet.test_set_literal_evaluation_ordercCs|�tt|j�dS)N)r)r*�hashr")rr	r	r
�	test_hash�szTestSet.test_hashcCs0|j��|�|jt��|�t|j�d�dS)Nr)r"�clearr.r+r2)rr	r	r
�
test_clear�s
zTestSet.test_clearcCsD|j��}|�|j|�|�t|j�t|��|�t|�|j�dS)N)r"r�r.rUrTrCrD)rryr	r	r
�	test_copy�s
zTestSet.test_copycCsT|j�d�|�d|j�|j��}|j�d�|�|j|�|�t|jjg�dS)N�Q)r"r�r6r�r.r)r*)rryr	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)Nr(r�)
r"r��assertNotInr)�KeyErrorr*r!r5rr6)rr"r	r	r
�test_remove�szTestSet.test_removecCsdx^dD]V}y|j�|�Wn8tk
rR}z|jd}|�||�Wdd}~XYqX|��qWdS)N)r�)rr)r"r�r�rr.rL)r�v1�e�v2r	r	r
�test_remove_keyerror_unpacking�s

z&TestSet.test_remove_keyerror_unpackingcCsr|�ddg�}y|j�|�WnFtk
rd}z(|�|jd|kd�||jd��Wdd}~XYn
X|��dS)Nrh�rzKeyError should be {0}, not {1})r!r"r�r�r]r�formatrL)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��dS)Nr(r�)	r"r�r�r)r*r!r5rr6)rr"r	r	r
�test_discard�szTestSet.test_discardcCsDx.tt|j��D]}|j��}|�||j�qW|�t|jj�dS)N)rtr2r"r�r�r)r�)rrMr�r	r	r
�test_pop�s
zTestSet.test_popc	Cs<|j�|j�}|�|d�x"|j|jD]}|�||j�q(W|�t|jjt��|�t	|jjgg�x\dD]T\}}xJt
ttj
tttfD]4}|�d�}|�|�||��d�|�|t
|��q�WqlWxrdD]j}d}x`t
ttj
tttfD]J}|�d�}|�|�||�||��d�|�|t
|�t
|�Bt
|�B�q�Wq�WdS)N))r:r;)r<r=)r>r?)r@rAr9)r:r<r>r@ZabcdaZahi)r"�updaterr.rr6r)rrr*r+r5r#r$rErFrGr!)r�retvalr7rorprIr"r	r	r
�test_update�s"


zTestSet.test_updatecCs<|jt|j�O_x"|j|jD]}|�||j�q"WdS)N)r"r+rrr6)rr7r	r	r
�test_ior�szTestSet.test_iorc		Cs:|j�|j�}|�|d�xF|j|jD]6}||jkrP||jkrP|�||j�q(|�||j�q(W|�t|jjt	��|�t
|jjgg�x�dD]�\}}x�ttt
jtttfD]�}|�d�}|�|�||��d�|�|t|��d}|�|�}d}|�|�||�||��d�|�|td�t|�@t|�@�q�Wq�WdS)N))r:r7)r<rP)r>rQ)r@rPr9Zcbc)r"�intersection_updaterr.rr6r�r)rrr*r+r5r#r$rErFrGr!)	rr�r7rorprIr"�ssrjr	r	r
�test_intersection_update�s$

z TestSet.test_intersection_updatecCs`|jt|j�M_xF|j|jD]6}||jkrJ||jkrJ|�||j�q"|�||j�q"WdS)N)r"r+rrr6r�)rr7r	r	r
�	test_iands
zTestSet.test_iandcCs~|j�|j�}|�|d�xF|j|jD]6}||jkrP||jkrP|�||j�q(|�||j�q(W|�t|jjt	��|�t
|jjgg�|�t
|jjgg�x�dD]�\}}x�tt
tjtttfD]�}|�d�}|�|�||��d�|�|t|��|�d�}|��|�||�d��|�d�}|�|d��|�||�d��|�d�}|�|d�|d��|�||�d��q�Wq�WdS)N))r:r[)r<r?)r>r()r@r?r9Z
abcdefghihZabaZcdefghihr:Zefghih)r"�difference_updaterr.rr6r�r)rrr*r�r+r5r#r$rErFrGr!)rr�r7rorprIr"r	r	r
�test_difference_updates.



zTestSet.test_difference_updatecCs`|jt|j�8_xF|j|jD]6}||jkrJ||jkrJ|�||j�q"|�||j�q"WdS)N)r"r+rrr6r�)rr7r	r	r
�	test_isub0s
zTestSet.test_isubcCs�|j�|j�}|�|d�xF|j|jD]6}||jk||jkArP|�||j�q(|�||j�q(W|�t|jjt	��|�t
|jjgg�x\dD]T\}}xJttt
jtttfD]4}|�d�}|�|�||��d�|�|t|��q�Wq�WdS)N))r:rc)r<r=)r>r()r@rAr9)r"r�rr.rr6r�r)rrr*r+r5r#r$rErFrGr!)rr�r7rorprIr"r	r	r
� test_symmetric_difference_update8s
z(TestSet.test_symmetric_difference_updatecCs`|jt|j�N_xF|j|jD]6}||jk||jkArJ|�||j�q"|�||j�q"WdS)N)r"r+rrr6r�)rr7r	r	r
�	test_ixorHs
zTestSet.test_ixorcCst|j��}||O}|�||j�||M}|�||j�||8}|�||���|j��}||N}|�||���dS)N)r"r�r.r!)rrjr	r	r
�test_inplace_on_selfPs

zTestSet.test_inplace_on_selfcCs>|�d�}t�|�}|�t|�t|��d}|�tt|�dS)NZgallahad)r!r��proxyr.rEr)�ReferenceError)rr"ror	r	r
�test_weakref\s


zTestSet.test_weakrefcCs�Gdd�d�}dddh}|�}||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)r�some_setr	r	r
�__gt__esz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__gt__cSs
d|_dS)NTF)�	lt_called)rr�r	r	r
�__lt__hsz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__lt__cSs
d|_dS)NTF)�	ge_called)rr�r	r	r
�__ge__ksz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__ge__cSs
d|_dS)NTF)�	le_called)rr�r	r	r
�__le__nsz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__le__N)rrrr�r�r�r�r	r	r	r
�TestRichSetComparedsr�rr'rh)r]r�r�r�r�)rr�ZmysetZmyobjr	r	r
�test_rich_comparecs
zTestSet.test_rich_compare�
test_c_apiz*C API test only available in a debug buildcCs|�t���d�dS)NT)r.r+r�)rr	r	r
r��szTestSet.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�r�r��unittestZ
skipUnlessr�r�r	r	r	r
r�ps:	$r�c@seZdZdS)�SetSubclassN)rrrr	r	r	r
r��sr�c@seZdZeZeZdS)�TestSetSubclassN)rrrr�r!r+rDr	r	r	r
r��sr�c@seZdZgdfdd�ZdS)�SetSubclassWithKeywordArgsNcCst�||�dS)N)r+r)r�iterable�newargr	r	r
r�sz#SetSubclassWithKeywordArgs.__init__)rrrrr	r	r	r
r��sr�c@seZdZdd�ZdS)�TestSetSubclassWithKeywordArgscCstdd�dS)z=SF bug #1486663 -- this used to erroneously raise a TypeErrorr)r�N)r�)rr	r	r
�test_keywords_in_subclass�sz8TestSetSubclassWithKeywordArgs.test_keywords_in_subclassN)rrrr�r	r	r	r
r��sr�c@sTeZdZeZeZdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dS)�
TestFrozenSetcCs.|�|j�}|�|j�|�|t|j��dS)N)r!rrrr.r+)rr"r	r	r
r��szTestFrozenSet.test_initcCsnt�}t�tg�td�td�t�tg�td�td�ttd��tt��t|�|g}|�tttt|���d�dS)Nr	rPrr)r5rtr.r2r+rirT)rrZ�efsr	r	r
�test_singleton_empty_frozenset�sz,TestFrozenSet.test_singleton_empty_frozensetcCs0|�td��}|�|�}|�t|�t|��dS)Nrh)r!rtr.rT)rr"rjr	r	r
r��s
z'TestFrozenSet.test_constructor_identitycs�|�t|�d��t|�d���d��fdd�t��D�}t�}x,td�D] }t|�|�t|�|���qJW|�t|�d�dS)NZabcdebZebecda�dcsg|]}t���qSr	)r)r�rM)r�r	r
�
<listcomp>�sz+TestFrozenSet.test_hash.<locals>.<listcomp>��r)r.r�r!rtr+rr�r2)r�seq�resultsrMr	)r�r
r��szTestFrozenSet.test_hashcCs$|j��}|�t|j�t|��dS)N)r"r�r.rT)rryr	r	r
r��s
zTestFrozenSet.test_copycCsrttd��td�dg}|�|�}|�t|��}|�||�|�t|�t|��i}d||<|�||d�dS)NrsZabcdefgZapple�*)rFrtr!�reversedr.rUrT)rr�Zkey1Zkey2r%r	r	r
�test_frozen_as_dictkey�s
z$TestFrozenSet.test_frozen_as_dictkeycCs"|�d�}|�t|�t|��dS)NZabcdcda)r!r.r�)rrZr	r	r
�test_hash_caching�s
zTestFrozenSet.test_hash_cachingc
	s�d}t�}|j}dd�t|�D�}x2td|�D]"�|tt�fdd�|D����q0W|�t|�d|�dd�}dd	�}xftd
�D]Z}d|}|d�xDt|fD]8}t�fdd
�tt|||���D��}	|�d|	|�q�Wq�WdS)N�
cSsg|]}|dd|>f�qS)rr	)r�rMr	r	r
r��sz9TestFrozenSet.test_hash_effectiveness.<locals>.<listcomp>r'csg|]\}}|�@r|�qSr	r	)r�r��m)rMr	r
r��scSs<t�g}x&t|d�D]}t|�}|�|�qW|d|�S)Nr)r5rtr�)r��numsrMZnumr	r	r
�zf_range�s
z7TestFrozenSet.test_hash_effectiveness.<locals>.zf_rangecss6x0tt|�d�D]}ttt�||��EdHqWdS)Nr)rtr2rir5�	itertools�combinations)r"rMr	r	r
�powerset�sz7TestFrozenSet.test_hash_effectiveness.<locals>.powerset�rcsh|]}|�@�qSr	r	)r��h)�maskr	r
�	<setcomp>�sz8TestFrozenSet.test_hash_effectiveness.<locals>.<setcomp>r�)	r+r�rtr�r5r.r2riZ
assertGreater)
rr�Z
hashvaluesZaddhashvalueZ	elemmasksrrrjrrHr	)rMr	r
�test_hash_effectiveness�s"$z%TestFrozenSet.test_hash_effectivenessN)rrrr5r!rDr�r�r�r�r�r�r�rr	r	r	r
r��s	

r�c@seZdZdS)�FrozenSetSubclassN)rrrr	r	r	r
r�src@s4eZdZeZeZdd�Zdd�Zdd�Z	dd�Z
d	S)
�TestFrozenSetSubclasscCs0|�td��}|�|�}|�t|�t|��dS)Nrh)r!rtrUrT)rr"rjr	r	r
r��s
z/TestFrozenSetSubclass.test_constructor_identitycCs$|j��}|�t|j�t|��dS)N)r"r�rUrT)rryr	r	r
r��s
zTestFrozenSetSubclass.test_copycCs"|��}|�|�}|�||�dS)N)r!r.)rr"rjr	r	r
�test_nested_empty_constructor�s
z3TestFrozenSetSubclass.test_nested_empty_constructorcCs�|j}t�}|�}|�|g�|d�|d�|�|g�|d�|d�|td��||��|t��||||�||�g}|�tttt|���t|��dS)Nr	rPr)r!r5rtr.r2r+rirT)rZ	FrozensetrZ�Fr�r	r	r
r�sz4TestFrozenSetSubclass.test_singleton_empty_frozensetN)rrrrr!r5rDr�r�rr�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�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1S)2�TestBasicOpscCs"|jdk	r|�t|j�|j�dS)N)rr.r+)rr	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	r
r�"sz:TestBasicOps.check_repr_against_values.<locals>.<listcomp>)	rr+r]�
startswith�endswith�split�sort�valuesr.)r�text�resultZsorted_repr_valuesr	r	r
�check_repr_against_valuess
z&TestBasicOps.check_repr_against_valuesc	CsfzJttjd�}|�t|j��|��ttjd�}|�|��t	|j��Wd|��t�
tj�XdS)Nr�rq)r�rr�r�rEr+r�r.r�rr�)rr�r	r	r
�
test_print&szTestBasicOps.test_printcCs|�t|j�|j�dS)N)r.r2r+�length)rr	r	r
�test_length1szTestBasicOps.test_lengthcCs|�|j|j�dS)N)r.r+)rr	r	r
�test_self_equality4szTestBasicOps.test_self_equalitycCs|�|j|j�dS)N)r.r+ry)rr	r	r
�test_equivalent_equality7sz%TestBasicOps.test_equivalent_equalitycCs|�|j��|j�dS)N)r.r+r�ry)rr	r	r
r�:szTestBasicOps.test_copycCs|j|jB}|�||j�dS)N)r+r.ry)rrr	r	r
�test_self_union=szTestBasicOps.test_self_unioncCs|jtB}|�||j�dS)N)r+�	empty_setr.ry)rrr	r	r
�test_empty_unionAs
zTestBasicOps.test_empty_unioncCst|jB}|�||j�dS)N)r#r+r.ry)rrr	r	r
�test_union_emptyEs
zTestBasicOps.test_union_emptycCs|j|j@}|�||j�dS)N)r+r.ry)rrr	r	r
�test_self_intersectionIsz#TestBasicOps.test_self_intersectioncCs|jt@}|�|t�dS)N)r+r#r.)rrr	r	r
�test_empty_intersectionMs
z$TestBasicOps.test_empty_intersectioncCst|j@}|�|t�dS)N)r#r+r.)rrr	r	r
�test_intersection_emptyQs
z$TestBasicOps.test_intersection_emptycCs"|j�|j�}|�||j�dS)N)r+r\r.)rrr	r	r
�test_self_isdisjointUsz!TestBasicOps.test_self_isdisjointcCs|j�t�}|�|d�dS)NT)r+r\r#r.)rrr	r	r
�test_empty_isdisjointYsz"TestBasicOps.test_empty_isdisjointcCst�|j�}|�|d�dS)NT)r#r\r+r.)rrr	r	r
�test_isdisjoint_empty]sz"TestBasicOps.test_isdisjoint_emptycCs|j|jA}|�|t�dS)N)r+r.r#)rrr	r	r
�test_self_symmetric_differenceasz+TestBasicOps.test_self_symmetric_differencecCs|jtA}|�||j�dS)N)r+r#r.)rrr	r	r
�test_empty_symmetric_differencees
z,TestBasicOps.test_empty_symmetric_differencecCs|j|j}|�|t�dS)N)r+r.r#)rrr	r	r
�test_self_differenceisz!TestBasicOps.test_self_differencecCs|jt}|�||j�dS)N)r+r#r.ry)rrr	r	r
�test_empty_differencems
z"TestBasicOps.test_empty_differencecCst|j}|�|t�dS)N)r#r+r.)rrr	r	r
�test_empty_difference_revqs
z&TestBasicOps.test_empty_difference_revcCsBx|jD]}|�||j�qWt|j�}|�|��t|j��dS)N)r+r6rr{r.�__length_hint__r2)r�vZsetiterr	r	r
�test_iterationus
zTestBasicOps.test_iterationcCsNxHttjd�D]6}t�|j|�}t�|�}|�|j|d|j|f�qWdS)Nrz%s != %s)rtrurvrwr+rxr.)rr�ror�r	r	r
rz{s


zTestBasicOps.test_picklingc	CsH|�t��t��d�WdQRX|�t��t��d�WdQRXdS)Nr�)r)r*r+r`r�)rr	r	r
�test_issue_37219�szTestBasicOps.test_issue_37219N)rrrrrrrr r!r�r"r$r%r&r'r(r)r*r+r,r-r.r/r0r3rzr4r	r	r	r
rs0rc@seZdZdd�ZdS)�TestBasicOpsEmptycCs4d|_g|_t|j�|_t|j�|_d|_d|_dS)Nz	empty setrzset())�caserr+ryrr)rr	r	r
r&�szTestBasicOpsEmpty.setUpN)rrrr&r	r	r	r
r5�sr5c@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsSingletoncCs6d|_dg|_t|j�|_t|j�|_d|_d|_dS)Nzunit set (number)rhrz{3})r6rr+ryrr)rr	r	r
r&�szTestBasicOpsSingleton.setUpcCs|�d|j�dS)Nrh)r6r+)rr	r	r
�test_in�szTestBasicOpsSingleton.test_incCs|�d|j�dS)Nr')r�r+)rr	r	r
�test_not_in�sz!TestBasicOpsSingleton.test_not_inN)rrrr&r8r9r	r	r	r
r7�sr7c@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsTuplecCs6d|_dg|_t|j�|_t|j�|_d|_d|_dS)Nzunit set (tuple))r�zerorz
{(0, 'zero')})r6rr+ryrr)rr	r	r
r&�szTestBasicOpsTuple.setUpcCs|�d|j�dS)N)rr;)r6r+)rr	r	r
r8�szTestBasicOpsTuple.test_incCs|�d|j�dS)N�	)r�r+)rr	r	r
r9�szTestBasicOpsTuple.test_not_inN)rrrr&r8r9r	r	r	r
r:�sr:c@seZdZdd�ZdS)�TestBasicOpsTriplecCs<d|_ddtjg|_t|j�|_t|j�|_d|_d|_dS)Nz
triple setrr;rh)r6�operatorr�rr+ryrr)rr	r	r
r&�szTestBasicOpsTriple.setUpN)rrrr&r	r	r	r
r=�sr=c@seZdZdd�Zdd�ZdS)�TestBasicOpsStringcCs4d|_dddg|_t|j�|_t|j�|_d|_dS)Nz
string setr(rRr7rh)r6rr+ryr)rr	r	r
r&�s
zTestBasicOpsString.setUpcCs|��dS)N)r)rr	r	r
r�szTestBasicOpsString.test_reprN)rrrr&rr	r	r	r
r?�sr?c@seZdZdd�Zdd�ZdS)�TestBasicOpsBytescCs4d|_dddg|_t|j�|_t|j�|_d|_dS)Nz	bytes set�a�b�crh)r6rr+ryr)rr	r	r
r&�s
zTestBasicOpsBytes.setUpcCs|��dS)N)r)rr	r	r
r�szTestBasicOpsBytes.test_reprN)rrrr&rr	r	r	r
r@�sr@c@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsMixedStringBytescCsVt��|_|j��t�dt�d|_ddddg|_t	|j�|_	t	|j�|_
d|_dS)N�ignorezstring and bytes setr(rRrArBr�)rZcheck_warnings�_warning_filters�	__enter__�warnings�simplefilter�BytesWarningr6rr+ryr)rr	r	r
r&�s

z"TestBasicOpsMixedStringBytes.setUpcCs|j�ddd�dS)N)rF�__exit__)rr	r	r
�tearDown�sz%TestBasicOpsMixedStringBytes.tearDowncCs|��dS)N)r)rr	r	r
r�sz&TestBasicOpsMixedStringBytes.test_reprN)rrrr&rLrr	r	r	r
rD�s
rDccst�dVdS)NT)r*r	r	r	r
�baditer�srMccs
dVdS)NTr	r	r	r	r
�gooditer�srNc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�TestExceptionPropagationz?SF 628246:  Set constructor should not trap iterator TypeErrorscCs|�ttt��dS)N)r)r*r+rM)rr	r	r
�test_instanceWithException�sz3TestExceptionPropagation.test_instanceWithExceptioncCsHtdddg�td�tdddd��ttd��td�tt��dS)Nrr'rh)rr'rh)ZoneZtwoZthreer?)r+rtrN)rr	r	r
�test_instancesWithoutException�sz7TestExceptionPropagation.test_instancesWithoutExceptioncCsPtdddg�}yx|D]}|�dg�qWWntk
r@YnX|�d�dS)Nrr'rhr�z0no exception when changing size during iteration)r+r�rrL)rr"rMr	r	r
�test_changingSizeWhileIteratings
z8TestExceptionPropagation.test_changingSizeWhileIteratingN)rrrrrPrQrRr	r	r	r
rO�s	rOc@seZdZdd�ZdS)�
TestSetOfSetscCs\tdg�}t|g�}|��}|�t|�t�|�|�|�|�|�|t��|�|�dS)Nr)r5r+r�r.rCr�r�r�)r�innerZouterZelementr	r	r
�test_constructors



zTestSetOfSets.test_constructorN)rrrrUr	r	r	r
rSsrSc@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��)r+)rr	r	r
r&szTestBinaryOps.setUpcCs|�|jtdddd���dS)Nrrh�)r'r�rW)r.r+)rr	r	r
�test_eq"szTestBinaryOps.test_eqcCs$|jtdg�B}|�|td��dS)Nr')r'r�rW)r+r.)rrr	r	r
�test_union_subset%szTestBinaryOps.test_union_subsetcCs2|jtddddg�B}|�|tddddg��dS)Nr'r�rW�)r+r.)rrr	r	r
�test_union_superset)sz!TestBinaryOps.test_union_supersetc	Cs2|jtdddg�B}|�|tdddddg��dS)Nrhr�rXr'rW)r+r.)rrr	r	r
�test_union_overlap-sz TestBinaryOps.test_union_overlapcCs,|jtdg�B}|�|tddddg��dS)Nr[r'r�rW)r+r.)rrr	r	r
�test_union_non_overlap1sz$TestBinaryOps.test_union_non_overlapcCs"|jtd�@}|�|td��dS)N)r'r�)r+r.)rrr	r	r
�test_intersection_subset5sz&TestBinaryOps.test_intersection_subsetcCs0|jtddddg�@}|�|tdddg��dS)Nr'r�rWr[)r+r.)rrr	r	r
�test_intersection_superset9sz(TestBinaryOps.test_intersection_supersetcCs*|jtdddg�@}|�|tdg��dS)Nrhr�rX)r+r.)rrr	r	r
�test_intersection_overlap=sz'TestBinaryOps.test_intersection_overlapcCs |jtdg�@}|�|t�dS)Nr[)r+r.r#)rrr	r	r
�test_intersection_non_overlapAsz+TestBinaryOps.test_intersection_non_overlapcCs |j�td��}|�|d�dS)N)r'r�F)r+r\r.)rrr	r	r
�test_isdisjoint_subsetEsz$TestBinaryOps.test_isdisjoint_subsetcCs(|j�tddddg��}|�|d�dS)Nr'r�rWr[F)r+r\r.)rrr	r	r
�test_isdisjoint_supersetIsz&TestBinaryOps.test_isdisjoint_supersetcCs&|j�tdddg��}|�|d�dS)Nrhr�rXF)r+r\r.)rrr	r	r
�test_isdisjoint_overlapMsz%TestBinaryOps.test_isdisjoint_overlapcCs"|j�tdg��}|�|d�dS)Nr[T)r+r\r.)rrr	r	r
�test_isdisjoint_non_overlapQsz)TestBinaryOps.test_isdisjoint_non_overlapcCs$|jtd�A}|�|tdg��dS)N)r'r�rW)r+r.)rrr	r	r
�test_sym_difference_subsetUsz(TestBinaryOps.test_sym_difference_subsetcCs$|jtd�A}|�|tdg��dS)N)r'r�rWr[r[)r+r.)rrr	r	r
�test_sym_difference_supersetYsz*TestBinaryOps.test_sym_difference_supersetcCs*|jtd�A}|�|tddddg��dS)N)rhr�rXr'rhrXrW)r+r.)rrr	r	r
�test_sym_difference_overlap]sz)TestBinaryOps.test_sym_difference_overlapcCs,|jtdg�A}|�|tddddg��dS)Nr[r'r�rW)r+r.)rrr	r	r
�test_sym_difference_non_overlapasz-TestBinaryOps.test_sym_difference_non_overlapN)rrrr&rYrZr\r]r^r_r`rarbrcrdrerfrgrhrirjr	r	r	r
rVs$rVc@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)N)r'r�rW)r+)rr	r	r
r&hszTestUpdateOps.setUpcCs*|jtdg�O_|�|jtd��dS)Nr')r'r�rW)r+r.)rr	r	r
rZkszTestUpdateOps.test_union_subsetcCs8|jtddddg�O_|�|jtddddg��dS)Nr'r�rWr[)r+r.)rr	r	r
r\osz!TestUpdateOps.test_union_supersetc	Cs8|jtdddg�O_|�|jtdddddg��dS)Nrhr�rXr'rW)r+r.)rr	r	r
r]ssz TestUpdateOps.test_union_overlapcCs2|jtdg�O_|�|jtddddg��dS)Nr[r'r�rW)r+r.)rr	r	r
r^wsz$TestUpdateOps.test_union_non_overlapc	Cs6|j�tdddg��|�|jtdddddg��dS)Nrhr�rXr'rW)r+r�r.)rr	r	r
�test_union_method_call{sz$TestUpdateOps.test_union_method_callcCs(|jtd�M_|�|jtd��dS)N)r'r�)r+r.)rr	r	r
r_sz&TestUpdateOps.test_intersection_subsetcCs6|jtddddg�M_|�|jtdddg��dS)Nr'r�rWr[)r+r.)rr	r	r
r`�sz(TestUpdateOps.test_intersection_supersetcCs0|jtdddg�M_|�|jtdg��dS)Nrhr�rX)r+r.)rr	r	r
ra�sz'TestUpdateOps.test_intersection_overlapcCs&|jtdg�M_|�|jt�dS)Nr[)r+r.r#)rr	r	r
rb�sz+TestUpdateOps.test_intersection_non_overlapcCs.|j�tdddg��|�|jtdg��dS)Nrhr�rX)r+r�r.)rr	r	r
�test_intersection_method_call�sz+TestUpdateOps.test_intersection_method_callcCs*|jtd�N_|�|jtdg��dS)N)r'r�rW)r+r.)rr	r	r
rg�sz(TestUpdateOps.test_sym_difference_subsetcCs*|jtd�N_|�|jtdg��dS)N)r'r�rWr[r[)r+r.)rr	r	r
rh�sz*TestUpdateOps.test_sym_difference_supersetcCs0|jtd�N_|�|jtddddg��dS)N)rhr�rXr'rhrXrW)r+r.)rr	r	r
ri�sz)TestUpdateOps.test_sym_difference_overlapcCs2|jtdg�N_|�|jtddddg��dS)Nr[r'r�rW)r+r.)rr	r	r
rj�sz-TestUpdateOps.test_sym_difference_non_overlapcCs4|j�tdddg��|�|jtddddg��dS)Nrhr�rXr'rW)r+r�r.)rr	r	r
�test_sym_difference_method_call�sz-TestUpdateOps.test_sym_difference_method_callcCs*|jtd�8_|�|jtdg��dS)N)r'r�rW)r+r.)rr	r	r
�test_difference_subset�sz$TestUpdateOps.test_difference_subsetcCs(|jtd�8_|�|jtg��dS)N)r'r�rWr[)r+r.)rr	r	r
�test_difference_superset�sz&TestUpdateOps.test_difference_supersetcCs,|jtd�8_|�|jtddg��dS)N)rhr�rXr'rW)r+r.)rr	r	r
�test_difference_overlap�sz%TestUpdateOps.test_difference_overlapcCs0|jtdg�8_|�|jtdddg��dS)Nr[r'r�rW)r+r.)rr	r	r
�test_difference_non_overlap�sz)TestUpdateOps.test_difference_non_overlapcCs0|j�tdddg��|�|jtddg��dS)Nrhr�rXr'rW)r+r�r.)rr	r	r
�test_difference_method_call�sz)TestUpdateOps.test_difference_method_callN)rrrr&rZr\r]r^rlr_r`rarbrmrgrhrirjrnrorprqrrrsr	r	r	r
rkgs*rkc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�
TestMutatecCsdddg|_t|j�|_dS)Nr(rRr7)rr+)rr	r	r
r&�szTestMutate.setUpcCs"|j�d�|�|jtd��dS)Nr7r?)r+r�r.)rr	r	r
�test_add_present�szTestMutate.test_add_presentcCs"|j�d�|�|jtd��dS)Nr%r;)r+r�r.)rr	r	r
�test_add_absent�szTestMutate.test_add_absentcCsNt�}d}x0|jD]&}|�|�|d7}|�t|�|�qW|�||j�dS)Nrr)r+rr�r.r2)rZtmp�expected_lenr2r	r	r
�test_add_until_full�s
zTestMutate.test_add_until_fullcCs"|j�d�|�|jtd��dS)NrRZac)r+r�r.)rr	r	r
�test_remove_present�szTestMutate.test_remove_presentcCs4y|j�d�|�d�Wntk
r.YnXdS)Nr%z7Removing missing element should have raised LookupError)r+r�rL�LookupError)rr	r	r
�test_remove_absent�s
zTestMutate.test_remove_absentcCsDt|j�}x4|jD]*}|j�|�|d8}|�t|j�|�qWdS)Nr)r2r+rr�r.)rrwr2r	r	r
�test_remove_until_empty�s

z"TestMutate.test_remove_until_emptycCs"|j�d�|�|jtd��dS)Nr7r[)r+r�r.)rr	r	r
�test_discard_present�szTestMutate.test_discard_presentcCs"|j�d�|�|jtd��dS)Nr%r?)r+r�r.)rr	r	r
�test_discard_absent�szTestMutate.test_discard_absentcCs |j��|�t|j�d�dS)Nr)r+r�r.r2)rr	r	r
r��s
zTestMutate.test_clearcCsTi}x|jrd||j��<qW|�t|�t|j��x|jD]}|�||�q<WdS)N)r+r�r.r2rr6)rZpoppedr2r	r	r
r��szTestMutate.test_popcCs$|j�d�|�|jt|j��dS)Nr	)r+r�r.r)rr	r	r
�test_update_empty_tuple�sz"TestMutate.test_update_empty_tuplecCs$|j�d�|�|jt|j��dS)N)r()r+r�r.r)rr	r	r
�test_update_unit_tuple_overlap�sz)TestMutate.test_update_unit_tuple_overlapcCs*|j�d�|�|jt|jdg��dS)N)r(rVrV)r+r�r.r)rr	r	r
�"test_update_unit_tuple_non_overlapsz-TestMutate.test_update_unit_tuple_non_overlapN)rrrr&rurvrxryr{r|r}r~r�r�rr�r�r	r	r	r
rt�s	rtc@s0eZdZddd�Zdddddd	d
�Zdd�Zd
S)�TestSubsetsrmrn)z<=z>=z==z!=�>�<z>=z<=)z==z!=r�r�z<=z>=cCs�|j}|j}x�dD]�}||jk}td|dt��}|�||�|tjkrnt|tj|�}||�}|�||�tj	|}td|dt��}|�||�|tjkrt|tj|�}||�}|�||�qWdS)N)z!=z==r�z<=r�z>=rJ�y)
�left�right�cases�eval�localsr.r��case2method�getattr�reverse)rrJr�r6r0r�methodZrcaser	r	r
�
test_issubsets"




zTestSubsets.test_issubsetN)rrrr�r�r�r	r	r	r
r�sr�c@s eZdZe�Ze�ZdZdZdS)�TestSubsetEqualEmptyz
both empty)z==z<=z>=N)rrrr+r�r�r�r�r	r	r	r
r�-sr�c@s,eZdZeddg�Zeddg�ZdZdZdS)�TestSubsetEqualNonEmptyrr'z
equal pair)z==z<=z>=N)rrrr+r�r�r�r�r	r	r	r
r�5sr�c@s&eZdZe�Zeddg�ZdZdZdS)�TestSubsetEmptyNonEmptyrr'zone empty, one non-empty)z!=r�z<=N)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)z!=r�z<=N)rrrr+r�r�r�r�r	r	r	r
r�Es
r�c@s(eZdZedg�Zedg�ZdZdZdS)�TestSubsetNonOverlaprr'zneither empty, neither containsz!=N)rrrr+r�r�r�r�r	r	r	r
r�Ms

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�dS)NFT)r.rr+)rr	r	r
�
test_eq_neWsz"TestOnlySetsInBinaryOps.test_eq_necs���t�fdd����t�fdd����t�fdd����t�fdd����t�fdd����t�fdd����t�fdd����t�fd	d��dS)
Ncs�j�jkS)N)r+rr	)rr	r
�<lambda>_�z:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>cs�j�jkS)N)r+rr	)rr	r
r�`r�cs�j�jkS)N)r+rr	)rr	r
r�ar�cs�j�jkS)N)r+rr	)rr	r
r�br�cs�j�jkS)N)rr+r	)rr	r
r�dr�cs�j�jkS)N)rr+r	)rr	r
r�er�cs�j�jkS)N)rr+r	)rr	r
r�fr�cs�j�jkS)N)rr+r	)rr	r
r�gr�)r)r*)rr	)rr
�test_ge_gt_le_lt^sz(TestOnlySetsInBinaryOps.test_ge_gt_le_ltcCs8y|j|jO_Wntk
r(YnX|�d�dS)Nzexpected TypeError)r+rr*rL)rr	r	r
�test_update_operatoris
z,TestOnlySetsInBinaryOps.test_update_operatorcCs.|jr|j�|j�n|�t|jj|j�dS)N)�otherIsIterabler+r�rr)r*)rr	r	r
r�qsz#TestOnlySetsInBinaryOps.test_updatecsV��t�fdd����t�fdd���jr>�j��j�n��t�jj�j�dS)Ncs�j�jBS)N)r+rr	)rr	r
r�xr�z4TestOnlySetsInBinaryOps.test_union.<locals>.<lambda>cs�j�jBS)N)rr+r	)rr	r
r�yr�)r)r*r�r+rBr)rr	)rr
rKws
z"TestOnlySetsInBinaryOps.test_unioncCs8y|j|jM_Wntk
r(YnX|�d�dS)Nzexpected TypeError)r+rr*rL)rr	r	r
�!test_intersection_update_operators
z9TestOnlySetsInBinaryOps.test_intersection_update_operatorcCs.|jr|j�|j�n|�t|jj|j�dS)N)r�r+r�rr)r*)rr	r	r
r��s
z0TestOnlySetsInBinaryOps.test_intersection_updatecsV��t�fdd����t�fdd���jr>�j��j�n��t�jj�j�dS)Ncs�j�j@S)N)r+rr	)rr	r
r��r�z;TestOnlySetsInBinaryOps.test_intersection.<locals>.<lambda>cs�j�j@S)N)rr+r	)rr	r
r��r�)r)r*r�r+rSr)rr	)rr
rW�s
z)TestOnlySetsInBinaryOps.test_intersectioncCs8y|j|jN_Wntk
r(YnX|�d�dS)Nzexpected TypeError)r+rr*rL)rr	r	r
�#test_sym_difference_update_operator�s
z;TestOnlySetsInBinaryOps.test_sym_difference_update_operatorcCs.|jr|j�|j�n|�t|jj|j�dS)N)r�r+r�rr)r*)rr	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�jAS)N)r+rr	)rr	r
r��r�z=TestOnlySetsInBinaryOps.test_sym_difference.<locals>.<lambda>cs�j�jAS)N)rr+r	)rr	r
r��r�)r)r*r�r+rdr)rr	)rr
�test_sym_difference�s
z+TestOnlySetsInBinaryOps.test_sym_differencecCs8y|j|j8_Wntk
r(YnX|�d�dS)Nzexpected TypeError)r+rr*rL)rr	r	r
�test_difference_update_operator�s
z7TestOnlySetsInBinaryOps.test_difference_update_operatorcCs.|jr|j�|j�n|�t|jj|j�dS)N)r�r+r�rr)r*)rr	r	r
r��s
z.TestOnlySetsInBinaryOps.test_difference_updatecsV��t�fdd����t�fdd���jr>�j��j�n��t�jj�j�dS)Ncs�j�jS)N)r+rr	)rr	r
r��r�z9TestOnlySetsInBinaryOps.test_difference.<locals>.<lambda>cs�j�jS)N)rr+r	)rr	r
r��r�)r)r*r�r+r`r)rr	)rr
ra�s
z'TestOnlySetsInBinaryOps.test_differenceN)rrrr�r�r�r�rKr�r�rWr�r�r�r�r�rar	r	r	r
r�Usr�c@seZdZdd�ZdS)�TestOnlySetsNumericcCstd�|_d|_d|_dS)N)rr'rh�F)r+rr�)rr	r	r
r&�s
zTestOnlySetsNumeric.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsDictcCs td�|_ddd�|_d|_dS)N)rr'rhr'r�)rrhT)r+rr�)rr	r	r
r&�s
zTestOnlySetsDict.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsOperatorcCstd�|_tj|_d|_dS)N)rr'rhF)r+r>r�rr�)rr	r	r
r&�s
zTestOnlySetsOperator.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsTuplecCstd�|_d|_d|_dS)N)rr'rh)r'r�rWT)r+rr�)rr	r	r
r&�s
zTestOnlySetsTuple.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsStringcCstd�|_d|_d|_dS)N)rr'rhr?T)r+rr�)rr	r	r
r&�s
zTestOnlySetsString.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsGeneratorcCs$dd�}td�|_|�|_d|_dS)Ncss xtddd�D]
}|VqWdS)Nrrsr')rt)rMr	r	r
�gen�sz(TestOnlySetsGenerator.setUp.<locals>.gen)rr'rhT)r+rr�)rr�r	r	r
r&�s
zTestOnlySetsGenerator.setUpN)rrrr&r	r	r	r
r��sr�c@seZdZdd�Zdd�ZdS)�TestCopyingcCsh|j��}t|td�}t|jtd�}|�t|�t|��x*tt|��D]}|�||||k�qFWdS)N)r�)r+r�r-rr.r2rtr])rry�dup_list�set_listrMr	r	r
r��s
zTestCopying.test_copycCsht�|j�}t|td�}t|jtd�}|�t|�t|��x(tt|��D]}|�||||�qHWdS)N)r�)r�r�r+r-rr.r2rt)rryr�r�rMr	r	r
�test_deep_copyszTestCopying.test_deep_copyN)rrrr�r�r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestCopyingEmptycCst�|_dS)N)r+)rr	r	r
r&szTestCopyingEmpty.setUpN)rrrr&r	r	r	r
r�sr�c@seZdZdd�ZdS)�TestCopyingSingletoncCstdg�|_dS)NZhello)r+)rr	r	r
r&szTestCopyingSingleton.setUpN)rrrr&r	r	r	r
r�sr�c@seZdZdd�ZdS)�TestCopyingTriplecCstdddg�|_dS)Nr;r)r+)rr	r	r
r&szTestCopyingTriple.setUpN)rrrr&r	r	r	r
r�sr�c@seZdZdd�ZdS)�TestCopyingTuplecCstdg�|_dS)N)rr')r+)rr	r	r
r&$szTestCopyingTuple.setUpN)rrrr&r	r	r	r
r�#sr�c@seZdZdd�ZdS)�TestCopyingNestedcCstdg�|_dS)N))rr')rhr�)r+)rr	r	r
r&*szTestCopyingNested.setUpN)rrrr&r	r	r	r
r�)sr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestIdentitiescCstd�|_td�|_dS)NZabracadabraZalacazam)r+r(rR)rr	r	r
r&0s
zTestIdentities.setUpcCs�|j|j}}|�|||k�|�|||k�|�||@|k�|�||@|k�|�||B|k�|�||B|k�|�||A||Bk�dS)N)r(rRr])rr(rRr	r	r
�test_binopsVsSubsets4sz#TestIdentities.test_binopsVsSubsetscCsj|j|j}}|�||@||@�|�||B||B�|�||A||A�||krf|�||||�dS)N)r(rRr.rU)rr(rRr	r	r
�test_commutativity>sz!TestIdentities.test_commutativitycCs�|j|j}}|�||||@B||B||B�|�||@||AB||B�|�|||B||B�|�|||B||B�|�||||@B|�|�||||@B|�|�||||B||A�dS)N)r(rRr.)rr(rRr	r	r
�test_summationsFs$zTestIdentities.test_summationscCsZ|j|jt�}}}|�|||@|�|�|||@|�|�||@||A@|�dS)N)r(rRr+r.)rr(rRr;r	r	r
�test_exclusionQszTestIdentities.test_exclusionN)rrrr&r�r�r�r�r	r	r	r
r�/s

r�ccsx|D]
}|VqWdS)zRegular generatorNr	)�seqnrMr	r	r
�RZs
r�c@s eZdZdZdd�Zdd�ZdS)�GzSequence using __getitem__cCs
||_dS)N)r�)rr�r	r	r
rasz
G.__init__cCs
|j|S)N)r�)rrMr	r	r
�__getitem__csz
G.__getitem__N)rrrrrr�r	r	r	r
r�_sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�Iz Sequence using iterator protocolcCs||_d|_dS)Nr)r�rM)rr�r	r	r
rhsz
I.__init__cCs|S)Nr	)rr	r	r
�__iter__ksz
I.__iter__cCs2|jt|j�krt�|j|j}|jd7_|S)Nr)rMr2r�r)rr2r	r	r
�__next__ms
z
I.__next__N)rrrrrr�r�r	r	r	r
r�fsr�c@s eZdZdZdd�Zdd�ZdS)�Igz9Sequence using iterator protocol defined with a generatorcCs||_d|_dS)Nr)r�rM)rr�r	r	r
ruszIg.__init__ccsx|jD]
}|VqWdS)N)r�)r�valr	r	r
r�xszIg.__iter__N)rrrrrr�r	r	r	r
r�ssr�c@s eZdZdZdd�Zdd�ZdS)�Xz Missing __getitem__ and __iter__cCs||_d|_dS)Nr)r�rM)rr�r	r	r
r~sz
X.__init__cCs2|jt|j�krt�|j|j}|jd7_|S)Nr)rMr2r�r)rr2r	r	r
r��s
z
X.__next__N)rrrrrr�r	r	r	r
r�|sr�c@s eZdZdZdd�Zdd�ZdS)�NzIterator missing __next__()cCs||_d|_dS)Nr)r�rM)rr�r	r	r
r�sz
N.__init__cCs|S)Nr	)rr	r	r
r��sz
N.__iter__N)rrrrrr�r	r	r	r
r��sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�EzTest propagation of exceptionscCs||_d|_dS)Nr)r�rM)rr�r	r	r
r�sz
E.__init__cCs|S)Nr	)rr	r	r
r��sz
E.__iter__cCsdddS)Nrhrr	)rr	r	r
r��sz
E.__next__N)rrrrrr�r�r	r	r	r
r��sr�c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�SzTest immediate stopcCsdS)Nr	)rr�r	r	r
r�sz
S.__init__cCs|S)Nr	)rr	r	r
r��sz
S.__iter__cCst�dS)N)r)rr	r	r
r��sz
S.__next__N)rrrrrr�r�r	r	r	r
r��sr�)�chaincCsttdd�ttt|�����S)z Test multiple tiers of iteratorscSs|S)Nr	)rJr	r	r
r��r�zL.<locals>.<lambda>)r�rir�r�r�)r�r	r	r
�L�sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestVariousIteratorArgsc
Cs�x�ttfD]�}x�ddtd�dtddd�fD]|}x@ttttttfD],}|�	t
|||��td�t
||�td��q@W|�t
|t|��|�t
|t|��|�t|t|��q*Wq
WdS)	N�123rPi�)�dog333333�?i�i�rX)r�)r+r5rtr�r�r�r�r�r�r.r-rr)r*r�r��ZeroDivisionErrorr�)rZconsr"�gr	r	r
rU�s ,z(TestVariousIteratorArgs.test_constructorc
Cs�td�}x�ddtd�dtddd�d	fD]�}x�|j|j|j|j|jfD]�}x^ttt	t
tfD]L}||�}|||��}t|t
�r�|�||�qX|�t|td
�t|td
��qXW|�t|t|��|�t|t|��|�t|t|��qDWq&WdS)NZnovemberr�rPi�)r�g333333�?i�i�rX�december)r�)r+rtrBrSr`rdr\r�r�r�r�r��
isinstance�boolr.r-rr)r*r�r�r�r�)rr"r�Zmethr�r0r/r	r	r
�test_inline_methods�s"
 z+TestVariousIteratorArgs.test_inline_methodsc
Cs�x�ddtd�dtddd�dfD]�}x�d	D]�}xlttttttfD]X}td
�}|��}t	||�t
||���t	||�||��|�t|t
d�t|t
d��q>W|�tt	td
�|�t|��|�tt	td
�|�t|��|�tt	td
�|�t|��q(WqWdS)Nr�rPi�)r�g333333�?i�i�rXr�)r�r�r�r�Zjanuary)r�)rtr�r�r�r�r�r�r+r�r�rFr.r-rr)r*r�r�r�r�)rr�Zmethnamer�r"rjr	r	r
�test_inplace_methods�s"
 z,TestVariousIteratorArgs.test_inplace_methodsN)rrrrUr�r�r	r	r	r
r��s	r�c@seZdZdd�Zdd�ZdS)�bad_eqcCstrt��t�||kS)N)�be_bad�set2r�r�)rrr	r	r
r�sz
bad_eq.__eq__cCsdS)Nrr	)rr	r	r
r�szbad_eq.__hash__N)rrrrrr	r	r	r
r��sr�c@seZdZdd�Zdd�ZdS)�bad_dict_clearcCstrt��||kS)N)r��dict2r�)rrr	r	r
r�szbad_dict_clear.__eq__cCsdS)Nrr	)rr	r	r
r�szbad_dict_clear.__hash__N)rrrrrr	r	r	r
r��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�
TestWeirdBugscCsZdat�h}dd�td�D�ada|�t|jt�dat�h}t�diada|�	t�dS)NFcSsh|]
}t��qSr	)r�)r�rMr	r	r
r
�sz4TestWeirdBugs.test_8420_set_merge.<locals>.<setcomp>�KT)
r�r�rtr�r)r�r�r�r�r�)rZset1r	r	r
�test_8420_set_merge�s
z!TestWeirdBugs.test_8420_set_mergecCsXttd��}|��|�td��t|�}|��ttd��}|�td��t|�dS)Nr�)r+rtr�r�r{rF)rr"�sir(r	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�S)Nr)r�)rr	r	r
r�sz7TestWeirdBugs.test_merge_and_mutate.<locals>.X.__hash__cs���dS)NF)r�)r�o)rr	r
rsz5TestWeirdBugs.test_merge_and_mutate.<locals>.X.__eq__N)rrrrrr	)rr	r
r��sr�csh|]
}���qSr	r	)r�rM)r�r	r
r
sz6TestWeirdBugs.test_merge_and_mutate.<locals>.<setcomp>rsr)r+rtr�)rr"r	)r�rr
�test_merge_and_mutate�s
z#TestWeirdBugs.test_merge_and_mutateN)rrrr�r�r�r	r	r	r
r��sr�ccs^t|�}y4tt|�g�}x t|�D]}|V||BVq"WWntk
rXt�VYnXdS)z-Generates all subsets of a set or sequence U.N)r{r5r~rr)�UrJr�r	r	r
rsrcs0dd�t|�D��t�fdd�tt|��D��S)z!Graph of n-dimensional hypercube.cSsg|]}t|g��qSr	)r5)r�rJr	r	r
r�szcube.<locals>.<listcomp>cs&g|]��t�fdd��D��f�qS)csg|]}�|A�qSr	r	)r�r")rJr	r
r�sz#cube.<locals>.<listcomp>.<listcomp>)r5)r�)�
singletons)rJr
r�s)rtr#r)r�r	)r�r
�cubesr�cspi}xf|D]^�xX|�D]L���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�#szlinegraph.<locals>.<listcomp>cs g|]}|�krt�|g��qSr	)r5)r�rV)rJr�r	r
r�$s)r5)r�r�Znx�nyr	)rJr�r
�	linegraphs
 r�c
Cs�t�}x�|��D]�\}}x�|D]�}x�||D]�}||kr:q,|||kr\|�t|||g��q,x�||D]z}||krtqf|||kr�|�t||||g��qfxF||D]:}||ks�||kr�q�|||kr�|�t|||||g��q�WqfWq,WqWqW|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&
,r�c@seZdZdd�Zdd�ZdS)�
TestGraphscCs�td�}t|�}|�t|�d�x |��D]}|�t|�d�q*Wtdd�|��D��}|�||�t|�}|�t|�d�x|D]}|�t|�d�q�WdS)Nrhr[css|]}|D]
}|Vq
qdS)Nr	)r�r�r2r	r	r
r�Ksz'TestGraphs.test_cube.<locals>.<genexpr>rWr�)r�r+r.r2rr�)rr�Z	vertices1�edgeZ	vertices2Z	cubefaces�facer	r	r
�	test_cubeDs
zTestGraphs.test_cubecCstd�}t|�}|�t|�d�t|�}x |��D]}|�t|�d�q2Wtdd�|��D��}|�||�t|�}t�t	�}x |D]}|t|�d7<q�W|�|dd�|�|dd�x:|D]2}	|	}
|�t|
�d	�x|
D]}|�
||�q�Wq�WdS)
Nrh�r�css|]}|D]
}|Vq
qdS)Nr	)r�r�r�r	r	r
r�`sz0TestGraphs.test_cuboctahedron.<locals>.<genexpr>rr[rWr')r�r�r.r2r+rr�r|�defaultdictrr6)rr�Z
cuboctahedronZverticesr�Z
otherverticesZ	cubofacesZ	facesizesr�Zvertexr�Zcubevertr	r	r
�test_cuboctahedronSs&



zTestGraphs.test_cuboctahedronN)rrrr�r�r	r	r	r
r�Bsr��__main__)[r�Ztestrr�r�r>r�ruZrandomrrrHr|Zcollections.abcr�	Exceptionrrr
rrrrZTestCaser�r+r�r�r�r�r�r5rr
r#rr5r7r:r=r?r@rDrMrNrOrSrVrkrtr�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�r�r�r�r�r�rr�r�r�r�r�mainr	r	r	r
�<module>s�JRu


IVJ&t+
	
	)	*1