Your IP : 216.73.216.213


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_weakset.cpython-38.opt-2.pyc

U

i�f<�@szddlZddlmZddlZddlmZddlZddlZGdd�d�Z	Gdd�d�Z
Gdd	�d	ej�Ze
d
krve��dS)�N)�WeakSet)�
UserStringc@seZdZdS)�FooN)�__name__�
__module__�__qualname__�rr�6/opt/alt/python38/lib64/python3.8/test/test_weakset.pyr	src@seZdZdd�ZdS)�RefCyclecCs
||_dS�N)�cycle��selfrrr	�__init__
szRefCycle.__init__N)rrrrrrrr	r
sr
c@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�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[S)\�TestWeakSetcCs�dd�dD�|_dd�dD�|_dd�dD�|_dd�d	D�|_d
d�dD�|_t|j�|_t|j�|_t|j�|_dd�t	j
D�|_t|j�|_t
�|j�|_td
�|_t|jg�|_dS)NcSsg|]}t|��qSr��ustr��.0�crrr	�
<listcomp>sz%TestWeakSet.setUp.<locals>.<listcomp>��a�brcSsg|]}t|��qSrrrrrr	rs)�x�y�zcSsg|]}t|��qSrrrrrr	rsZabcSsg|]}t|��qSrrrrrr	rsZabcdecSsg|]}t|��qSrrrrrr	rs�defcSsg|]}t|��qSrrrrrr	rs�F)�items�items2Zab_itemsZabcde_itemsZ	def_itemsr�
ab_weakset�
abcde_weakset�def_weakset�string�
ascii_letters�letters�s�dict�fromkeys�dr�obj�fsr
rrr	�setUps
zTestWeakSet.setUpcCs@tt�}tt�D]*}|dks|�d�r(q|�||d|�qdS)NZ
test_c_api�_zWeakSet missing method )�dirr�set�
startswith�assertIn)rZweaksetmethods�methodrrr	�test_methods#s�zTestWeakSet.test_methodscCs|�ttgd�dS)N�)�assertRaises�	TypeErrorrr
rrr	�test_new_or_init+szTestWeakSet.test_new_or_initcCsD|�t|j�t|j��|�t|j�d�|`|�t|j�d�dS)N�r)�assertEqual�lenr'r*r,r+r
rrr	�test_len.szTestWeakSet.test_lencCs\|jD]}|�||jk||jk�q|�d|j�|�|j|j�|`|�td�|j�dS)Nr9r)	r&r:r'r*�assertNotInr2r+r,r�rrrrr	�
test_contains4s
zTestWeakSet.test_containscCs|j�|j�}|jD]$}|�||k||jkp4||jk�q|�|jt|j��|�t|�t�|�	t
|jjgg�ttt
jttfD]4}t|j|j�}||j�}|�|j�|�|�~q�|�t|�t|j�t|j��|j��t��|�t|�t|j�t|j��dSr)r'�unionr r&r:r*rr�typer6r7r0�	frozensetr(r)�list�tupler;�pop�gc�collect)r�ur�Crrrr	�
test_union=s
"
 
zTestWeakSet.test_unioncCsB|j�|j�}|�|jt|j�B|�|�|jt|j�B|�dSr)r'r@r r:r0rB�r�irrr	�test_orNszTestWeakSet.test_orcCs�t|j�}|�|j�}|jD]$}|�||k||jko<||jk�q|�|t|j��|�t|�t�tttj	t
tfD]$}tg�}|�|�||j��|�qt|�t
|�t
|j��|j��t��|�t
|�t
|j��dSr)rr&�intersectionr r:rAr0rBr(r)rCrDrr;rErFrG)rr'rLrrIrrrr	�test_intersectionSs

"
zTestWeakSet.test_intersectioncCs6|�|j�t|j���|�|j�t|j���dSr)�
assertTruer'�
isdisjointrr r&r
rrr	�test_isdisjointbszTestWeakSet.test_isdisjointcCsB|j�|j�}|�|jt|j�@|�|�|jt|j�@|�dSr)r'rNr r:r0rBrKrrr	�test_andfszTestWeakSet.test_andcCsv|j�|j�}|jD]$}|�||k||jko4||jk�q|�|jt|j��|�t|�t�|�	t
|jjgg�dSr)r'�
differencer r&r:r*rrrAr6r7�rrLrrrr	�test_differenceks
"zTestWeakSet.test_differencecCsB|j�|j�}|�|jt|j�|�|�|jt|j�|�dSr)r'rTr r:r0rBrKrrr	�test_subsszTestWeakSet.test_subcCs�|j�|j�}|jD]$}|�||k||jk||jkA�q|�|jt|j��|�t|�t�|�	t
|jjgg�|�t|�t|j�t|j��|j��t
��|�t|�t|j�t|j��dSr)r'�symmetric_differencer r&r:r*rrrAr6r7r;rErFrGrUrrr	�test_symmetric_differencexs
" 
z%TestWeakSet.test_symmetric_differencecCsB|j�|j�}|�|jt|j�A|�|�|jt|j�A|�dSr)r'rXr r:r0rBrKrrr	�test_xor�szTestWeakSet.test_xorcCs�|�|j|jk�|�|j|jk�|�|j|jk�|�|j|jk�|�|j|jk�|�td��d��|�td��d��|�td��d��|�td��d��dS)Nr�abcZcbs)rPr!r"�assertFalser#r0�issubset�
issupersetr
rrr	�test_sub_and_super�szTestWeakSet.test_sub_and_supercCsL|�|j|jk�|�|j|jk�|�|j|jk�|�t�t�k�dSr)rPr!r"r\r#rr
rrr	�test_lt�szTestWeakSet.test_ltcCsL|�|j|jk�|�|j|jk�|�|j|jk�|�t�t�k�dSr)rPr"r!r\r#rr
rrr	�test_gt�szTestWeakSet.test_gtcCs<tdd�td�D��}|D]}||_||_t|g�|_qdS)Ncss|]}t�VqdSr)r�rrLrrr	�	<genexpr>�sz&TestWeakSet.test_gc.<locals>.<genexpr>i�)r�ranger�subr0)rr'�elemrrr	�test_gc�s
zTestWeakSet.test_gccCsTGdd�dt�}|�}t�}|�|�|�||�|�|�|�|�|�|�dS)Nc@seZdZdd�ZdS)z5TestWeakSet.test_subclass_with_custom_hash.<locals>.HcSstt|�d@�S)Ni���)�int�idr
rrr	�__hash__�sz>TestWeakSet.test_subclass_with_custom_hash.<locals>.H.__hash__N)rrrrjrrrr	�H�srk)rr0�addr2�remove�discard)rrkr'�frrr	�test_subclass_with_custom_hash�s


z*TestWeakSet.test_subclass_with_custom_hashcCsdt�}|�|j�|�||j�|�|j�|�|t|j��|�t|j|d�|�t|jd�dS)Nr5r9)rrrr:r'r r6r7)rr'rrr	�	test_init�szTestWeakSet.test_initcCs*t|j�}t|�}|�t|�t|��dSr)rr�assertNotEqualri)rr'�trrr	�test_constructor_identity�s
z%TestWeakSet.test_constructor_identitycCs|�tt|j�dSr)r6r7�hashr'r
rrr	�	test_hash�szTestWeakSet.test_hashcCs2|j��|�|jtg��|�t|j�d�dS)Nr)r'�clearr:rr;r
rrr	�
test_clear�s
zTestWeakSet.test_clearcCs2|j��}|�|j|�|�t|j�t|��dSr)r'�copyr:rrri)r�duprrr	�	test_copy�s
zTestWeakSet.test_copycCs�td�}|j�|�|�||j�|j��}|j�|�|�|j|�|�t|jjg�|j�t	��|�
t|j�dk�|j�|j�|�
t|j�dk�dS)N�Qr9)
rr'rlr2ryr:r6r7r,rrPr;r+)rrrzrrr	�test_add�s
zTestWeakSet.test_addcCsJtd�}|j�|�|�||j�|�t|jj|�|�t|jjg�dS)Nr)rr'rmr=r6�KeyErrorr7)rrrrr	�test_remove�s
zTestWeakSet.test_removecCsNtd�td�}}|j�|�|�||j�|j�|�|�t|jjg�dS)Nrr|)rr'rnr=r6r7)rr�qrrr	�test_discard�s
zTestWeakSet.test_discardcCs@tt|j��D]}|j��}|�||j�q|�t|jj�dSr)rdr;r'rEr=r6r~)rrLrfrrr	�test_pop�s
zTestWeakSet.test_popcCsR|j�|j�}|�|d�|j|jD]}|�||j�q&|�t|jjgg�dSr)r'�updater r:rr2r6r7�rZretvalrrrr	�test_update�s
zTestWeakSet.test_updatecCs6|j�t|j��|j|jD]}|�||j�qdSr)r'r�r0r rr2r>rrr	�test_update_set�szTestWeakSet.test_update_setcCs8|jt|j�O_|j|jD]}|�||j�q dSr)r'r0r rr2r>rrr	�test_ior�szTestWeakSet.test_iorcCsv|j�|j�}|�|d�|j|jD]6}||jkrN||jkrN|�||j�q&|�||j�q&|�t|jjgg�dSr)	r'�intersection_updater r:rr2r=r6r7r�rrr	�test_intersection_updatesz$TestWeakSet.test_intersection_updatecCs\|jt|j�M_|j|jD]6}||jkrH||jkrH|�||j�q |�||j�q dSr�r'r0r rr2r=r>rrr	�	test_iands
zTestWeakSet.test_iandcCs�|j�|j�}|�|d�|j|jD]6}||jkrN||jkrN|�||j�q&|�||j�q&|�t|jjgg�|�t|jj	gg�dSr)
r'�difference_updater r:rr2r=r6r7�symmetric_difference_updater�rrr	�test_difference_updatesz"TestWeakSet.test_difference_updatecCs\|jt|j�8_|j|jD]6}||jkrH||jkrH|�||j�q |�||j�q dSrr�r>rrr	�	test_isubs
zTestWeakSet.test_isubcCsv|j�|j�}|�|d�|j|jD]6}||jk||jkArN|�||j�q&|�||j�q&|�t|jjgg�dSr)	r'r�r r:rr2r=r6r7r�rrr	� test_symmetric_difference_update'sz,TestWeakSet.test_symmetric_difference_updatecCs\|jt|j�N_|j|jD]6}||jk||jkArH|�||j�q |�||j�q dSrr�r>rrr	�	test_ixor1s
zTestWeakSet.test_ixorcCsp|j��}||O}|�||j�||M}|�||j�||8}|�|t��|j��}||N}|�|t��dSr)r'ryr:r)rrsrrr	�test_inplace_on_self9s

z TestWeakSet.test_inplace_on_selfcCs�|�|j|jk�|�|jt|j�k�|�|jt|j�k�|�|jt|j�k�|�|jt|j�k�|�|jttg�k�|�|jdk�dS)Nr9)	rPr'rrr\r0rCrDrr
rrr	�test_eqEszTestWeakSet.test_eqcCs4|�|jt|j�k�t�}t�}|�||k�dSr)rPr'r0rrr\)r�s1�s2rrr	�test_neOszTestWeakSet.test_necCsrdd�dD�}t|�}t|�}t|�|d=t��|�tt|��t|�t|�dg�~|�t|�t|��dS)NcSsg|]}t|��qSrrrrrr	rXszATestWeakSet.test_weak_destroy_while_iterating.<locals>.<listcomp>r���r9)	r�iter�nextrFrGr2r;rCr:)rrr'�itrrr	�!test_weak_destroy_while_iteratingUs$z-TestWeakSet.test_weak_destroy_while_iteratingc	sdd�tjD��t���tj��fdd��}|��}|�|��W5QRX|��}|�t�j|�W5QRX|�|��|��}��	|�W5QRX|�
|�����}|��}��|�W5QRX|�
t��t|��|��}���W5QRX|�
t��d�dS)NcSsg|]}t|��qSrrrrrr	rgszLTestWeakSet.test_weak_destroy_and_mutate_while_iterating.<locals>.<listcomp>c3sVzJt��}ttt|���}tt�����}||kr:t|�t��|VW5d}XdSr)r�r�strr�rErFrG)r�ZyieldedrH�rr'rr	�testcontextis
zMTestWeakSet.test_weak_destroy_and_mutate_while_iterating.<locals>.testcontextr)r$r%r�
contextlib�contextmanagerr=r6r~rmrlr2ryr�r:r;rw)rr�rHrsrr�r	�,test_weak_destroy_and_mutate_while_iteratinges&z8TestWeakSet.test_weak_destroy_and_mutate_while_iteratingcCs�d}dd�t|�D�}t|�}~t|�}zt|�Wntk
rHYnXt��t|�}~t��t|�}|�|d�|�	|d�dS)N�cSsg|]
}t��qSr�r
rbrrr	r�sz/TestWeakSet.test_len_cycles.<locals>.<listcomp>)rr9r)
rdrr�r��
StopIterationrFrGr;r2r:)r�Nrr'r��n1�n2rrr	�test_len_cycles�s zTestWeakSet.test_len_cyclesc	Cs�|jtjft����tdd�D]�}d}t�d�t�|||�dd�t|�D�}t|�}~t|�}zt|�Wnt	k
r�YnXt
|�}~t
|�}|�|d�|�||�|�|d�|�||�q dS)Nr9�dr�rcSsg|]
}t��qSrr�rbrrr	r�sz-TestWeakSet.test_len_race.<locals>.<listcomp>)
Z
addCleanuprFZ
set_thresholdZ
get_thresholdrdrGrr�r�r�r;ZassertGreaterEqualZassertLessEqual)rZthr�rr'r�r�r�rrr	�
test_len_race�s(
zTestWeakSet.test_len_racecCsdSrrr
rrr	�	test_repr�szTestWeakSet.test_reprN)0rrrr-r4r8r<r?rJrMrOrRrSrVrWrYrZr_r`rargrprqrtrvrxr{r}rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr	rsZ	
	



%r�__main__)Zunittest�weakrefrr$�collectionsrrrFr�rr
ZTestCaserr�mainrrrr	�<module>s+