403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.230
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_set.cpython-36.opt-2.pyc
3

�
�^��@s�ddlZddlmZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlZddlZddl
ZddlZddlZGdd�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�Z0Gd:d;�d;ej�Z1Gd<d=�d=ej�Z2Gd>d?�d?�Z3Gd@dA�dAe3ej�Z4GdBdC�dCe3ej�Z5GdDdE�dEe3ej�Z6GdFdG�dGe3ej�Z7GdHdI�dIe3ej�Z8GdJdK�dK�Z9GdLdM�dMe9ej�Z:GdNdO�dOe9ej�Z;GdPdQ�dQe9ej�Z<GdRdS�dSe9ej�Z=GdTdU�dUe9ej�Z>GdVdW�dWe9ej�Z?GdXdY�dY�Z@GdZd[�d[e@ej�ZAGd\d]�d]e@ej�ZBGd^d_�d_e@ej�ZCGd`da�dae@ej�ZDGdbdc�dce@ej�ZEGddde�deej�ZFdfdg�ZGGdhdi�di�ZHGdjdk�dk�ZIGdldm�dm�ZJGdndo�do�ZKGdpdq�dq�ZLGdrds�ds�ZMGdtdu�du�ZNddvlmOZOdwdx�ZPGdydz�dzej�ZQGd{d|�d|�ZRGd}d~�d~�ZSGdd��d�ej�ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXGd�d��d�ej�ZYeZd�k�r�ej[�dS)��N)�support)�	randrange�shufflec@seZdZdS)�PassThruN)�__name__�
__module__�__qualname__�r	r	�-/opt/alt/python36/lib64/python3.6/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@seZdZdd�ZdS)�ReprWrappercCs
t|j�S)N)�repr�value)rr	r	r
�__repr__szReprWrapper.__repr__N)rrrrr	r	r	r
rsrc@seZdZdd�Zdd�ZdS)�HashCountingIntcGs
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)rrrrrr	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|_|j|�|_tj|�|_dS)NZ
simsalabimZ
madagascarZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)�word�	otherword�letters�thetype�s�dict�fromkeys�d)rrr	r	r
�setUp,s

zTestJointOps.setUpcCs*|jt|jgd�|jtt�jdd�dS)N�r)�a)�assertRaises�	TypeErrorr �setr)rr	r	r
�test_new_or_init3szTestJointOps.test_new_or_initcCsHt|j�}t|j�}|j||�|jt|jt��|jt|jgg�dS)N)	�sortedr!r$�assertEqualr(rr rr))r�actual�expectedr	r	r
�test_uniquification7s


z TestJointOps.test_uniquificationcCs|jt|j�t|j��dS)N)r-�lenr!r$)rr	r	r
�test_len>szTestJointOps.test_lencCsfx&|jD]}|j||jk||jk�qW|jt|jjgg�|jt|j�g�}|j	|j|j�|�dS)N)
rr-r!r$r(r)�__contains__r �	frozenset�assertIn)r�cr!r	r	r
�
test_containsAs
zTestJointOps.test_containscCs�|jj|j�}x.|jD]$}|j||k||jkp6||jk�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	��|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!�unionrrr-r$r r�type�basetyper(rrr)r*r4r"r#�str�list�tuple)r�ur6�C�xr	r	r
�
test_unionHs$    *zTestJointOps.test_unioncCsr|jj|j�}|j|jt|j�B|�|j|jt|j�B|�y|j|jBWntk
rbYnX|jd�dS)Nz(s|t did not screen-out general iterables)r!rArr-r*r4r)�fail)r�ir	r	r
�test_or[szTestJointOps.test_orcCs�|jj|j�}x.|jD]$}|j||k||jko6||jk�qW|j|j|j|j��|jt|�|j	�|j
t|jjt��x�t
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�k�rr|jt|�t|��n|jt|�t|��dS)Nr8r9�ccr;�r=�bcr?ZcbcfZbag�b)r!�intersectionrrr-r$r rrBrCr(rrr*r4r"r#rDrErF�id�assertNotEqual)rrLr6rHr!�zr	r	r
�test_intersectionfs"$    *
zTestJointOps.test_intersectionc	Cs�dd�}x~dD]v}|j|�}xfdD]^}xXtttjtttfD]B}||�}|j|�}|||�}|j	||�|j
|d
kpx|dk�q:Wq"WqWdS)NcSst|�j|�S)N)r*rR)�s1�s2r	r	r
�f{sz'TestJointOps.test_isdisjoint.<locals>.frOr'�abr>�ababacr9rNr;r=r?TF)
rOr'rZr>r[r9rNr;r=r?)
rOr'rZr>r[r9rNr;r=r?)r r*r4r"r#rDrErF�
isdisjointr-�
assertTrue)	rrYZlargrWZrargrHrXr.r/r	r	r
�test_isdisjointzs




zTestJointOps.test_isdisjointcCsr|jj|j�}|j|jt|j�@|�|j|jt|j�@|�y|j|j@Wntk
rbYnX|jd�dS)Nz(s&t did not screen-out general iterables)r!rRrr-r*r4r)rK)rrLr	r	r
�test_and�szTestJointOps.test_andcCsn|jj|j�}x.|jD]$}|j||k||jko6||jk�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��|j|jd�j�td��|j|jd�j|d�|d	��td
��q�WdS)Nr8r9rZr;r>r=r'r?rQr6)r!�
differencerrr-r$r rrBrCr(rrr)r*r4r"r#rDrErF)rrLr6rHr	r	r
�test_difference�s$    zTestJointOps.test_differencecCsr|jj|j�}|j|jt|j�|�|j|jt|j�|�y|j|jWntk
rbYnX|jd�dS)Nz(s-t did not screen-out general iterables)r!r`rr-r*r4r)rK)rrLr	r	r
�test_sub�szTestJointOps.test_subcCs.|jj|j�}x.|jD]$}|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)
Nr8r9�abdr;r<r=r'r?r@)r!�symmetric_differencerrr-r$r rrBrCr(rrr)r*r4r"r#rDrErF)rrLr6rHr	r	r
�test_symmetric_difference�s$   z&TestJointOps.test_symmetric_differencecCsr|jj|j�}|j|jt|j�A|�|j|jt|j�A|�y|j|jAWntk
rbYnX|jd�dS)Nz(s^t did not screen-out general iterables)r!rdrr-r*r4r)rK)rrLr	r	r
�test_xor�szTestJointOps.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*rr4rTr)rr	r	r
�
test_equality�szTestJointOps.test_equalitycCs2ttdddddg�}|j|�}|jt|�d�dS)NZabcdefZbcdZbdcbZfedZfedccba�)�mapr4r r-r1)r�tr!r	r	r
�test_setOfFrozensets�s
z!TestJointOps.test_setOfFrozensetscCs�t|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)NrZZabcde�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}tj|j|�}tj|�}|j|j|d|j|f�t|j�tt	fkrd|j_
tj|j|�}tj|�}|j|jj
|j
�qWdS)Nrz%s != %s�
)�range�pickle�HIGHEST_PROTOCOL�dumpsr!�loadsr-rBr*r4rI)rrLro�dupr	r	r
�
test_pickling�s

zTestJointOps.test_picklingcCs�x�ttjd�D]�}t|j�}|j|j�}tj||�}tj|�}|j|t	j
j�|j|j|�|�tj|�}yt
|�}Wntk
r�wYnXtj||�}tj|�}|j|j|�||j|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�}|j|g�}tj|�}|jt|�t|��x|D]}|}qJW|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__)N)rrrrrr�r	)r�r	r
r�sr�rsr)r �copy�deepcopyrTrSr-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	)�.0rL)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�}|j|�|j||�|j|�|j|�|j|�dS)Nc@seZdZdd�ZdS)z6TestJointOps.test_subclass_with_custom_hash.<locals>.HcSstt|�d@�S)Ni���)rrS)rr	r	r
r"sz?TestJointOps.test_subclass_with_custom_hash.<locals>.H.__hash__N)rrrrr	r	r	r
�H!sr�)r r*�addr5�remove�discard)rr�r!rYr	r	r
�test_subclass_with_custom_hashs


z+TestJointOps.test_subclass_with_custom_hashcCs||jt�g�}|jt|jt�t�g�|jt|jt��t|d�rx|jt|jt��|jt|jt��|jt|jt��dS)Nr�)	r r
r(rr3�hasattrr�r�r�)rr!r	r	r
�test_badcmp,s
zTestJointOps.test_badcmpcCsbt�}|j|g�}||_|jtkr4|jt|�d�n*t|�jd�d}|jt|�d||f�dS)Nz
{set(...)}�(rz
%s({%s(...)}))rr rr*r-r�	partition)r�wr!�namer	r	r
�test_cyclical_repr7s
zTestJointOps.test_cyclical_reprcCszt�}|j|g�}||_ttjd�}z:|jt|��|j�ttjd�}|j	|j
�t|��Wd|j�tjtj�XdS)Nr�rq)
rr r�openr�TESTFN�writerD�closer-�readr�unlink)rr�r!�for	r	r
�test_cyclical_printAsz TestJointOps.test_cyclical_printcCs:d}tjttt|���}|jtdd�|D��|�|j|�}|jtdd�|D��|�|j|�|jtdd�|D��|�t	|d�r�|j
|�|jtdd�|D��|�tjt|��}|jtdd�|D��|�tjt|��}|jtd	d�|D��|�tjt|�d
�}|jtdd�|D��|�|j|tj|d
��dS)Nrscss|]}|jVqdS)N)r)r�r�r	r	r
r�Rsz<TestJointOps.test_do_not_rehash_dict_keys.<locals>.<genexpr>css|]}|jVqdS)N)r)r�r�r	r	r
r�Tscss|]}|jVqdS)N)r)r�r�r	r	r
r�Vs�symmetric_difference_updatecss|]}|jVqdS)N)r)r�r�r	r	r
r�Yscss|]}|jVqdS)N)r)r�r�r	r	r
r�[scss|]}|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*r4)r�nr$r!Zd2Zd3r	r	r
�test_do_not_rehash_dict_keysOs"



z)TestJointOps.test_do_not_rehash_dict_keyscCsXGdd�dt�}|�}tj|�}t|dg�}t|�|_~~tj�|j|�dkd�dS)Nc@seZdZdS)z/TestJointOps.test_container_iterator.<locals>.CN)rrrr	r	r	r
rHdsrHrzCycle was not collected)	�object�weakref�refr*r{rI�gcZcollectr])rrH�objr��	containerr	r	r
�test_container_iteratorbs

z$TestJointOps.test_container_iteratorcCstj|t|j�dS)N)rZcheck_free_after_iteratingr{r )rr	r	r
�test_free_after_iteratingnsz&TestJointOps.test_free_after_iteratingN)rrrr%r+r0r2r7rJrMrVr^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�Zej e!ed3�d4�d5d6��Z"d7S)8�TestSetcCsj|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_inituszTestSet.test_initcCs0|jtd��}|j|�}|jt|�t|��dS)Nrh)r rtrTrS)rr!rjr	r	r
�test_constructor_identity~s
z!TestSet.test_constructor_identitycCs(tdddg�}dddh}|j||�dS)Nrr&rh)r*r-)rr!rjr	r	r
�test_set_literal�s
zTestSet.test_set_literalcCs6dddh}|jt|�d�|j�}|jt|�t�dS)Nrg�?T)r-r1�poprBr)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}|j�dddg�dS)Ncs�j|�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|jtt|j�dS)N)r(r)�hashr!)rr	r	r
�	test_hash�szTestSet.test_hashcCs0|jj�|j|jt��|jt|j�d�dS)Nr)r!�clearr-r*r1)rr	r	r
�
test_clear�s
zTestSet.test_clearcCsD|jj�}|j|j|�|jt|j�t|��|jt|�|j�dS)N)r!r�r-rTrSrBrC)rryr	r	r
�	test_copy�s
zTestSet.test_copycCsT|jjd�|jd|j�|jj�}|jjd�|j|j|�|jt|jjg�dS)N�Q)r!r�r5r�r-r(r))rryr	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 r4rr5)rr!r	r	r
�test_remove�szTestSet.test_removecCsdx^dD]V}y|jj|�Wn8tk
rR}z|jd}|j||�WYdd}~XqX|j�qWdS)Nr�rr�r)r�r�)r!r�r�rr-rK)r�v1�e�v2r	r	r
�test_remove_keyerror_unpacking�s

z&TestSet.test_remove_keyerror_unpackingcCsr|jddg�}y|jj|�WnFtk
rd}z*|j|jd|kdj||jd��WYdd}~Xn
X|j�dS)Nrh�rzKeyError should be {0}, not {1})r r!r�r�r]r�formatrK)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 r4rr5)rr!r	r	r
�test_discard�szTestSet.test_discardcCsDx.tt|j��D]}|jj�}|j||j�qW|jt|jj�dS)N)rtr1r!r�r�r(r�)rrLr�r	r	r
�test_pop�s
zTestSet.test_popcCs>|jj|j�}|j|d�x"|j|jD]}|j||j�q(W|jt|jjt��|jt	|jjgg�x\dD]T\}}xJt
ttj
tttfD]4}|jd	�}|j|j||��d�|j|t
|��q�WqlWxtdD]l}d}xbt
ttj
tttfD]L}|jd	�}|j|j||�||��d�|j|t
|�t
|�Bt
|�B��q�Wq�WdS)Nr9r:r;r<r=r>r?r@r8�abcdaZahi�r9r:�r;r<�r=r>�r?r@)r�r�r�r�)r9r;r=r?r�)r!�updaterr-rr5r(rrr)r*r4r"r#rDrErFr )r�retvalr6rorprHr!r	r	r
�test_update�s"


zTestSet.test_updatecCs<|jt|j�O_x"|j|jD]}|j||j�q"WdS)N)r!r*rrr5)rr6r	r	r
�test_ior�szTestSet.test_iorc	Cs:|jj|j�}|j|d�xF|j|jD]6}||jkrP||jkrP|j||j�q(|j||j�q(W|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)Nr9r6r;rOr=rPr?r8Zcbc�r9r6�r;rO�r=rP�r?rO)r�r�r�r�)r!�intersection_updaterr-rr5r�r(rrr)r*r4r"r#rDrErFr )	rr�r6rorprHr!�ssrjr	r	r
�test_intersection_update�s$

z TestSet.test_intersection_updatecCs`|jt|j�M_xF|j|jD]6}||jkrJ||jkrJ|j||j�q"|j||j�q"WdS)N)r!r*rrr5r�)rr6r	r	r
�	test_iands
zTestSet.test_iandcCs~|jj|j�}|j|d�xF|j|jD]6}||jkrP||jkrP|j||j�q(|j||j�q(W|jt|jjt	��|jt
|jjgg�|jt
|jjgg�x�dD]�\}}x�t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)Nr9rZr;r>r=r'r?r8Z
abcdefghihZabaZcdefghihZefghih�r9rZ�r;r>�r=r'�r?r>)r�r�r�r�)r!�difference_updaterr-rr5r�r(rrr)r�r*r4r"r#rDrErFr )rr�r6rorprHr!r	r	r
�test_difference_updates.



zTestSet.test_difference_updatecCs`|jt|j�8_xF|j|jD]6}||jkrJ||jkrJ|j||j�q"|j||j�q"WdS)N)r!r*rrr5r�)rr6r	r	r
�	test_isub1s
zTestSet.test_isubcCs�|jj|j�}|j|d�xF|j|jD]6}||jk||jkArP|j||j�q(|j||j�q(W|jt|jjt	��|jt
|jjgg�x\dD]T\}}xJttt
jtttfD]4}|jd	�}|j|j||��d�|j|t|��q�Wq�WdS)Nr9rcr;r<r=r'r?r@r8�r9rc�r;r<�r=r'�r?r@)r�r�r�r�)r!r�rr-rr5r�r(rrr)r*r4r"r#rDrErFr )rr�r6rorprHr!r	r	r
� test_symmetric_difference_update9s
z(TestSet.test_symmetric_difference_updatecCs`|jt|j�N_xF|j|jD]6}||jk||jkArJ|j||j�q"|j||j�q"WdS)N)r!r*rrr5r�)rr6r	r	r
�	test_ixorIs
zTestSet.test_ixorcCst|jj�}||O}|j||j�||M}|j||j�||8}|j||j��|jj�}||N}|j||j��dS)N)r!r�r-r )rrjr	r	r
�test_inplace_on_selfQs

zTestSet.test_inplace_on_selfcCs>|jd�}tj|�}|jt|�t|��d}|jtt|�dS)NZgallahad)r r��proxyr-rDr(�ReferenceError)rr!ror	r	r
�test_weakref]s


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__fsz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__gt__cSs
d|_dS)NTF)�	lt_called)rr�r	r	r
�__lt__isz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__lt__cSs
d|_dS)NTF)�	ge_called)rr�r	r	r
�__ge__lsz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__ge__cSs
d|_dS)NTF)�	le_called)rr�r	r	r
�__le__osz<TestSet.test_rich_compare.<locals>.TestRichSetCompare.__le__N)rrrr�r�r�r�r	r	r	r
�TestRichSetCompareesr�rr&rh)r]r�r�r�r�)rr�ZmysetZmyobjr	r	r
�test_rich_compareds
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
r��szTestSet.test_c_apiN)#rrrr*r rCr�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�qs:	$r�c@seZdZdS)�SetSubclassN)rrrr	r	r	r
r�src@seZdZeZeZdS)�TestSetSubclassN)rrrrr r*rCr	r	r	r
r�src@seZdZgdfdd�ZdS)�SetSubclassWithKeywordArgsNcCstj||�dS)N)r*r)r�iterable�newargr	r	r
r�sz#SetSubclassWithKeywordArgs.__init__)rrrrr	r	r	r
r�src@seZdZdd�ZdS)�TestSetSubclassWithKeywordArgscCstdd�dS)Nr)r)r)rr	r	r
�test_keywords_in_subclass�sz8TestSetSubclassWithKeywordArgs.test_keywords_in_subclassN)rrrrr	r	r	r
r�src@sTeZdZeZeZdd�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��szTestFrozenSet.test_initcCsnt�}t�tg�tf�td�t�tg�tf�td�ttd��tt��t|�|g}|jtttt|���d�dS)NrOrr)r4rtr-r1r*rirS)rrY�efsr	r	r
�test_singleton_empty_frozenset�sz,TestFrozenSet.test_singleton_empty_frozensetcCs0|jtd��}|j|�}|jt|�t|��dS)Nrh)r rtr-rS)rr!rjr	r	r
r��s
z'TestFrozenSet.test_constructor_identitycs�|jt|jd��t|jd���d��fdd�t��D�}t�}x,td�D] }t|�|jt|j|���qJW|jt|�d�dS)NZabcdebZebecda�dcsg|]}t���qSr	)r)r�rL)r�r	r
�
<listcomp>�sz+TestFrozenSet.test_hash.<locals>.<listcomp>��r)r-r�r rtr*rr�r1)r�seq�resultsrLr	)r�r
r��szTestFrozenSet.test_hashcCs$|jj�}|jt|j�t|��dS)N)r!r�r-rS)rryr	r	r
r��s
zTestFrozenSet.test_copycCsrttd��td�dg}|j|�}|jt|��}|j||�|jt|�t|��i}d||<|j||d�dS)NrsZabcdefgZapple�*)rErtr �reversedr-rTrS)rr
Zkey1Zkey2r$r	r	r
�test_frozen_as_dictkey�s
z$TestFrozenSet.test_frozen_as_dictkeycCs"|jd�}|jt|�t|��dS)NZabcdcda)r r-r�)rrYr	r	r
�test_hash_caching�s
zTestFrozenSet.test_hash_cachingc
	s�d}t�}|j}dd�t|�D�}x2td|�D]"�|tt�fdd�|D����q0W|jt|�d|�dd�}dd	�}xftd
�D]Z}d|}|d�xDt|fD]8}t�fdd
�tt|||���D��}	|jd|	|�q�Wq�WdS)N�
cSsg|]}|dd|>f�qS)rr	)r�rLr	r	r
r�sz9TestFrozenSet.test_hash_effectiveness.<locals>.<listcomp>r&csg|]\}}|�@r|�qSr	r	)r�r��m)rLr	r
r�scSs<t�g}x&t|d�D]}t|�}|j|�qW|d|�S)Nr)r4rtr�)r��numsrLZnumr	r	r
�zf_range�s
z7TestFrozenSet.test_hash_effectiveness.<locals>.zf_rangecss6x0tt|�d�D]}tttj||��EdHqWdS)Nr)rtr1rir4�	itertools�combinations)r!rLr	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�r4r-r1riZ
assertGreater)
rr�Z
hashvaluesZaddhashvalueZ	elemmasksrrrjrrGr	)rLrr
�test_hash_effectiveness�s"$z%TestFrozenSet.test_hash_effectivenessN)rrrr4r rCr�r	r�r�r�rrrr	r	r	r
r�s	

rc@seZdZdS)�FrozenSetSubclassN)rrrr	r	r	r
r�src@s4eZdZeZeZdd�Zdd�Zdd�Z	dd�Z
d	S)
�TestFrozenSetSubclasscCs0|jtd��}|j|�}|jt|�t|��dS)Nrh)r rtrTrS)rr!rjr	r	r
r��s
z/TestFrozenSetSubclass.test_constructor_identitycCs$|jj�}|jt|j�t|��dS)N)r!r�rTrS)rryr	r	r
r��s
zTestFrozenSetSubclass.test_copycCs"|j�}|j|�}|j||�dS)N)r r-)rr!rjr	r	r
�test_nested_empty_constructors
z3TestFrozenSetSubclass.test_nested_empty_constructorcCs�|j}t�}|�}|�|g�|f�|d�|�|g�|f�|d�|td��||��|t��||||�||�g}|jtttt|���t|��dS)NrOr)r r4rtr-r1r*rirS)rZ	FrozensetrY�Frr	r	r
r	sz4TestFrozenSetSubclass.test_singleton_empty_frozensetN)rrrrr r4rCr�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�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/S)0�TestBasicOpscCs"|jdk	r|jt|j�|j�dS)N)rr-r*)rr	r	r
�	test_reprs
zTestBasicOps.test_reprcCslt|j�}|j|jd��|j|jd��|dd�jd�}|j�dd�|jD�}|j�|j||�dS)N�{�}rz, 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_valuescCsfzJttjd�}|jt|j��|j�ttjd�}|j|j�t	|j��Wd|j�tj
tj�XdS)Nr�rq)r�rr�r�rDr*r�r-r�rr�)rr�r	r	r
�
test_print'szTestBasicOps.test_printcCs|jt|j�|j�dS)N)r-r1r*�length)rr	r	r
�test_length2szTestBasicOps.test_lengthcCs|j|j|j�dS)N)r-r*)rr	r	r
�test_self_equality5szTestBasicOps.test_self_equalitycCs|j|j|j�dS)N)r-r*ry)rr	r	r
�test_equivalent_equality8sz%TestBasicOps.test_equivalent_equalitycCs|j|jj�|j�dS)N)r-r*r�ry)rr	r	r
r�;szTestBasicOps.test_copycCs|j|jB}|j||j�dS)N)r*r-ry)rr.r	r	r
�test_self_union>szTestBasicOps.test_self_unioncCs|jtB}|j||j�dS)N)r*�	empty_setr-ry)rr.r	r	r
�test_empty_unionBs
zTestBasicOps.test_empty_unioncCst|jB}|j||j�dS)N)r6r*r-ry)rr.r	r	r
�test_union_emptyFs
zTestBasicOps.test_union_emptycCs|j|j@}|j||j�dS)N)r*r-ry)rr.r	r	r
�test_self_intersectionJsz#TestBasicOps.test_self_intersectioncCs|jt@}|j|t�dS)N)r*r6r-)rr.r	r	r
�test_empty_intersectionNs
z$TestBasicOps.test_empty_intersectioncCst|j@}|j|t�dS)N)r6r*r-)rr.r	r	r
�test_intersection_emptyRs
z$TestBasicOps.test_intersection_emptycCs"|jj|j�}|j||j�dS)N)r*r\r-)rr.r	r	r
�test_self_isdisjointVsz!TestBasicOps.test_self_isdisjointcCs|jjt�}|j|d�dS)NT)r*r\r6r-)rr.r	r	r
�test_empty_isdisjointZsz"TestBasicOps.test_empty_isdisjointcCstj|j�}|j|d�dS)NT)r6r\r*r-)rr.r	r	r
�test_isdisjoint_empty^sz"TestBasicOps.test_isdisjoint_emptycCs|j|jA}|j|t�dS)N)r*r-r6)rr.r	r	r
�test_self_symmetric_differencebsz+TestBasicOps.test_self_symmetric_differencecCs|jtA}|j||j�dS)N)r*r6r-)rr.r	r	r
�test_empty_symmetric_differencefs
z,TestBasicOps.test_empty_symmetric_differencecCs|j|j}|j|t�dS)N)r*r-r6)rr.r	r	r
�test_self_differencejsz!TestBasicOps.test_self_differencecCs|jt}|j||j�dS)N)r*r6r-ry)rr.r	r	r
�test_empty_differencens
z"TestBasicOps.test_empty_differencecCst|j}|j|t�dS)N)r6r*r-)rr.r	r	r
�test_empty_difference_revrs
z&TestBasicOps.test_empty_difference_revcCsBx|jD]}|j||j�qWt|j�}|j|j�t|j��dS)N)r*r5r,r{r-�__length_hint__r1)r�vZsetiterr	r	r
�test_iterationvs
zTestBasicOps.test_iterationcCsNxHttjd�D]6}tj|j|�}tj|�}|j|j|d|j|f�qWdS)Nrz%s != %s)rtrurvrwr*rxr-)rr�ror�r	r	r
rz|s


zTestBasicOps.test_picklingN)rrrr$r/r0r2r3r4r�r5r7r8r9r:r;r<r=r>r?r@rArBrCrFrzr	r	r	r
r#s.r#c@seZdZdd�ZdS)�TestBasicOpsEmptycCs4d|_g|_t|j�|_t|j�|_d|_d|_dS)Nz	empty setrzset())�caser,r*ryr1r)rr	r	r
r%�szTestBasicOpsEmpty.setUpN)rrrr%r	r	r	r
rG�srGc@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsSingletoncCs6d|_dg|_t|j�|_t|j�|_d|_d|_dS)Nzunit set (number)rhrz{3})rHr,r*ryr1r)rr	r	r
r%�szTestBasicOpsSingleton.setUpcCs|jd|j�dS)Nrh)r5r*)rr	r	r
�test_in�szTestBasicOpsSingleton.test_incCs|jd|j�dS)Nr&)r�r*)rr	r	r
�test_not_in�sz!TestBasicOpsSingleton.test_not_inN)rrrr%rJrKr	r	r	r
rI�srIc@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsTuplecCs6d|_dg|_t|j�|_t|j�|_d|_d|_dS)Nzunit set (tuple)r�zerorz
{(0, 'zero')})rrM)rHr,r*ryr1r)rr	r	r
r%�szTestBasicOpsTuple.setUpcCs|jd|j�dS)NrrM)rrM)r5r*)rr	r	r
rJ�szTestBasicOpsTuple.test_incCs|jd|j�dS)N�	)r�r*)rr	r	r
rK�szTestBasicOpsTuple.test_not_inN)rrrr%rJrKr	r	r	r
rL�srLc@seZdZdd�ZdS)�TestBasicOpsTriplecCs<d|_ddtjg|_t|j�|_t|j�|_d|_d|_dS)Nz
triple setrrMrh)rH�operatorr�r,r*ryr1r)rr	r	r
r%�szTestBasicOpsTriple.setUpN)rrrr%r	r	r	r
rO�srOc@seZdZdd�Zdd�ZdS)�TestBasicOpsStringcCs4d|_dddg|_t|j�|_t|j�|_d|_dS)Nz
string setr'rQr6rh)rHr,r*ryr1)rr	r	r
r%�s
zTestBasicOpsString.setUpcCs|j�dS)N)r/)rr	r	r
r$�szTestBasicOpsString.test_reprN)rrrr%r$r	r	r	r
rQ�srQc@seZdZdd�Zdd�ZdS)�TestBasicOpsBytescCs4d|_dddg|_t|j�|_t|j�|_d|_dS)Nz	bytes set�a�b�crh)rHr,r*ryr1)rr	r	r
r%�s
zTestBasicOpsBytes.setUpcCs|j�dS)N)r/)rr	r	r
r$�szTestBasicOpsBytes.test_reprN)rrrr%r$r	r	r	r
rR�srRc@s$eZdZdd�Zdd�Zdd�ZdS)�TestBasicOpsMixedStringBytescCsVtj�|_|jj�tjdt�d|_ddddg|_t	|j�|_	t	|j�|_
d|_dS)N�ignorezstring and bytes setr'rQrSrTr�)rZcheck_warnings�_warning_filters�	__enter__�warnings�simplefilter�BytesWarningrHr,r*ryr1)rr	r	r
r%�s

z"TestBasicOpsMixedStringBytes.setUpcCs|jjddd�dS)N)rX�__exit__)rr	r	r
�tearDown�sz%TestBasicOpsMixedStringBytes.tearDowncCs|j�dS)N)r/)rr	r	r
r$�sz&TestBasicOpsMixedStringBytes.test_reprN)rrrr%r^r$r	r	r	r
rV�s
rVccst�dVdS)NT)r)r	r	r	r
�baditer�sr_ccs
dVdS)NTr	r	r	r	r
�gooditer�sr`c@s$eZdZdd�Zdd�Zdd�ZdS)�TestExceptionPropagationcCs|jttt��dS)N)r(r)r*r_)rr	r	r
�test_instanceWithException�sz3TestExceptionPropagation.test_instanceWithExceptioncCsHtdddg�td�tdddd��ttd��td�tt��dS)Nrr&rh)ZoneZtwoZthreer>)rr&rh)r*rtr`)rr	r	r
�test_instancesWithoutException�sz7TestExceptionPropagation.test_instancesWithoutExceptioncCsPtdddg�}yx|D]}|jdg�qWWntk
r@YnX|jd�dS)Nrr&rhr�z0no exception when changing size during iteration)r*r�rrK)rr!rLr	r	r
�test_changingSizeWhileIteratings
z8TestExceptionPropagation.test_changingSizeWhileIteratingN)rrrrbrcrdr	r	r	r
ra�s	rac@seZdZdd�ZdS)�
TestSetOfSetscCs\tdg�}t|g�}|j�}|jt|�t�|j|�|j|�|j|t��|j|�dS)Nr)r4r*r�r-rBr�r�r�)r�innerZouter�elementr	r	r
�test_constructor
s



zTestSetOfSets.test_constructorN)rrrrhr	r	r	r
resrec@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�rj)r*)rr	r	r
r%szTestBinaryOps.setUpcCs|j|jtdddd���dS)Nrrh�)r&r�rj)r-r*)rr	r	r
�test_eqszTestBinaryOps.test_eqcCs$|jtdg�B}|j|td��dS)Nr&r�rj)r&r�rj)r*r-)rr.r	r	r
�test_union_subset szTestBinaryOps.test_union_subsetcCs2|jtddddg�B}|j|tddddg��dS)Nr&r�rj�)r*r-)rr.r	r	r
�test_union_superset$sz!TestBinaryOps.test_union_supersetcCs2|jtdddg�B}|j|tdddddg��dS)Nrhr�rkr&rj)r*r-)rr.r	r	r
�test_union_overlap(sz TestBinaryOps.test_union_overlapcCs,|jtdg�B}|j|tddddg��dS)Nrnr&r�rj)r*r-)rr.r	r	r
�test_union_non_overlap,sz$TestBinaryOps.test_union_non_overlapcCs"|jtd�@}|j|td��dS)Nr&r�)r&r�)r&r�)r*r-)rr.r	r	r
�test_intersection_subset0sz&TestBinaryOps.test_intersection_subsetcCs0|jtddddg�@}|j|tdddg��dS)Nr&r�rjrn)r*r-)rr.r	r	r
�test_intersection_superset4sz(TestBinaryOps.test_intersection_supersetcCs*|jtdddg�@}|j|tdg��dS)Nrhr�rk)r*r-)rr.r	r	r
�test_intersection_overlap8sz'TestBinaryOps.test_intersection_overlapcCs |jtdg�@}|j|t�dS)Nrn)r*r-r6)rr.r	r	r
�test_intersection_non_overlap<sz+TestBinaryOps.test_intersection_non_overlapcCs |jjtd��}|j|d�dS)Nr&r�F)r&r�)r*r\r-)rr.r	r	r
�test_isdisjoint_subset@sz$TestBinaryOps.test_isdisjoint_subsetcCs(|jjtddddg��}|j|d�dS)Nr&r�rjrnF)r*r\r-)rr.r	r	r
�test_isdisjoint_supersetDsz&TestBinaryOps.test_isdisjoint_supersetcCs&|jjtdddg��}|j|d�dS)Nrhr�rkF)r*r\r-)rr.r	r	r
�test_isdisjoint_overlapHsz%TestBinaryOps.test_isdisjoint_overlapcCs"|jjtdg��}|j|d�dS)NrnT)r*r\r-)rr.r	r	r
�test_isdisjoint_non_overlapLsz)TestBinaryOps.test_isdisjoint_non_overlapcCs$|jtd�A}|j|tdg��dS)Nr&r�rj)r&r�)r*r-)rr.r	r	r
�test_sym_difference_subsetPsz(TestBinaryOps.test_sym_difference_subsetcCs$|jtd�A}|j|tdg��dS)Nr&r�rjrn)r&r�rjrn)r*r-)rr.r	r	r
�test_sym_difference_supersetTsz*TestBinaryOps.test_sym_difference_supersetcCs*|jtd�A}|j|tddddg��dS)Nrhr�rkr&rj)rhr�rk)r*r-)rr.r	r	r
�test_sym_difference_overlapXsz)TestBinaryOps.test_sym_difference_overlapcCs,|jtdg�A}|j|tddddg��dS)Nrnr&r�rj)r*r-)rr.r	r	r
�test_sym_difference_non_overlap\sz-TestBinaryOps.test_sym_difference_non_overlapN)rrrr%rlrmrorprqrrrsrtrurvrwrxryrzr{r|r}r	r	r	r
ris$ric@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�rj)r&r�rj)r*)rr	r	r
r%cszTestUpdateOps.setUpcCs*|jtdg�O_|j|jtd��dS)Nr&r�rj)r&r�rj)r*r-)rr	r	r
rmfszTestUpdateOps.test_union_subsetcCs8|jtddddg�O_|j|jtddddg��dS)Nr&r�rjrn)r*r-)rr	r	r
rojsz!TestUpdateOps.test_union_supersetcCs8|jtdddg�O_|j|jtdddddg��dS)Nrhr�rkr&rj)r*r-)rr	r	r
rpnsz TestUpdateOps.test_union_overlapcCs2|jtdg�O_|j|jtddddg��dS)Nrnr&r�rj)r*r-)rr	r	r
rqrsz$TestUpdateOps.test_union_non_overlapcCs6|jjtdddg��|j|jtdddddg��dS)Nrhr�rkr&rj)r*r�r-)rr	r	r
�test_union_method_callvsz$TestUpdateOps.test_union_method_callcCs(|jtd�M_|j|jtd��dS)Nr&r�)r&r�)r&r�)r*r-)rr	r	r
rrzsz&TestUpdateOps.test_intersection_subsetcCs6|jtddddg�M_|j|jtdddg��dS)Nr&r�rjrn)r*r-)rr	r	r
rs~sz(TestUpdateOps.test_intersection_supersetcCs0|jtdddg�M_|j|jtdg��dS)Nrhr�rk)r*r-)rr	r	r
rt�sz'TestUpdateOps.test_intersection_overlapcCs&|jtdg�M_|j|jt�dS)Nrn)r*r-r6)rr	r	r
ru�sz+TestUpdateOps.test_intersection_non_overlapcCs.|jjtdddg��|j|jtdg��dS)Nrhr�rk)r*r�r-)rr	r	r
�test_intersection_method_call�sz+TestUpdateOps.test_intersection_method_callcCs*|jtd�N_|j|jtdg��dS)Nr&r�rj)r&r�)r*r-)rr	r	r
rz�sz(TestUpdateOps.test_sym_difference_subsetcCs*|jtd�N_|j|jtdg��dS)Nr&r�rjrn)r&r�rjrn)r*r-)rr	r	r
r{�sz*TestUpdateOps.test_sym_difference_supersetcCs0|jtd�N_|j|jtddddg��dS)Nrhr�rkr&rj)rhr�rk)r*r-)rr	r	r
r|�sz)TestUpdateOps.test_sym_difference_overlapcCs2|jtdg�N_|j|jtddddg��dS)Nrnr&r�rj)r*r-)rr	r	r
r}�sz-TestUpdateOps.test_sym_difference_non_overlapcCs4|jjtdddg��|j|jtddddg��dS)Nrhr�rkr&rj)r*r�r-)rr	r	r
�test_sym_difference_method_call�sz-TestUpdateOps.test_sym_difference_method_callcCs*|jtd�8_|j|jtdg��dS)Nr&r�rj)r&r�)r*r-)rr	r	r
�test_difference_subset�sz$TestUpdateOps.test_difference_subsetcCs(|jtd�8_|j|jtg��dS)Nr&r�rjrn)r&r�rjrn)r*r-)rr	r	r
�test_difference_superset�sz&TestUpdateOps.test_difference_supersetcCs,|jtd�8_|j|jtddg��dS)Nrhr�rkr&rj)rhr�rk)r*r-)rr	r	r
�test_difference_overlap�sz%TestUpdateOps.test_difference_overlapcCs0|jtdg�8_|j|jtdddg��dS)Nrnr&r�rj)r*r-)rr	r	r
�test_difference_non_overlap�sz)TestUpdateOps.test_difference_non_overlapcCs0|jjtdddg��|j|jtddg��dS)Nrhr�rkr&rj)r*r�r-)rr	r	r
�test_difference_method_call�sz)TestUpdateOps.test_difference_method_callN)rrrr%rmrorprqrrrrsrtrur�rzr{r|r}r�r�r�r�r�r�r	r	r	r
r~bs*r~c@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'rQr6)r,r*)rr	r	r
r%�szTestMutate.setUpcCs"|jjd�|j|jtd��dS)Nr6r>)r*r�r-)rr	r	r
�test_add_present�szTestMutate.test_add_presentcCs"|jjd�|j|jtd��dS)Nr$r:)r*r�r-)rr	r	r
�test_add_absent�szTestMutate.test_add_absentcCsNt�}d}x0|jD]&}|j|�|d7}|jt|�|�qW|j||j�dS)Nrr)r*r,r�r-r1)rZtmp�expected_lenrEr	r	r
�test_add_until_full�s
zTestMutate.test_add_until_fullcCs"|jjd�|j|jtd��dS)NrQZac)r*r�r-)rr	r	r
�test_remove_present�szTestMutate.test_remove_presentcCs4y|jjd�|jd�Wntk
r.YnXdS)Nr$z7Removing missing element should have raised LookupError)r*r�rK�LookupError)rr	r	r
�test_remove_absent�s
zTestMutate.test_remove_absentcCsDt|j�}x4|jD]*}|jj|�|d8}|jt|j�|�qWdS)Nr)r1r*r,r�r-)rr�rEr	r	r
�test_remove_until_empty�s

z"TestMutate.test_remove_until_emptycCs"|jjd�|j|jtd��dS)Nr6rZ)r*r�r-)rr	r	r
�test_discard_present�szTestMutate.test_discard_presentcCs"|jjd�|j|jtd��dS)Nr$r>)r*r�r-)rr	r	r
�test_discard_absent�szTestMutate.test_discard_absentcCs |jj�|jt|j�d�dS)Nr)r*r�r-r1)rr	r	r
r��s
zTestMutate.test_clearcCsTi}x|jrd||jj�<qW|jt|�t|j��x|jD]}|j||�q<WdS)N)r*r�r-r1r,r5)rZpoppedrEr	r	r
r��szTestMutate.test_popcCs$|jjf�|j|jt|j��dS)N)r*r�r-r,)rr	r	r
�test_update_empty_tuple�sz"TestMutate.test_update_empty_tuplecCs$|jjd�|j|jt|j��dS)Nr')r')r*r�r-r,)rr	r	r
�test_update_unit_tuple_overlap�sz)TestMutate.test_update_unit_tuple_overlapcCs*|jjd�|j|jt|jdg��dS)Nr'rU)r'rU)r*r�r-r,)rr	r	r
�"test_update_unit_tuple_non_overlap�sz-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@s0eZdZddd�Zdddddd	d
�Zdd�Zd
S)�TestSubsetsrmrn)z<=z>=z==z!=�>�<z>=z<=)z==z!=r�r�z<=z>=cCs�|j}|j}x�d	D]�}||jk}td|dt��}|j||�|tjkrnt|tj|�}||�}|j||�tj	|}td|dt��}|j||�|tjkrt|tj|�}||�}|j||�qWdS)
N�!=�==r��<=r��>=rI�y)r�r�r�r�r�r�)
�left�right�cases�eval�localsr-r��case2method�getattr�reverse)rrIr�rHr/r.�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�==�<=�>=N)r�r�r�)rrrr*r�r�r�r�r	r	r	r
r�(sr�c@s,eZdZeddg�Zeddg�ZdZdZdS)	�TestSubsetEqualNonEmptyrr&z
equal pair�==�<=�>=N)r�r�r�)rrrr*r�r�r�r�r	r	r	r
r�0sr�c@s&eZdZe�Zeddg�ZdZdZdS)	�TestSubsetEmptyNonEmptyrr&zone empty, one non-empty�!=r��<=N)r�r�r�)rrrr*r�r�r�r�r	r	r	r
r�8s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�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)�TestOnlySetsInBinaryOpscCsT|j|j|jkd�|j|j|jkd�|j|j|jkd�|j|j|jkd�dS)NFT)r-rr*)rr	r	r
�
test_eq_neRsz"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>Zsz:TestOnlySetsInBinaryOps.test_ge_gt_le_lt.<locals>.<lambda>cs�j�jkS)N)r*rr	)rr	r
r�[scs�j�jkS)N)r*rr	)rr	r
r�\scs�j�jkS)N)r*rr	)rr	r
r�]scs�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�ascs�j�jkS)N)rr*r	)rr	r
r�bs)r(r))rr	)rr
�test_ge_gt_le_ltYsz(TestOnlySetsInBinaryOps.test_ge_gt_le_ltcCs8y|j|jO_Wntk
r(YnX|jd�dS)Nzexpected TypeError)r*rr)rK)rr	r	r
�test_update_operatords
z,TestOnlySetsInBinaryOps.test_update_operatorcCs.|jr|jj|j�n|jt|jj|j�dS)N)�otherIsIterabler*r�rr(r))rr	r	r
r�lsz#TestOnlySetsInBinaryOps.test_updatecsV�jt�fdd���jt�fdd���jr>�jj�j�n�jt�jj�j�dS)Ncs�j�jBS)N)r*rr	)rr	r
r�ssz4TestOnlySetsInBinaryOps.test_union.<locals>.<lambda>cs�j�jBS)N)rr*r	)rr	r
r�ts)r(r)r�r*rAr)rr	)rr
rJrs
z"TestOnlySetsInBinaryOps.test_unioncCs8y|j|jM_Wntk
r(YnX|jd�dS)Nzexpected TypeError)r*rr)rK)rr	r	r
�!test_intersection_update_operatorzs
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_updatecsV�jt�fdd���jt�fdd���jr>�jj�j�n�jt�jj�j�dS)Ncs�j�j@S)N)r*rr	)rr	r
r��sz;TestOnlySetsInBinaryOps.test_intersection.<locals>.<lambda>cs�j�j@S)N)rr*r	)rr	r
r��s)r(r)r�r*rRr)rr	)rr
rV�s
z)TestOnlySetsInBinaryOps.test_intersectioncCs8y|j|jN_Wntk
r(YnX|jd�dS)Nzexpected TypeError)r*rr)rK)rr	r	r
�#test_sym_difference_update_operator�s
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_update�s
z2TestOnlySetsInBinaryOps.test_sym_difference_updatecsV�jt�fdd���jt�fdd���jr>�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*rdr)rr	)rr
�test_sym_difference�s
z+TestOnlySetsInBinaryOps.test_sym_differencecCs8y|j|j8_Wntk
r(YnX|jd�dS)Nzexpected TypeError)r*rr)rK)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_updatecsV�jt�fdd���jt�fdd���jr>�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*r`r)rr	)rr
ra�s
z'TestOnlySetsInBinaryOps.test_differenceN)rrrr�r�r�r�rJr�r�rVr�r�r�r�r�rar	r	r	r
r�Psr�c@seZdZdd�ZdS)�TestOnlySetsNumericcCstd�|_d|_d|_dS)Nrr&rh�F)rr&rh)r*rr�)rr	r	r
r%�s
zTestOnlySetsNumeric.setUpN)rrrr%r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsDictcCs td�|_ddd�|_d|_dS)Nrr&rhr�)rrhT)rr&rh)r*rr�)rr	r	r
r%�s
zTestOnlySetsDict.setUpN)rrrr%r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsOperatorcCstd�|_tj|_d|_dS)Nrr&rhF)rr&rh)r*rPr�rr�)rr	r	r
r%�s
zTestOnlySetsOperator.setUpN)rrrr%r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsTuplecCstd�|_d|_d|_dS)	Nrr&rhr�rjT)rr&rh)r&r�rj)r*rr�)rr	r	r
r%�s
zTestOnlySetsTuple.setUpN)rrrr%r	r	r	r
r��sr�c@seZdZdd�ZdS)�TestOnlySetsStringcCstd�|_d|_d|_dS)Nrr&rhr>T)rr&rh)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)rLr	r	r
�gen�sz(TestOnlySetsGenerator.setUp.<locals>.genrr&rhT)rr&rh)r*rr�)rr�r	r	r
r%�s
zTestOnlySetsGenerator.setUpN)rrrr%r	r	r	r
r��sr�c@seZdZdd�Zdd�ZdS)�TestCopyingcCsh|jj�}t|td�}t|jtd�}|jt|�t|��x*tt|��D]}|j||||k�qFWdS)N)r�)r*r�r,rr-r1rtr])rry�dup_list�set_listrLr	r	r
r��s
zTestCopying.test_copycCshtj|j�}t|td�}t|jtd�}|jt|�t|��x(tt|��D]}|j||||�qHWdS)N)r�)r�r�r*r,rr-r1rt)rryr�r�rLr	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)NrMr)r*)rr	r	r
r%szTestCopyingTriple.setUpN)rrrr%r	r	r	r
r�sr�c@seZdZdd�ZdS)�TestCopyingTuplecCstdg�|_dS)Nrr&)rr&)r*)rr	r	r
r%szTestCopyingTuple.setUpN)rrrr%r	r	r	r
r�sr�c@seZdZdd�ZdS)�TestCopyingNestedcCstdg�|_dS)Nrr&rhr��rr&�rhr�)r�r�)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'rQ)rr	r	r
r%+s
zTestIdentities.setUpcCs�|j|j}}|j|||k�|j|||k�|j||@|k�|j||@|k�|j||B|k�|j||B|k�|j||A||Bk�dS)N)r'rQr])rr'rQr	r	r
�test_binopsVsSubsets/sz#TestIdentities.test_binopsVsSubsetscCsj|j|j}}|j||@||@�|j||B||B�|j||A||A�||krf|j||||�dS)N)r'rQr-rT)rr'rQr	r	r
�test_commutativity9s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'rQr-)rr'rQr	r	r
�test_summationsAs$zTestIdentities.test_summationscCsZ|j|jt�}}}|j|||@|�|j|||@|�|j||@||A@|�dS)N)r'rQr*r-)rr'rQrMr	r	r
�test_exclusionLszTestIdentities.test_exclusionN)rrrr%r�r�r�r�r	r	r	r
r�*s

r�ccsx|D]
}|VqWdS)Nr	)�seqnrLr	r	r
�RUs
r�c@seZdZdd�Zdd�ZdS)�GcCs
||_dS)N)r�)rr�r	r	r
r\sz
G.__init__cCs
|j|S)N)r�)rrLr	r	r
�__getitem__^sz
G.__getitem__N)rrrrr�r	r	r	r
r�Zsr�c@s$eZdZdd�Zdd�Zdd�ZdS)�IcCs||_d|_dS)Nr)r�rL)rr�r	r	r
rcsz
I.__init__cCs|S)Nr	)rr	r	r
�__iter__fsz
I.__iter__cCs2|jt|j�krt�|j|j}|jd7_|S)Nr)rLr1r�r)rrEr	r	r
�__next__hs
z
I.__next__N)rrrrr�r�r	r	r	r
r�asr�c@seZdZdd�Zdd�ZdS)�IgcCs||_d|_dS)Nr)r�rL)rr�r	r	r
rpszIg.__init__ccsx|jD]
}|VqWdS)N)r�)r�valr	r	r
r�sszIg.__iter__N)rrrrr�r	r	r	r
r�nsr�c@seZdZdd�Zdd�ZdS)�XcCs||_d|_dS)Nr)r�rL)rr�r	r	r
rysz
X.__init__cCs2|jt|j�krt�|j|j}|jd7_|S)Nr)rLr1r�r)rrEr	r	r
r�|s
z
X.__next__N)rrrrr�r	r	r	r
r�wsr�c@seZdZdd�Zdd�ZdS)�NcCs||_d|_dS)Nr)r�rL)rr�r	r	r
r�sz
N.__init__cCs|S)Nr	)rr	r	r
r��sz
N.__iter__N)rrrrr�r	r	r	r
r��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�EcCs||_d|_dS)Nr)r�rL)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)rrrrr�r�r	r	r	r
r��sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�ScCsdS)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)rrrrr�r�r	r	r	r
r��sr�)�chaincCsttdd�ttt|�����S)NcSs|S)Nr	)rIr	r	r
r��szL.<locals>.<lambda>)r�rir�r�r�)r�r	r	r
�L�sr�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestVariousIteratorArgsc	Cs�x�ttfD]�}x�ddtd�d
tddd�fD]|}x@ttttttfD],}|j	t
|||��td	�t
||�td	��q@W|jt
|t|��|jt
|t|��|jt|t|��q*Wq
WdS)N�123rOi��do�333333�?i�i�rk)r�)r�r�)r*r4rtr�r�r�r�r�r�r-r,rr(r)r�r��ZeroDivisionErrorr�)rZconsr!�gr	r	r
rh�s ,z(TestVariousIteratorArgs.test_constructorc	Cs�td�}x�ddtd�dtddd	�d
fD]�}x�|j|j|j|j|jfD]�}x^ttt	t
tfD]L}||�}|||��}t|t
�r�|j||�qX|jt|td�t|td��qXW|jt|t|��|jt|t|��|jt|t|��qDWq&WdS)
NZnovemberr�rOi�r��333333�?i�i�rk�december)r�)r�r�)r*rtrArRr`rdr\r�r�r�r�r��
isinstance�boolr-r,rr(r)r�r�r�r�)rr!r��methr�r/r.r	r	r
�test_inline_methods�s"
 z+TestVariousIteratorArgs.test_inline_methodsc	Cs��x�ddtd�dtddd�d	fD]�}x�dD]�}xlttttttfD]X}td�}|j�}t	||�t
||���t	||�||��|jt|t
d�t|t
d��q@W|jtt	td�|�t|��|jtt	td�|�t|��|jtt	td�|�t|��q*Wq WdS)Nr�rOi�r��333333�?i�i�rkr�r�r�r�r�Zjanuary)r�)r�r�)r�r�r�r�)rtr�r�r�r�r�r�r*r�r�rEr-r,rr(r)r�r�r�r�)rr�Zmethnamer�r!rjr	r	r
�test_inplace_methods�s$ z,TestVariousIteratorArgs.test_inplace_methodsN)rrrrhr�r�r	r	r	r
r��s	r�c@seZdZdd�Zdd�ZdS)�bad_eqcCstrtj�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tj�||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|jt|jt�dat�h}t�diada|j	t�dS)NFcSsh|]
}t��qSr	)r�)r�rLr	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��}|j�|jtd��t|�}|j�ttd��}|jtd��t|�dS)Nr
)r*rtr�r�r{rE)rr!�sir'r	r	r
�test_iter_and_mutate�sz"TestWeirdBugs.test_iter_and_mutatecsBG�fdd�d��t���fdd�td�D��dh}|j��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�j�dS)NF)r�)r�o)rr	r
r�sz5TestWeirdBugs.test_merge_and_mutate.<locals>.X.__eq__N)rrrrrr	)rr	r
r��sr�csh|]
}���qSr	r	)r�rL)r�r	r
rsz6TestWeirdBugs.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�rr	r	r	r
r��sr�ccs^t|�}y4tt|�g�}x t|�D]}|V||BVq"WWntk
rXt�VYnXdS)N)r{r4r~rr)�UrIr�r	r	r
rsrcs0dd�t|�D��t�fdd�tt|��D��S)NcSsg|]}t|g��qSr	)r4)r�rIr	r	r
rszcube.<locals>.<listcomp>cs&g|]��t�fdd��D��f�qS)csg|]}�|A�qSr	r	)r�r!)rIr	r
rsz#cube.<locals>.<listcomp>.<listcomp>)r4)r�)�
singletons)rIr
rs)rtr"r)r�r	)rr
�cubesrcspi}xf|D]^�xX|�D]L���fdd�|�D�}��fdd�|�D�}t||�|t��g�<qWq
W|S)Ncs g|]}|�krt�|g��qSr	)r4)r�rU)rIr�r	r
rszlinegraph.<locals>.<listcomp>cs g|]}|�krt�|g��qSr	)r4)r�rU)rIr�r	r
rs)r4)r�r�Znx�nyr	)rIr�r
�	linegraphs
 rcCs�t�}x�|j�D]�\}}x�|D]�}x�||D]�}||kr:q,|||kr\|jt|||g��q,x�||D]z}||krtqf|||kr�|jt||||g��qfxF||D]:}||ks�||kr�q�|||kr�|jt|||||g��q�WqfWq,WqWqW|S)N)r*�itemsr�r4)r�rYr��edgesr�Zv3Zv4Zv5r	r	r
�faces#s&
,r	c@seZdZdd�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)Nrhrncss|]}|D]
}|Vq
qdS)Nr	)r�rrEr	r	r
r�Fsz'TestGraphs.test_cube.<locals>.<genexpr>rjr�)rr*r-r1r,r	)rr�Z	vertices1�edgeZ	vertices2Z	cubefaces�facer	r	r
�	test_cube?s
zTestGraphs.test_cubecCstd�}t|�}|jt|�d�t|�}x |j�D]}|jt|�d�q2Wtdd�|j�D��}|j||�t|�}tjt	�}x |D]}|t|�d7<q�W|j|dd�|j|dd�x:|D]2}	|	}
|jt|
�d	�x|
D]}|j
||�q�Wq�WdS)
Nrh�r�css|]}|D]
}|Vq
qdS)Nr	)r�rrr	r	r
r�[sz0TestGraphs.test_cuboctahedron.<locals>.<genexpr>rrnrjr&)rrr-r1r*r,r	r|�defaultdictrr5)rr�Z
cuboctahedronZverticesrZ
otherverticesZ	cubofacesZ	facesizesrZvertexrZcubevertr	r	r
�test_cuboctahedronNs&



zTestGraphs.test_cuboctahedronN)rrrr
rr	r	r	r
r
=sr
�__main__)\r�Ztestrr�r�rPr�ruZrandomrrrZr|�collections.abcr�string�	Exceptionrrr
rrrrZTestCaser�r*rrrrrr4rr r6r#rGrIrLrOrQrRrVr_r`rarerir~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�r�r�rrrr	r
r�mainr	r	r	r
�<module>s�JRo


IVJ&t+
	
	)	*1


Youez - 2016 - github.com/yon3zu
LinuXploit