Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_weakset.cpython-34.pyc

�
f f�<�@s8ddlZddlmZddlmZmZmZddlZddlZddl	Z	ddl
Z
ddlmZm
Z
ddlZddlZddlZddlmZddlZddlZGdd�d�ZGdd	�d	�ZGd
d�dej�Zddd
�Zedkr4edd�ndS)�N)�support)�proxy�ref�WeakSet)�	randrange�shuffle)�
UserStringc@seZdZdS)�FooN)�__name__�
__module__�__qualname__�r
r
�6/opt/alt/python34/lib64/python3.4/test/test_weakset.pyr	sr	c@seZdZdd�ZdS)�RefCyclecCs
||_dS)N)�cycle)�selfr
r
r�__init__szRefCycle.__init__N)r
rrrr
r
r
rrs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
rrs	�x�y�zcSsg|]}t|��qSr
)r)rrr
r
rrs	ZabcSsg|]}t|��qSr
)r)rrr
r
rr s	ZabcdecSsg|]}t|��qSr
)r)rrr
r
rr!s	�defcSsg|]}t|��qSr
)r)rrr
r
rr%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�}xLtt�D]>}|dks|jd�r@qn|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_init3szTestWeakSet.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_len6s"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_unionEs2,

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_orVs 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_intersection[s2&

zTestWeakSet.test_intersectioncCsI|j|jjt|j���|j|jjt|j���dS)N)�
assertTruer'�
isdisjointrr r&)rr
r
r�test_isdisjointjs"zTestWeakSet.test_isdisjointcCsY|jj|j�}|j|jt|j�@|�|j|jt|j�@|�dS)N)r'rLr r:r0rA)rrJr
r
r�test_andns 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_differencess2zTestWeakSet.test_differencecCsY|jj|j�}|j|jt|j�|�|j|jt|j�|�dS)N)r'rRr r:r0rA)rrJr
r
r�test_sub{s 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_difference�s0,

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
rrrfr
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,r	rNr;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_setszTestWeakSet.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_ixor9s
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_selfAs



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_eqMszTestWeakSet.test_eqcCsH|j|jt|j�k�t�}t�}|j||k�dS)N)rNr'r0rrrY)r�s1�s2r
r
r�test_neWs		zTestWeakSet.test_necCs�dd�dD�}t|�}t|�}t|�|d=tj�|jtt|��t|�t|�dg�~|jt|�t|��dS)	NcSsg|]}t|��qSr
)r)rrr
r
rr`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!sFdd�tjD��t���tj��fdd��}|��}|j|��WdQX|��}|jt�j|�WdQX|j|��|��}�j	|�WdQX|j
|���j�}|��}�j|�WdQX|j
t��t|��|��}�j�WdQX|j
t��d�dS)NcSsg|]}t|��qSr
)r)rrr
r
rros	zLTestWeakSet.test_weak_destroy_and_mutate_while_iterating.<locals>.<listcomp>c
3svzht��}ttt|���}tt�j���}||krXt|�ntj�|VWdd}XdS)N)r�r�strr�rDrErF)r�ZyieldedrG)rr'r
r�testcontextqs

	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_iteratingms$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
rr�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
rr�s	z-TestWeakSet.test_len_race.<locals>.<listcomp>)
Z
addCleanuprEZ
set_thresholdZ
get_thresholdr`rFrr�r�r�r;ZassertGreaterEqualZassertLessEqual)rZthr�rr'r�r�r�r
r
r�
test_len_race�s(

zTestWeakSet.test_len_raceN)/r
rrr-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
rrsX	
	



%rcCstjt�dS)N)rZrun_unittestr)�verboser
r
r�	test_main�sr��__main__r�T)ZunittestZtestr�weakrefrrr�operatorrur$�osZrandomrr�sys�warnings�collectionsrrrEr�r	rZTestCaserr�r
r
r
r
r�<module>s(��