%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib64/python3.7/site-packages/guppy/sets/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/guppy/sets/__pycache__/test.cpython-37.pyc

B

�]͵�@s�ddlTddlZddlmZddlZddlZddlZyddlZ	Wne
k
rXdZYnXdZerldd�Zndd�Ze
�ZeZeZe
ZeZeZdd	�Zd
d�Zdd
�Zd?dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z dd�Z!d@dd �Z"Gd!d"�d"e�Z#d#d$�Z$dAd&d'�Z%d(d)�Z&d*d+�Z'd,d-�Z(d.d/�Z)d0d1�Z*d2d3�Z+Gd4d5�d5�Z,Gd6d7�d7�Z-dBd8d9�Z.d:d;�Z/d<d=�Z0e,�Z1e2d>k�r�e0�dS)C�)�*N)�process_time�cCsttttj�|||g���S)N)�list�map�int�numpy�randomZrandom_integers)�low�high�length�r
�B/opt/alt/python37/lib64/python3.7/site-packages/guppy/sets/test.py�random_integers_listsrcs��fdd�t|�D�S)Ncsg|]}t�����qSr
)r	�randint)�.0�i)rr
r
r�
<listcomp>sz(random_integers_list.<locals>.<listcomp>)�range)r
rrr
)rr
rrscCs,|||B@|kst�|||@B|ks(t�dS)N)�AssertionError)�a�br
r
r�
absorption#srcCs<||@|@|||@@kst�||B|B|||BBks8t�dS)N)r)rr�cr
r
r�associative(srcCs,||@||@kst�||B||Bks(t�dS)N)r)rrr
r
r�commutative-srcCs�|dkr>||@||Bks"t�||B||@ks~t�n@|||@||||Bks^t�|||B||||@ks~t�dS)N)r)rrrr
r
r�deMorgan2s
 rcCs$||@|kst�||B|ks t�dS)N)r)rr
r
r�idempotence;srcCsD||@|kst�||@|ks t�||B|ks0t�||B|ks@t�dS)N)r)rrr
r
r�	inclusion@srcCs�|||@B||B||B@ks t�|||B@||@||@Bks@t�||@||@B||@B||B||B@||B@kstt�||@||@kr�||B||Bkr�||ks�t�dS)N)r)rrrr
r
r�distributiveGs  4rcCsxxr|D]j}t|�x\|D]T}t||�t||�t||�x0|D](}t|||�t|||�t|||�q@WqWqWdS)N)rrrrrrr)�as_�bsZcsrrrr
r
r�test_set_operationsNs





r"cCs,dd�}�x|D�]}�x
|D�]}|t|�t|�k||k�|||k||koV||k�|||k||ko�||ksz||ko�||k�|||k||ko�||ko�||ko�||k�|||k||ko�||k�|||k||ko�||k�|||k||k�o||k�s||k�o||k�qWqWdS)NcSs|r|st�dS)N)r)rrr
r
r�imp\sztest_set_sub.<locals>.imp)�len)r r!r#rrr
r
r�test_set_sub[s,.r%cCs�x�|D]�}t|�tt|��ks"t�t||@�t|�ks:t�t||B�t|�ksRt�x�|D]�}t||B�tt||B��ks|t�t||@�tt||@��ks�t�t||�tt||��ks�t�t||A�tt||A��ksXt�qXWqWdS)N)r$rr)r r!rrr
r
r�test_set_lenis

   r&cCs�xz|D]r}xl|D]d}|t|�B||Bks,t�|t|�||ksDt�|t|�@||@ks\t�|t|�A||Akst�qWqWdS)N)rr�tuple)r r!rrr
r
r�test_set_convertys

r(r
c
CsJtt|��}t�}x|D]}||�}qWt�}||}	|rB|	|fS|	SdS)N)rr�clock)
�f�args�N�retx�rZ	starttimer�xZendtime�elapsedr
r
r�eltime�s
r1c@s$eZdZdd�Zdd�Zdd�ZdS)�IdSetcCst�|t|�d�dS)N�)�bitsmut�append�id)�selfr/r
r
rr5�szIdSet.appendcCst�|t|�d�dS)Nr3)r4�remover6)r7r/r
r
rr8�szIdSet.removecCst�|t|�d�S)Nr3)r4�__contains__r6)r7r/r
r
rr9�szIdSet.__contains__N)�__name__�
__module__�__qualname__r5r8r9r
r
r
rr2�sr2cCs2|}x(|r,||A||@d>}}t||�qW|S)Nr)�print)rrrr
r
r�add�s
r>�@cCstt�||��S)N)rr	Z	randrange)Zlimr
r
rr�srcCsHt�}t�}t�d@}t�}t�}t�d@}|||>|||>}|S)N�)r)rrZashr�dZbshr.r
r
r�randlong�s

rBcCs&i}x|D]}||kr
d||<q
W|S)Nrr
)�l�ds�er
r
r�dictset�s

rFcCs t|�}t|���}|��|S)N)rFr�keys�sort)rCrDZksr
r
r�dslist�srIcCsHi}g}x:td�D].}x(td�}||kr|�|�d||<PqWqW|S)z? randlist(n, amp) -> list of n unique random ints in [-amp,amp]i'iP�r)rrr5)�nZamprD�rngrrr
r
r�randlist�s

rLcCs |j}x|D]}||�qWdS)N)r5)rr�ap�bitr
r
r�t_append�s
rOcCs(|j}x|D]}|t|�d�qWdS)Nr3)r5r6)rrrMrNr
r
r�t_append_id�s
rPc@s2eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdKdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%dFdG�Z&dHdI�Z'dJS)L�TestrcCsdS)Nr
)r7r
r
r�test0�sz
Test.test0c	CsLddl}|��}tdddg�gBtdddg�g@tdddg�dgBtdddg�ttd��Btdddg�ttddd��Bt�tg�td�td�td�tt��f}t||d	�x|D]}|tks�t�q�Wtd
�td�ttd�|d	�ttd
�|d	�ttd�|d	�ttdg�td�B|d	�tttdg��|d	�tttdg��|d	�td��	�}|}|dO}tt|�|d	�|dO}tt|�|d	�|ddgO}tt|�|d	�|dO}tt|�|d	�|tdg�O}tt|�||d	�|tdg�O}t|�}t||d	�||M}t||d	�|dM}t||d	�||O}|dM}tt|�|d	�||O}|ddgM}tt|�|d	�||O}|dM}tt|�|d	�||O}|tdg�M}t||d	�||O}|tdg�M}t|d|tdg�@|d	�|dN}t||d	�|dN}tt|�|d	�|ddgN}tt|�|d	�|dN}tt|�|d	�|tdg�N}t||d	�|dM}||O}||O}t|d||B||Btg�|B|d	�t|�}|dO}t||dBt|�t|�|d	�||N}t||d	�||M}t|t|�t|�|d	�|dO}t|t|�|d	�|dM}t|t|�|d	�|dN}t|t|�|d	�|dO}t|t|�|d	�|dM}t|t|�|d	�|dN}t|t|�|d	�|td�O}t|t|�|d	�|td�M}t|t|�|d	�||k�s�t�ttd�|d	�ttdg�|d	�ttdg�tdg�B|d	�|�
�dk�sHt�dS)Nrr����d���r
)�filei@li�)rTi@)����%rYzts&.Zmt������a�(ImmBitSet([]), ImmBitSet([]), ImmBitSet([]), ImmBitSet([]), ImmBitSet([]), ImmBitSet([]))
ImmBitSet([15])
ImmBitSet([4])
(~ImmBitSet([15]))
ImmBitSet([0, 1])
2
2
[0]
[0, 14]
[0, 3, 4, 14]
[0, 3, 4, 6, 8, 14]
[0, 3, 4, 6, 7, 8, 14] MutBitSet([0, 3, 4, 6, 7, 8, 14])
ImmBitSet([0, 3, 4, 6, 7, 8, 14, 37])
MutBitSet([0, 3, 4, 6, 7, 8, 14, 37])
MutBitSet([0])
[14]
[3, 4]
[6, 8]
MutBitSet([7])
MutBitSet([0, 3, 4, 7, 8, 14, 37]) ts&. ImmBitSet([0, 3, 4, 7, 8, 14, 37])
MutBitSet([3, 4, 7, 8, 14, 37])
[3, 4, 7, 8, 37]
[7, 8, 37]
[6, 7, 37]
MutBitSet([6, 37])
MutBitSet(~ImmBitSet([])) mt (~ImmBitSet([])) (~ImmBitSet([])) (~ImmBitSet([]))
MutBitSet(~ImmBitSet([])) (~ImmBitSet([])) -1 -1
MutBitSet([])
MutBitSet([]) 0 0
MutBitSet(~ImmBitSet([])) -1
MutBitSet(~ImmBitSet([0])) -2
MutBitSet([1]) 2
MutBitSet(~ImmBitSet([])) -1
MutBitSet(~ImmBitSet([0])) -2
MutBitSet([1]) 2
MutBitSet(~ImmBitSet([])) -1
MutBitSet(~ImmBitSet([0])) -2
(~ImmBitSet([]))
ImmBitSet([-1])
ImmBitSet([-1, 4])
)�io�StringIO�bitsetrrr=�Emptyrr�mutcopy�getvalue)	r7r_r*ZemptiesrE�msZmsa�ts�xsr
r
r�test1�s�

,
)z
Test.test1c	Cs��x�dd�td�D�D�]x}�xpdd�td�D�D�]X}g}�x|t|�t|�fD]�}x�|t|�t|�fD]�}g}|�||B�|�||@�|�||A�|�||B�|�||@�|�||A�|�||B�|�||@�|�||A�|�||B�|�||@�|�||A�|�|�qjWqRWxF|dd�D]6}x.t||d�D]\}}t|�|k�sft��qfW�qRWq2WqWdS)NcSsg|]
}t��qSr
)rB)rrr
r
rr�szTest.test2.<locals>.<listcomp>�
cSsg|]
}t��qSr
)rB)r�jr
r
rr�srr)rrar4r5�ziprr)	r7rrrf�ta�tb�trr.r/r
r
r�test2�s,z
Test.test2cCs�t�}t�}t�}t�}g}�x"|t|�t|�fD�]
}�x|t|�t|�fD]�}|d@rd||O}n"|d@rv||M}n|d@r�||N}x�|t|�t|�fD]�}g}	||O}|	�t|��||M}|	�t|��||N}|	�t|��||O}|	�t|��||M}|	�t|��||N}|	�t|��|�|	�q�WqNWq2WxF|dd�D]6}	x.t|	|d�D]\}
}t|
�|k�sdt��qdW�qPWdS)Nr�rTr)rBrrar4r5rrkr)r7�p�oprrrf�tprlrmrnr.r/r
r
r�test3�s>




z
Test.test3cCs�dd�}d}x�tdddd|jd�D]�}d|>}t|t|d||f�t|dt|�|f�t|dt|�t|�f�t|dt|�|f�t|dt|�t|�f�t|dt|�t|�f��q(WdS)	NcSsBx<|dkr<||O}||O}||O}||O}||O}|d8}qWdS)Nrrr
)rJr/�yr
r
r�f1�s
zTest.test4.<locals>.f1ri�ir�i�)r�fasterr=r1rar4)r7rvr/Zexprur
r
r�test4�s	 z
Test.test4c	Cs�i}xftd�D]Z}t�}d||<d||t�d<d||t�d<d||t�d<d||t�d<qWt|�}t|�}|��dd�}|t|�||�g}�x$|D�]}tt|��|ks�t�t}||B}t|�|ks�t�t}||B}t|�|ks�t�t}||O}t|�|k�st�tt�}||O}t|�|k�s8t�t}||A}t|�|k�sVt�t}||A}t|�|k�stt�t}||N}t|�|k�s�t�tt�}||N}t|�|k�s�t�t	}||@}t|�|k�s�t�t	}||@}t|�|k�s�t�t	}||M}t|�|k�st�tt	�}||M}t|�|k�s0t�t	}||A}|}t|�|k�sTt�t	}||A}|}t|�|k�sxt�t	}||N}|}t|�|k�s�t�tt	�}||N}|}t|�|ks�t�q�WdS)N�2r�cSstdd�|D��S)NcSsg|]}|df�qS)rr
)rrNr
r
rr�sz/Test.test5.<locals>.dictset.<locals>.<listcomp>)�dict)�bitsr
r
rrF�szTest.test5.<locals>.dictset)
rrrrHr'rarrbr4�Omega)	r7r}rrNZsbitsrFZseqs�seqr!r
r
r�test5�s�z
Test.test5cCs��x�t�fD�]�}�x�||t�fD�]�}t|�t|�k||kksFt�t|�t|�k||kksbt�t|�t|�k||kks�t�t|�t|�k||kks�t�t|�t|�k||kks�t�t|�t|�k||kks�t�t|�t|�k||kk�st�t|�t|�k||kk�s.t�t|�t|�k||kk�sLt�t|�t|�k||kk�sjt�t|�t|�k||kk�s�t�t|�t|�k||kk�s�t�t|�t|�k||kk�s�t�t|�t|�k||kks$t�q$WqWdS)N)rBrarr4)r7rrr
r
r�test6<s     &&z
Test.test6c
s~ddl}|���td�}tt|��d�|�d�tt|�|��t|��d�|�d�tt|�|�d�t|��d�|�d�tt|�|�d�t|��d�|�d�|�d�|�d�tt|�|��t|��d�tt|�|�d�t|��d�|�d�tt|��d�t�������dk�s.t	�dd	��d
d��dd
��dd���fdd�}d&�fdd�	}d'�fdd�	}�fdd�}�fdd�}�fdd�}�fdd�}	d(�fdd�	}
d|j
d }x�ttdd!|��ttdd"|��ttd!dd|��t
d!d#|j
d$�fD]P}t||�|	|�||�||��||�||�|
|�||d%�||d%�|
|d%��
�qWttd!��}t||�||��dS))Nr)rXrrWrprSz�MutBitSet([])
MutBitSet([1]) 1 MutBitSet([])
MutBitSet([1]) 1 MutBitSet([])
MutBitSet([1]) 1 MutBitSet([])
MutBitSet([1, 2, 3]) 3 MutBitSet([1, 2])
MutBitSet([1, 2]) 1 MutBitSet([2])
MutBitSet([])
cSs |j}x|D]}||�qWdS)N)r5)rrrMrNr
r
rr*rs
zTest.test7.<locals>.fcSs&d}x|D]}||kr
|d7}q
W|S)Nrrr
)rr�srNr
r
r�fluws

zTest.test7.<locals>.flucSsx|D]}d||<qWdS)Nrr
)rrrNr
r
r�g~s
zTest.test7.<locals>.gcSsx|D]}|t|�O}qWdS)N)�	bitsingle)rrrNr
r
r�h�s
zTest.test7.<locals>.hcSs:td�}t|||f�}t|�}|��|t|�ks6t�|S)Nr)r4r1rrHrar)rKr*re�tZsrngr
r
r�tms�szTest.test7.<locals>.tmscsF|dkrt|�}t|d|��}t�||fdd�\}}||ksBt�|S)Nr)r-)r$r4r1r)rKrJre�eltr�)r�r
r�tmslu�szTest.test7.<locals>.tmslucsF|dkrt|�}t|d|��}t�||fdd�\}}||ksBt�|S)Nr)r-)r$rar1r)rKrJrer�r�)r�r
r�tbslu�szTest.test7.<locals>.tbslucsd}dd�}t�||f�S)NrcSsx|D]}|d|>O}qWdS)Nrr
)rrrNr
r
rr*�s
z"Test.test7.<locals>.tlo.<locals>.f)r1)rK�lor*)r�r
r�tlo�szTest.test7.<locals>.tlocst�}dd�}t�||f�S)NcSsx|D]}|t|�O}qWdS)N)r�)rrrNr
r
rr*�s
z"Test.test7.<locals>.tbs.<locals>.f)rar1)rKr�r*)r�r
r�tbs�szTest.test7.<locals>.tbscsg}t�||f�S)N)r1)rKZls)r*r
r�tls�szTest.test7.<locals>.tlscsi}t�||f�S)N)r1)rKrD)r�r
r�tds�szTest.test7.<locals>.tdscsP|dkrt|�}tdd�|d|�D��}t�||fdd�\}}||ksLt�|S)NcSsg|]}|df�qS)rr
)rr/r
r
rr�sz-Test.test7.<locals>.tdslu.<locals>.<listcomp>r)r-)r$r|r1r)rKrJrDr�r�)r�r
r�tdslu�szTest.test7.<locals>.tdslurUi'i��iP�i@�rV)N)N)N)r_r`r4r=�strr5�popr8rdrrxrrrL)
r7r_rr�r�r�r�r�r�r�r��steprKr
)r*r�r�r�r�test7RsT






"z
Test.test7cCs�t}x�|�|g�|dg�fD]r}dgif}x|D]}|�|�q0Wx|D]}||ksHt�qHWx|D]}|�|�qbWx|D]}||kszt�qzWqWdS)Nrr
)r2r5rr8)r7ZBSr!�os�or
r
r�test8�s




z
Test.test8cCslxfdD]^}tt|��}t|�}t|�|ks.t�t|||�}t|�}t|�}t|�}t|�|kst�qWdS)N)i�i'i��)rrr4rrrIra)r7rr.�m�laZlasr!r
r
r�test9�s
z
Test.test9cCs\dd�}ttd��}td�||�|��td�||�tddd�}td�||�dS)NcSs6x0dD](}td|�ttt|d|�f��qWdS)N)i�i'i��i�zeltime(bitset, (la[:%d],)))r=r1ra)r�rr
r
r�tests�s
zTest.test10.<locals>.testsi�zla = range(400000)zla.reverse()i��z/la=random_integers_list(-400000,400000,400000)))rrr=�reverser)r7r�r�r
r
r�test10�szTest.test10cCsNtddd�}x<|dkrHtg�}d|_||O}td||j|j�|d8}qWdS)Ni��i�rrV�test11r)rr4Z_splitting_sizer=�	_indisize�_num_seg)r7rJr�rer
r
rr��s
zTest.test11c		Cs�xdD�]}t�}tt|��}||O}x0dD](}xt|�D]}|�|�q<W||O}q.W|j}x�dD]�}x�td|d|�D]�}g}x t|�D]}|�|�|��q�Wt|�gks�t�|dkr�|��||ks�t�tt|||��}||O}||jks�t�t|�|ks|t�q|WqfWqWdS)N)
� �@��rw�!�?�Ar@i)rWrrrirW)r4rrr�r�r5rr�)	r7r,rerKZpopixrjZindisizerZpopsr
r
r�test12s,

zTest.test12cCs�t�}|rt�|dN}|st�|�d�|s0t�t|�dgksDt�y|�d�Wntk
rfYn
Xtd��|�d�t|�gks�t�y|�d�Wntk
r�Yn
Xtd��|�d�y|��Wntk
r�Yn
Xtd��dS)NrWrzexpected ValueError for removezexpected ValueError for appendzexpected ValueError for pop)r4rr8r�
ValueErrorr5r�)r7rer
r
r�test13"s2


zTest.test13cCs�d}x�|D]�}tt|��tt|��ks*t�xb|D]Z}tt||��tt||��ksTt�x4dD],}tt|||��}tt|||��|ksZt�qZWq0Wq
WdS)N)i���i����i���i��i��i����rWrrrirwr�r�rVi�)
rrprSrTrUrYr[rwr�r�)r�bitrangerr)r7rgr��hir�r.r
r
r�test14Es

 
zTest.test14cCs�x�tdd�D]�}x�t|d|d�D]�}tt||��}t||�}|d|ksPt�|d|dksdt�t|�}|d|ks|t�|d|dks�t�d}x<|r�||}||�|�ks�t�||�|�ks�t�d|}q�Wq$WqWdS)Ni����"r�#rrW)rrr�rr4r�)r7rrrKr!rerr/r
r
r�test15Qs
zTest.test15c	Cs"xBtd�D]6}x0td�D]$}tt|�|>�t|�|>kst�qWq
Wtj}|d}tdg�}x*|||fD]}||>t|g�kslt�qlWdd�}|t|g�d�|t|g�d�|t|g�d>d�xTdD]L\}}xBdD]:}x4d	D],}t|||�|>t|||||�ks�t�q�Wq�Wq�WdS)
Nr�rrcSs.y||>Wntk
r Yn
Xtd��dS)Nzexpected OverflowError)�
OverflowErrorr)r!�shr
r
r�tsvts
zTest.test16.<locals>.tsvrW))rri)ri')i���i�)	i����i���i���rWrrr@r�i)rrprS)rrrar�sys�maxsizer�)	r7r��v�maxint�minintrr�rr�r
r
r�test16fs"(



zTest.test16cCs��xzdddttd��ttd��ttd��t�fD�]H}�x@dddttd��ttd��ttd��t�fD�]}�xt|�t|�t|�tt|��fD]�}x�||t|�t|�t|�tt|��fD]�}||k}|||kks�t�|||@|kks�t�|t|�t|�@t|�kk�st�||k}|||kk�s0t�|||k�oB||kk�sLt�|||k�oft|�t|�kks�t�q�Wq�WqfWq0WdS)Nrrrprwr�r�)rrrBrar4rr)r7rrr r!r�r
r
r�test17�s66,0"zTest.test17cCsttt���t�>ttt���t�>ttt���t�>ttt���t�>Bttt���t�>ttt���t�>Bg}tttdg�tt��tt��gdd�|D�}|dd�|D�}�xR|D�]H}t|kr�tks�nt�|t@tks�t�|tBtks�t�|t@|k�st�|tB|k�s t�||@tk�s4t�||Btk�sHt�ttk�sXt�ttk�sht�||k�szt�t|��x�|D�]v}||@||k�s�t�t||�t	||�t
||�t||�x&|D]}t|||�t
|||��q�W||k||@|kk�rd||B|kk�rd||@tkk�rd||kk�rd||Btkk�sjnt�||A||Ak�s�t�x8|D]0}||A|A|||AAk�s�t�t
|||��q�W|tA|k�s�t�||Atk�s�t�||A||@||@Bk�s�t��q�Wq�WdS)NrcSsg|]}|t�A�qSr
)rB)rrr
r
rr�szTest.test18.<locals>.<listcomp>cSsg|]}t|��qSr
)r4)rrr
r
rr�s)ra�absrBrrbr~rrrrrrrr)r7�anyrrrr
r
r�test18�sP




.D
zTest.test18cCs�d}dgtd|d�B��}x.td|dd�D]}|td|||�M}q,Wt|�}t|�dksbt�|dd�dddddd	d
ddd
g
ks�t�|ddks�t�|ddks�t�|S)Ni�rprSi&rirUr[��
����i�i�
i%i�)r�rcrr$r)r7r,Zprimesrr
r
r�test19�s(zTest.test19c$CsBtj}|d}�xdddddddd	d
ddd
ddd|d|f|d|df|d|df|d|df|d|df|d|f|d|df|d|df|d|df|d|dfd||fd||fd||f|||f|||df|||df|||df|||dff!D]$}t|�}t|�tt|��ks�t�q�Wyt||d�Wntk
�rLYn
Xtd��|j�sftd�x�tdddd|j�D]�}td|dd�tj	�
�x�td d!dd|j�D]z}xrtdddd|j�D]X}xP|||||f|||||ffD](}t|�}t|�tt|��k�s�t��q�W�q�W�q�W�q~Wtd"�dS)#Nr)r�)rw)r�)r�)rr�)rr�rp)rr�rp)rr�r�)r�Qr�)r�`r�)r�ar�)rr�r�)rr��)rr�r�)rr�r�r�rprTr��i@rWrzexpected OverflowErrorz>bitrange testing many combinations, this may take some time...r�rZr� )�endi�i
Zdone)r�r�r�rrrr�rxr=�stdout�flush)r7r�r�r�brrC�st�argr
r
r�test20�sn



2zTest.test20cCsxi}td�}td�}|}|}d||<d||<||||krLdksRnt�||||krndkstnt�dS)NrrW)r�r)r7�DrrrrAr
r
r�test21's"zTest.test21cCs�dd�td�D�}|dd�dD�}|dd�|D�}|dd�|D�}xP|D]H}xBdD]:}t�||�}t�|�}||ks~t�t|�t|�ksXt�qXWqNWdS)	NcSsg|]
}t��qSr
)ra)rr/r
r
rr5szTest.test22.<locals>.<listcomp>ricSs,g|]$}dD]}dD]}t|||��qqqS))i�)rrSi,)r�)rr/ru�zr
r
rr6s)i���ri�cSsg|]
}|�qSr
r
)rr/r
r
rr:scSsg|]}t|��qSr
)r4)rr/r
r
rr;s)rr)r�pickle�dumps�loadsr�type)r7r�r�binZda�aar
r
r�test223s



zTest.test22cCs�Gdd�d�}ttd��}||�}t|�}t|�|ks:t�||dg�B}t|�|dgks^t�t|�}||ksrt�||dg�O}||ks�t�dS)Nc@seZdZdd�Zdd�ZdS)zTest.test23.<locals>.TcSs
||_dS)N)�data)r7r�r
r
r�__init__HszTest.test23.<locals>.T.__init__cSs
t|j�S)N)�iterr�)r7r
r
r�__iter__KszTest.test23.<locals>.T.__iter__N)r:r;r<r�r�r
r
r
r�TGsr�rirV)rrrarr4)r7r�rCr�rZbo100rer
r
r�test23CszTest.test23cCsdd�}t|ddd�\}}t|�|dks.t�td�}dd	�}t||fdd�\}}t|�|d
ksft�|��}dd�}t||fdd�\}}t|�|d
ks�t�dd�}dd�}	x@||	fD]4}
|��}t|
|fdd�\}}t|�|d
ks�t�q�W|��}dd�}t||fdd�\}}t|�|d
k�s*t�dd�}dd�}
dd�}x>||
|fD]0}
t|
|fdd�\}}t|�|dk�sNt��qNWx�||
|fD]r}
td�tdd�B}|��}|td�O}|jdk�s�t�td|j�t|
|fdd�\}}t|�|dk�s�t��q�WdS) NcSst|���dS)Nr)r�rc)rJr
r
rrv`szTest.test24.<locals>.f1)i���r)r-ri���cSs |��}|dM}|d|dfS)Nr]r)rc)r!rer
r
r�f2iszTest.test24.<locals>.f2)rrcSst|�}|d|dfS)Nr)ra)rer!r
r
r�f3vszTest.test24.<locals>.f3)rrcSs t|�}|dM}|d|dfS)Nr]r)ra)rer!r
r
r�f4~szTest.test24.<locals>.f4cSs(|dO}t|�}|dN}|d|dfS)Nrr)ra)rer!r
r
r�f4b�szTest.test24.<locals>.f4bcSs|��}|d|dfS)Nr)rc)re�mcr
r
r�f5�szTest.test24.<locals>.f5cSs:|td�M}|��}|dgO}|dgO}|d|dfS)Nr{rprTr)r�rc)rer�r
r
r�f6�s


zTest.test24.<locals>.f6cSs:|td�M}|��}|dgO}|dgO}|d|dfS)Nr{rTrpr)r�rc)rer�r
r
r�f6a�s


zTest.test24.<locals>.f6acSsT|td�M}|dgO}|��}|ddgO}|dgO}|td�M}|d|dfS)Nr{rZrrTrpr)r�rcr�)rer�r
r
r�f6b�s

zTest.test24.<locals>.f6b)rprTi��i@
i�i�IZnum_seg)r1r=rr�rcr�r�)r7rvr�r�r!r�rer�r�r�r*r�r�r�r�r
r
r�test24\sTzTest.test24cCsltttj�d�}t|�ttj�dks,t�tttj��tjksDt�tttjd��tjdksht�dS)Nr)rarr�r�r)r7r!r
r
r�test25�szTest.test25c
Cs�x�ddddddddtd	�g	D]�}x�|fd|d
d
fgD]x}t|�}tt|fdd�\}}|d
krht||�||kstt�t|�}tt|fdd�\}}|d
kr�t||�||ks6t�q6WqWdS)Nrr{r�rwr�i�iig�cArSr)r-g{�G�z�?)rr�r1r$r=rr4)r7Zthelenr+r!r�r�r
r
r�test26�s 

zTest.test26cCs�x�td�td�ttt���fD]t}xn||��fD]^}xXdD]P}|d|�tt|�d|��ksbt�||d�tt|�|d��ks:t�q:Wq0WqWdS)Nr�)rrprS�rwr�r�r�r�r�r�)rar�r�rBrcrr)r7rr�rr
r
r�test27�s
"
$zTest.test27cCstxnt�tt�tdg�@�fD]L}|�d�dks6t�|�d�dksHt�|�d�dksZt�|�d�dks t�q WdS)N�rr)r4ra�tasr�tac)r7r�r
r
r�test28�s
$zTest.test28cCs�dd�}td�}||�tdd�tdd�B}|��}|td�O}|jd	ksNt�||�d
dd	dd
t�t�f}dd�|D�}|dd�|D�}xH|D]@}|��}|��}x*|D]"}||8}||M}||ks�t�q�Wq�WdS)NcSs�|��}|�d�||kst�|�d�||ks4t�|�d�||ksJt�|�d�||ks`t�|�d�||ksvt�||}|tg�ks�t�dS)Nr�rW)rcr>rr5�discardr8r4)rq�qr.r
r
rr�s




zTest.test29.<locals>.ti90r�i��i@
i�i�IrrrWr]rpcSsg|]}t|��qSr
)r4)rrr
r
rr%szTest.test29.<locals>.<listcomp>cSsg|]}t|��qSr
)r4)rrr
r
rr&s)r4r�rcr�r�rrB)r7r�rer!�allrr�rr
r
r�test29s$


zTest.test29c
Cs&t}t�}|}g}d}i}d}d}|�|�|�|�|||g�O}|�|�rRt�||gN}|||||||g�ksvt�||gN}||||||g�ks�t�|�|�s�t�|||||g�ks�t�|||g�8}||||g�ks�t�|�|�|||g�ks�t�|�|�||g�k�st�|�|�|�	�|k�s2t�y|�	�Wnt
k
�rTYn
Xtd��||k�slt�t|�}|||g�O}|||g�k�s�t�||k	�s�t�|}	|||g�8}||	k	�s�t�||g�k�s�t�tdddg�}t|�dk�s�t�|��t|�dk�st�t
|�gk�s"t�dS)Nr
r�zexpected ValueErrorrrprS)�
immnodeset�
mutnodesetr>r5r�rr�r8r�r�r�r$�clearr)
r7Znodeset�nsZns0rrrrArEZns1r
r
r�test30/sZ






zTest.test30cCs�t}ddlm}g}g}g}||�}||�}||�}|�}	|	�|�||	ksPt�||	ks\t�|	�|�||	ksrt�|	�|�dks�t�||	ks�t�|d||�ks�t�|d||�ks�t�|d||�ks�t�|	�|�dks�t�|	�|�dks�t�|	�|�dk�st�|	�|�|	�	|�y|	�|�Wnt
k
�r<Yn
Xtd��|	�	|�y|	�	|�Wnt
k
�rtYn
Xtd��|||�k�s�t�|||�k�s�t�|||�k�s�t�|	�|�|	�|�|	�|�d}	|||�k�s�t�|||�k�s�t�|||�k�st�ddl}
|�}	|	�|�|	�|	�|	|	k�s<t�d}	|
��|||�k�sZt�|�}	|	�|�|	�|�|�|	�d}	d}|
��|||�k�s�t�dS)Nr)�getrefcountrzno exception from appendzno exception from remove)
r�r�r�r>rr5r�r�r�r8r��gc�collect)r7�H�grc�e1�e2�e3�r1�r2�r3r�rr
r
r�test31|sz












zTest.test31cs�t�ddl}ddlm}|��g}g}g}||�}||�}||�}�||g�}	||	krh||	krh||	kslt��||g�}
|	|
O}	||	ks�t�||	ks�t�|	|
M}	||	ks�t�||	ks�t�g|g||g|||g|g||g|g||||gf}�fdd�|D�}t|||�t||�t||�t	||�xd|D]\}
xT|D]L}xDdD]<}yt
||
|d�i�Wntk
�rnYn
Xtd���q>W�q4W�q*Wd}}	}
}}
}}}|��|��|||�k�s�t�|||�k�s�t�|||�k�s�t�dS)Nr)r�csg|]}�|��qSr
r
)rr/)rr
rr�szTest.test32.<locals>.<listcomp>)zassert list(b) | a == a | bzassert list(b) & a == a & b)rrzExpected TypeError)
r�rr�r�rrr"r&r%r(�exec�	TypeError�	Exception)r7rrrrrrrr	r�Zs3r�Zssrrr/rr
)rr�test32�sP0




 zTest.test32cCs�d}t�}x6t|�D]*}|t|ddd|ddd�O}qW|��}g}|jdks\t�xPt|d�D]@}|�|���|t|dddd�O}|j|dksjt�qjWx@t|d�D]0}|||ks�t�|t|dddd�O}q�WdS)Nr�rpi��riP�)rarr�rcr�rr5r�)r7Znumsegr!rreZmssr
r
r�test33s
*zTest.test33cCsFt}g}Gdd�d|�}|�}||ks*t�|�|g�||ksBt�dS)Nc@seZdZdd�ZdS)zTest.test34.<locals>.XcSsx|D]}|�|�qWdS)N)r5)r7rurEr
r
r�extend4s
zTest.test34.<locals>.X.extendN)r:r;r<rr
r
r
r�X3sr)Z
MutNodeSetrr)r7rrrr�r
r
r�test34-szTest.test34cs�x�td�D]�}x�ttfD]ډG�fdd�d��}|�}|dd�}t|�ddgksTt���|�dksft���|td��dks~t���|td��d	ks�t���|d
�dks�t���|d�d
ks�t��tkr|dd�}ddl}t	|j
j�|��dkst�qWq
WdS)Nrpcs>eZdZdddgZ�fdd�Z�fdd�Zdd	�Zd
d�ZdS)
zTest.test35.<locals>.X�redZgreen�bluecs����fdd�|D��S)Ncsg|]}�j�|��qSr
)�bitnames�index)rr/)�clasr
rrHsz2Test.test35.<locals>.X.__new__.<locals>.<listcomp>)�__new__)rr+)r)rrrGszTest.test35.<locals>.X.__new__c3s$x��|�D]}|j|VqWdS)N)r�r)r7rN)rr
rr�JszTest.test35.<locals>.X.__iter__cSsdd�|�S)Nz{%s}z, )�join)r7r
r
r�__str__NszTest.test35.<locals>.X.__str__cSst|�t|�kS)N)r�)r7�otherr
r
r�__eq__QszTest.test35.<locals>.X.__eq__N)r:r;r<rrr�rrr
)rr
rrDs

rrrz{}rz{red}z{green}rSz{red, green}rTz{blue}rz(~ImmBitSet(['red', 'blue'])))
rZ	ImmBitSetZ	MutBitSetrrr�	immbitset�	mutbitsetZguppy.sets.setscr�ZsetsZsetscZ	CplBitSet)r7rrr/�guppyr
)rr�test35=s 

zTest.test35N)r)(r:r;r<rxrRrhrortryr�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
r
rrQ�sL)$Ny


 # >Ar,MT<!rQc@s$eZdZdd�Zdd�Zdd�ZdS)�MemStatcCsHi|_ddlm}|�|_}|jjj|_|jjj|_|jjj	j
|_
dS)Nr)�Root)�nrefsrr"�RZheapyZView�VZPath�PZheapyc�	xmemstats)r7r"r$r
r
rr�iszMemStat.__init__cCs.|jj��|j��}|�t���||_dS)N)r$rrr%Zhorizon�updateZget_objectsr�)r7r�r
r
r�markts
zMemStat.markcCs�t��|��|j}|j}|j}|j}yt��}Wnt	k
rHYn\XxL|D]D\}}}}	||}
||ksx|
||krPt
||
fdtjd�|
||<qPWt
tjd�d}|_}}}}}}	}
}t��dS)Nr�)r�rX)rX)
rrr'r%r$r&r#r�Z	getcounts�AttributeErrorr=�stderrr�)r7r%r$r&r#�co�nameZalloZfree�maxZnrefr�rJrCrr
r
r�dumpzs$*zMemStat.dumpN)r:r;r<r�r)r/r
r
r
rr!hsr!cCs`g}x$|D]}|�|ttd|�f�q
Wx0|D](\}}td|�|�|dk	r0|�q0WdS)Nztest%dzTest #%d)r5�getattrr�r=)Znumbersr/ZenufuncsrJr*r
r
r�	test_nums�s
r1cCsNddl}ttd��}|�d�t�}d}x t||j�|��|d7}q*WdS)Nr�$r�r)rrrr8r!r1r/r)rZnumsrerr
r
r�	test_leak�s
r3cCstttd���dS)Nr2)r1rrr
r
r
r�	test_main�sr4�__main__)N)r
rr)r?)N)3Z
guppy.setsr�Ztimerr)rr	r�Znumpy.randomr�ImportErrorZ	has_numpyrrrbr~rr4raZimmbitranger�Zimmbitr�rrrrrrrr"r%r&r(r1r2r>rrBrFrIrLrOrPrQr!r1r3r4r�r:r
r
r
r�<module>sv


	


	
.




Zerion Mini Shell 1.0