Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_weakset.cpython-35.opt-2.pyc



���]U<�@sddlZddlmZmZmZddlZddlZddlZddlZddl	m
Z
mZddlZddl
Z
ddlZddlmZddlZddlZGdd�d�ZGdd�d�ZGd	d
�d
ej�Zedkrej�dS)�N)�proxy�ref�WeakSet)�	randrange�shuffle)�
UserStringc@seZdZdS)�FooN)�__name__�
__module__�__qualname__�rr�1/opt/alt/python35/lib64/python3.5/test_weakset.pyrsrc@seZdZdd�ZdS)�RefCyclecCs
||_dS)N)�cycle)�selfrrr
�__init__szRefCycle.__init__N)r	r
rrrrrr
rs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/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.dYS)Z�TestWeakSetcCsdd�dD�|_dd�dD�|_d
d�dD�|_dd�d
D�|_dd�dD�|_t|j�|_t|j�|_t|j�|_dd�t	j
D�|_t|j�|_t
j|j�|_td�|_t|jg�|_dS)NcSsg|]}t|��qSr)�ustr)�.0�crrr
�
<listcomp>s	z%TestWeakSet.setUp.<locals>.<listcomp>�a�brcSsg|]}t|��qSr)r)rrrrr
rs	�x�y�zcSsg|]}t|��qSr)r)rrrrr
rs	�abcSsg|]}t|��qSr)r)rrrrr
rs	ZabcdecSsg|]}t|��qSr)r)rrrrr
r s	�defcSsg|]}t|��qSr)r)rrrrr
r$s	�F)rrr)rrr)�items�items2Zab_itemsZabcde_itemsZ	def_itemsr�
ab_weakset�
abcde_weakset�def_weakset�string�
ascii_letters�letters�s�dict�fromkeys�dr�obj�fs)rrrr
�setUpszTestWeakSet.setUpcCs\tt�}xItt�D];}|dks|jd�r=q|j||d|�qWdS)NZ
test_c_api�_zWeakSet missing method )�dirr�set�
startswith�assertIn)rZweaksetmethods�methodrrr
�test_methods*szTestWeakSet.test_methodscCs|jttgd�dS)N�)�assertRaises�	TypeErrorr)rrrr
�test_new_or_init2szTestWeakSet.test_new_or_initcCs^|jt|j�t|j��|jt|j�d�|`|jt|j�d�dS)N�r)�assertEqual�lenr'r*r,r+)rrrr
�test_len5s"zTestWeakSet.test_lencCs�x3|jD](}|j||jk||jk�q
W|jd|j�|j|j|j�|`|jtd�|j�dS)Nr9r)	r&r:r'r*�assertNotInr2r+r,r)rrrrr
�
test_contains;s&zTestWeakSet.test_containscCs|jj|j�}x?|jD]4}|j||k||jkpO||jk�qW|j|jt|j��|jt|�t�|j	t
|jjgg�xdttt
jttfD]J}t|j|j�}||j�}|j|jj|�|�~q�W|jt|�t|j�t|j��|jj�tj�|jt|�t|j�t|j��dS)N)r'�unionr r&r:r*rr�typer6r7r0�	frozensetr(r)�list�tupler;�pop�gc�collect)r�ur�Crrrr
�
test_unionDs2,

zTestWeakSet.test_unioncCsY|jj|j�}|j|jt|j�B|�|j|jt|j�B|�dS)N)r'r?r r:r0rA)r�irrr
�test_orUs zTestWeakSet.test_orcCs<t|j�}|j|j�}x?|jD]4}|j||k||jko[||jk�q+W|j|t|j��|jt|�t�xNtttj	t
tfD]4}tg�}|j|j||j��|�q�W|jt
|�t
|j��|jj�tj�|jt
|�t
|j��dS)N)rr&�intersectionr r:r@r0rAr(r)rBrCrr;rDrErF)rr'rJrrHrrrr
�test_intersectionZs2&

zTestWeakSet.test_intersectioncCsI|j|jjt|j���|j|jjt|j���dS)N)�
assertTruer'�
isdisjointrr r&)rrrr
�test_isdisjointis"zTestWeakSet.test_isdisjointcCsY|jj|j�}|j|jt|j�@|�|j|jt|j�@|�dS)N)r'rLr r:r0rA)rrJrrr
�test_andms zTestWeakSet.test_andcCs�|jj|j�}x?|jD]4}|j||k||jkoO||jk�qW|j|jt|j��|jt|�t�|j	t
|jjgg�dS)N)r'�
differencer r&r:r*rrr@r6r7)rrJrrrr
�test_differencers2zTestWeakSet.test_differencecCsY|jj|j�}|j|jt|j�|�|j|jt|j�|�dS)N)r'rRr r:r0rA)rrJrrr
�test_subzs zTestWeakSet.test_subcCs|jj|j�}x=|jD]2}|j||k||jk||jkA�qW|j|jt|j��|jt|�t�|j	t
|jjgg�|jt|�t|j�t|j��|jj�t
j�|jt|�t|j�t|j��dS)N)r'�symmetric_differencer r&r:r*rrr@r6r7r;rDrErF)rrJrrrr
�test_symmetric_differences0,

z%TestWeakSet.test_symmetric_differencecCsY|jj|j�}|j|jt|j�A|�|j|jt|j�A|�dS)N)r'rUr r:r0rA)rrJrrr
�test_xor�s zTestWeakSet.test_xorcCs�|j|j|jk�|j|j|jk�|j|j|jk�|j|j|jk�|j|j|jk�|jtd�jd��|jtd�jd��|jtd�jd��|jtd�jd��dS)Nr�abcZcbs)rNr!r"�assertFalser#r0�issubset�
issuperset)rrrr
�test_sub_and_super�szTestWeakSet.test_sub_and_supercCsh|j|j|jk�|j|j|jk�|j|j|jk�|jt�t�k�dS)N)rNr!r"rYr#r)rrrr
�test_lt�szTestWeakSet.test_ltcCsh|j|j|jk�|j|j|jk�|j|j|jk�|jt�t�k�dS)N)rNr"r!rYr#r)rrrr
�test_gt�szTestWeakSet.test_gtcCsXtdd�td�D��}x2|D]*}||_||_t|g�|_q&WdS)Ncss|]}t�VqdS)N)r)rrJrrr
�	<genexpr>�sz&TestWeakSet.test_gc.<locals>.<genexpr>i�)r�ranger�subr0)rr'�elemrrr
�test_gc�s

		zTestWeakSet.test_gccCspGdd�dt�}|�}t�}|j|�|j||�|j|�|j|�|j|�dS)Nc@seZdZdd�ZdS)z5TestWeakSet.test_subclass_with_custom_hash.<locals>.HcSstt|�d@�S)Ni���)�int�id)rrrr
�__hash__�sz>TestWeakSet.test_subclass_with_custom_hash.<locals>.H.__hash__N)r	r
rrfrrrr
�H�srg)rr0�addr2�remove�discard)rrgr'�frrr
�test_subclass_with_custom_hash�s		


z*TestWeakSet.test_subclass_with_custom_hashcCs�t�}|j|j�|j||j�|j|j�|j|t|j��|jt|j|d�|jt|jd�dS)Nr5r9)rrrr:r'r r6r7)rr'rrr
�	test_init�s	zTestWeakSet.test_initcCs;t|j�}t|�}|jt|�t|��dS)N)rr�assertNotEqualre)rr'�trrr
�test_constructor_identity�sz%TestWeakSet.test_constructor_identitycCs|jtt|j�dS)N)r6r7�hashr')rrrr
�	test_hash�szTestWeakSet.test_hashcCsC|jj�|j|jtg��|jt|j�d�dS)Nr)r'�clearr:rr;)rrrr
�
test_clear�s
zTestWeakSet.test_clearcCsE|jj�}|j|j|�|jt|j�t|��dS)N)r'�copyr:rnre)r�duprrr
�	test_copy�szTestWeakSet.test_copycCs�td�}|jj|�|j||j�|jj�}|jj|�|j|j|�|jt|jjg�|jjt	��|j
t|j�dk�|jj|j�|j
t|j�dk�dS)N�Qr9)
rr'rhr2rur:r6r7r,rrNr;r+)rrrvrrr
�test_add�szTestWeakSet.test_addcCsetd�}|jj|�|j||j�|jt|jj|�|jt|jjg�dS)Nr)rr'rir=r6�KeyErrorr7)rrrrr
�test_remove�s
zTestWeakSet.test_removecCsitd�td�}}|jj|�|j||j�|jj|�|jt|jjg�dS)Nrrx)rr'rjr=r6r7)rr�qrrr
�test_discard�s
zTestWeakSet.test_discardcCs\x?tt|j��D](}|jj�}|j||j�qW|jt|jj�dS)N)r`r;r'rDr=r6rz)rrJrbrrr
�test_pop�szTestWeakSet.test_popcCss|jj|j�}|j|d�x+|j|jD]}|j||j�q6W|jt|jjgg�dS)N)r'�updater r:rr2r6r7)r�retvalrrrr
�test_update�s
zTestWeakSet.test_updatecCsK|jjt|j��x+|j|jD]}|j||j�q*WdS)N)r'rr0r rr2)rrrrr
�test_update_set�szTestWeakSet.test_update_setcCsJ|jt|j�O_x+|j|jD]}|j||j�q)WdS)N)r'r0r rr2)rrrrr
�test_iorszTestWeakSet.test_iorcCs�|jj|j�}|j|d�x_|j|jD]M}||jkrp||jkrp|j||j�q6|j||j�q6W|jt|jjgg�dS)N)	r'�intersection_updater r:rr2r=r6r7)rr�rrrr
�test_intersection_update	sz$TestWeakSet.test_intersection_updatecCs~|jt|j�M_x_|j|jD]M}||jkrc||jkrc|j||j�q)|j||j�q)WdS)N)r'r0r rr2r=)rrrrr
�	test_iands
zTestWeakSet.test_iandcCs�|jj|j�}|j|d�x_|j|jD]M}||jkrp||jkrp|j||j�q6|j||j�q6W|jt|jjgg�|jt|jj	gg�dS)N)
r'�difference_updater r:rr2r=r6r7�symmetric_difference_update)rr�rrrr
�test_difference_updatesz"TestWeakSet.test_difference_updatecCs~|jt|j�8_x_|j|jD]M}||jkrc||jkrc|j||j�q)|j||j�q)WdS)N)r'r0r rr2r=)rrrrr
�	test_isub&s
zTestWeakSet.test_isubcCs�|jj|j�}|j|d�x]|j|jD]K}||jk||jkArn|j||j�q6|j||j�q6W|jt|jjgg�dS)N)	r'r�r r:rr2r=r6r7)rr�rrrr
� test_symmetric_difference_update.sz,TestWeakSet.test_symmetric_difference_updatecCs||jt|j�N_x]|j|jD]K}||jk||jkAra|j||j�q)|j||j�q)WdS)N)r'r0r rr2r=)rrrrr
�	test_ixor8s
zTestWeakSet.test_ixorcCs�|jj�}||O}|j||j�||M}|j||j�||8}|j|t��|jj�}||N}|j|t��dS)N)r'rur:r)rrorrr
�test_inplace_on_self@s



z TestWeakSet.test_inplace_on_selfcCs�|j|j|jk�|j|jt|j�k�|j|jt|j�k�|j|jt|j�k�|j|jt|j�k�|j|jttg�k�|j|jdk�dS)Nr9)	rNr'rrrYr0rBrCr)rrrr
�test_eqLszTestWeakSet.test_eqcCsH|j|jt|j�k�t�}t�}|j||k�dS)N)rNr'r0rrrY)r�s1�s2rrr
�test_neVs		zTestWeakSet.test_necCs�dd�dD�}t|�}t|�}t|�|d=tj�|jtt|��t|�t|�dg�~|jt|�t|��dS)	NcSsg|]}t|��qSr)r)rrrrr
r_s	zATestWeakSet.test_weak_destroy_while_iterating.<locals>.<listcomp>rrrr9)rrr���)	r�iter�nextrErFr2r;rBr:)rrr'�itrrr
�!test_weak_destroy_while_iterating\s

2z-TestWeakSet.test_weak_destroy_while_iteratingc&sKdd�tjD��t���tj��fdd��}|��}|j|��WdQRX|��}|jt�j|�WdQRX|j|��|��}�j	|�WdQRX|j
|���j�}|��}�j|�WdQRX|j
t��t|��|��}�j�WdQRX|j
t��d�dS)NcSsg|]}t|��qSr)r)rrrrr
rns	zLTestWeakSet.test_weak_destroy_and_mutate_while_iterating.<locals>.<listcomp>c
3sszet��}ttt|���}tt�j���}||krUt|�tj�|VWdd}XdS)N)r�r�strr�rDrErF)r�ZyieldedrG)rr'rr
�testcontextps

	zMTestWeakSet.test_weak_destroy_and_mutate_while_iterating.<locals>.testcontextr)r$r%r�
contextlib�contextmanagerr=r6rzrirhr2rurr:r;rs)rr�rGror)rr'r
�,test_weak_destroy_and_mutate_while_iteratingls$z8TestWeakSet.test_weak_destroy_and_mutate_while_iteratingcCs�d}dd�t|�D�}t|�}~t|�}yt|�Wntk
r\YnXtj�t|�}~tj�t|�}|j|d�|j	|d�dS)N�cSsg|]}t��qSr)r)rrJrrr
r�s	z/TestWeakSet.test_len_cycles.<locals>.<listcomp>rr9)rr9)
r`rr�r��
StopIterationrErFr;r2r:)r�Nrr'r��n1�n2rrr
�test_len_cycles�s 


zTestWeakSet.test_len_cyclescCs|jtjtj��x�tdd�D]�}d}tjd�tj|||�dd�t|�D�}t|�}~t|�}yt|�Wnt	k
r�YnXt
|�}~t
|�}|j|d�|j||�|j|d�|j||�q)WdS)Nr9�dr�rcSsg|]}t��qSr)r)rrJrrr
r�s	z-TestWeakSet.test_len_race.<locals>.<listcomp>)
Z
addCleanuprEZ
set_thresholdZ
get_thresholdr`rFrr�r�r�r;ZassertGreaterEqualZassertLessEqual)r�thr�rr'r�r�r�rrr
�
test_len_race�s(

zTestWeakSet.test_len_raceN)/r	r
rr-r4r8r<r>rIrKrMrPrQrSrTrVrWr\r]r^rcrlrmrprrrtrwryr{r}r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
rsX	
	



%r�__main__)Zunittest�weakrefrrr�operatorrur$�os�randomrr�sys�warnings�collectionsrrrEr�rrZTestCaserr	�mainrrrr
�<module>s$��