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_heapq.cpython-35.pyc



��Yf�:�@sdZddlZddlZddlZddlmZddlmZmZddlm	Z	ej
dddg�Zej
dd	dg�Zd
ddd
ddddgZ
Gdd�de�ZGdd�d�ZGdd�dee�Zeed�Gdd�dee��ZGdd�d�ZGdd�d�ZGdd �d �Zd!d"�ZGd#d$�d$�ZGd%d&�d&�ZGd'd(�d(�ZGd)d*�d*�ZGd+d,�d,�ZGd-d.�d.�ZGd/d0�d0�Zdd1lmZd2d3�ZGd4d5�d5�Z Gd6d7�d7�Z!Gd8d9�d9e!e�Z"eed�Gd:d;�d;e!e��Z#e$d<kr{ej%�dS)=zUnittests for heapq.�N)�support)�TestCase�
skipUnless)�
itemgetter�heapqZblocked�_heapqZfresh�heapify�heappop�heappush�heappushpop�heapreplace�_heappop_max�_heapreplace_max�_heapify_maxc@s7eZdZdd�Zeed�dd��ZdS)�TestModulescCs1x*tD]"}|jtt|�jd�qWdS)Nr)�
func_names�assertEqual�getattr�py_heapq�
__module__)�self�fname�r�4/opt/alt/python35/lib64/python3.5/test/test_heapq.py�test_py_functionss
zTestModules.test_py_functionszrequires _heapqcCs1x*tD]"}|jtt|�jd�qWdS)Nr)rrr�c_heapqr)rrrrr�test_c_functionss
zTestModules.test_c_functionsN)�__name__r�__qualname__rrrrrrrrrsrc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �TestHeapcCsJg}g}|j|�xMtd�D]?}tj�}|j|�|jj||�|j|�q&Wg}x6|r�|jj|�}|j|�|j|�qrW|dd�}|j�|j||�|j|�|j	t
|jjg�y9|j	t
|jjdd�|j	t
|jjd�Wntk
rEYnXdS)N�)�check_invariant�range�random�append�moduler
r	�sortr�assertRaises�	TypeError�AttributeError)r�heap�data�i�itemZresultsZdata_sortedrrr�
test_push_pop s.

	



zTestHeap.test_push_popcCsLxEt|�D]7\}}|r
|dd?}|j|||k�q
WdS)N�)�	enumerateZ
assertTrue)rr*�posr-�	parentposrrrr!<szTestHeap.check_invariantcCswxWttd��dgD]<}dd�t|�D�}|jj|�|j|�qW|jt|jjd�dS)N�i NcSsg|]}tj��qSr)r#)�.0Zdummyrrr�
<listcomp>Es	z)TestHeap.test_heapify.<locals>.<listcomp>)�listr"r%rr!r'r()r�sizer*rrr�test_heapifyCs
 zTestHeap.test_heapifycCs�dd�td�D�}g}xC|D];}|jj||�t|�dkr&|jj|�q&W|j�|j|t|�dd��dS)NcSsg|]}tjd��qS)i�)r#�	randrange)r4r,rrrr5Ls	z-TestHeap.test_naive_nbest.<locals>.<listcomp>i��
i����)r"r%r
�lenr	r&r�sorted)rr+r*r-rrr�test_naive_nbestKs

zTestHeap.test_naive_nbestccs5yx|jj|�VqWWntk
r0YnXdS)N)r%r	�
IndexError)rr*rrr�heapiterUs

zTestHeap.heapitercCs�dd�td�D�}|dd�}|jj|�x;|dd�D])}||dkrJ|jj||�qJW|jt|j|��t|�dd��|jt	|jjd�|jt	|jjdd�|jt
|jjgd�dS)NcSsg|]}tjd��qS)i�)r#r9)r4r,rrrr5cs	z'TestHeap.test_nbest.<locals>.<listcomp>i�r:ri����)r"r%rrrr6r?r<r'r(r>)rr+r*r-rrr�
test_nbest]s/zTestHeap.test_nbestcCs�dd�td�D�}|dd�}|jj|�x+|dd�D]}|jj||�qJW|jt|j|��t|�dd��|j|jjgd�d�dS)NcSsg|]}tjd��qS)i�)r#r9)r4r,rrrr5ps	z4TestHeap.test_nbest_with_pushpop.<locals>.<listcomp>i�r:�xi����)r"r%rrrr6r?r<)rr+r*r-rrr�test_nbest_with_pushpopos/z TestHeap.test_nbest_with_pushpopcCs"g}|jj|d�}|j||fgdf�dg}|jj|d�}|j||fdgdf�|jt|d�t�|jt|�t�dg}|jj|d�}|j||fdgdf�dg}|jj|d�}|j||fdgdf�dS)Nr:g$@r�	�)r%rr�type�int�float)r�hrArrr�test_heappushpopxs			zTestHeap.test_heappushpopcs�x�td�D]�}tjd�}dd�t|�D�}|d@rh|dd���jj��n*g�x!|D]}�jj�|�quW��fdd�t|�D�}�j|t|��q
WdS)N�d�2cSsg|]}tjd��qS)�)r#r9)r4r,rrrr5�s	z*TestHeap.test_heapsort.<locals>.<listcomp>r/cs"g|]}�jj���qSr)r%r	)r4r,)r*rrrr5�s	)r"r#r9r%rr
rr<)rZtrialr7r+r-Zheap_sortedr)r*rr�
test_heapsort�s

"zTestHeap.test_heapsortc
Csog}x~ttjd��D]g}g}xKttjd��D]4}tjd�tjdd�f}|j|�q>W|j|�qWx�dtd�td�tdd�gD]�}x�ddgD]�}g}x-|D]%}	|jt|	d	|d
|��q�W|jtt|�d	|d
|�t	|j
j|d	|d
|���|jt	|j
j��g�q�Wq�WdS)NrLrJ�ABCi�rr/FT�key�reversei���)r"r#r9Zchoicer$rr<r�chainr6r%�merge)
r�inputsr,�row�j�tuprOrPZseqs�seqrrr�
test_merge�s!.
#!%zTestHeap.test_mergecCsFdd�}|jt��$t|jj|�|���WdQRXdS)Ncss6ttd��}xtd�D]}||VqWdS)Nr:�)r6r")�sr,rrr�iterable�szCTestHeap.test_merge_does_not_suppress_index_error.<locals>.iterable)r'r>r6r%rR)rr[rrr�(test_merge_does_not_suppress_index_error�sz1TestHeap.test_merge_does_not_suppress_index_errorcCs�Gdd�dt�}ggggg}x^td�D]P}tjd�}tjd�}||�}||f|_||j|�q5Wx|D]}|j�q�Wdd�|jj|�D�}|j	|t
|��dS)Nc@seZdZdS)z*TestHeap.test_merge_stability.<locals>.IntN)rrrrrrr�Int�sr]i N�i�cSsg|]}|j�qSr)�pair)r4r,rrrr5�s	z1TestHeap.test_merge_stability.<locals>.<listcomp>)rFr"r#r9r_r$r&r%rRrr<)rr]rSr,�streamrA�obj�resultrrr�test_merge_stability�s
zTestHeap.test_merge_stabilityc
Cs�dd�td�D�}x�ddd�fD]�}x�dD]|}|jt|jj||��t|�d|��|jt|jj||d|��t|d|�d|��q9Wq,WdS)NcSs%g|]}tjd�|f�qS)i�)r#r9)r4r,rrrr5�s	z+TestHeap.test_nsmallest.<locals>.<listcomp>��cSs|dddS)Nri#i�r)rArrr�<lambda>�sz)TestHeap.test_nsmallest.<locals>.<lambda>rr/�r:rJ����LrO)	rr/rfr:rJrgrhrdri)r"rr6r%�	nsmallestr<)rr+�f�nrrr�test_nsmallest�s
$zTestHeap.test_nsmallestc
Cs�dd�td�D�}x�ddd�fD]�}x�dD]�}|jt|jj||��t|dd�d|��|jt|jj||d|��t|d|dd�d|��q9Wq,WdS)NcSs%g|]}tjd�|f�qS)i�)r#r9)r4r,rrrr5�s	z*TestHeap.test_nlargest.<locals>.<listcomp>��cSs|dddS)Nri#i�r)rArrrre�sz(TestHeap.test_nlargest.<locals>.<lambda>rr/rfr:rJ����LrPTrO)	rr/rfr:rJrorprnrq)r"rr6r%�nlargestr<)rr+rkrlrrr�
test_nlargest�s
$zTestHeap.test_nlargestcs��fdd�}Gdd�d�}Gdd�d�}dd�td	�D�}t|d
d�}�j|||�|��jt||�dS)NcsO�fdd��D���jj����fdd�tt���D�S)Ncsg|]}�|��qSrr)r4rA)�comprrr5�s	zDTestHeap.test_comparison_operator.<locals>.hsort.<locals>.<listcomp>cs%g|]}�jj��j�qSr)r%r	rA)r4r,)r+rrrr5�s	)r%rr"r;)r+rt)r)rtr+r�hsort�sz0TestHeap.test_comparison_operator.<locals>.hsortc@s(eZdZdd�Zdd�ZdS)z-TestHeap.test_comparison_operator.<locals>.LTcSs
||_dS)N)rA)rrArrr�__init__�sz6TestHeap.test_comparison_operator.<locals>.LT.__init__cSs|j|jkS)N)rA)r�otherrrr�__lt__�sz4TestHeap.test_comparison_operator.<locals>.LT.__lt__N)rrrrvrxrrrr�LT�sryc@s(eZdZdd�Zdd�ZdS)z-TestHeap.test_comparison_operator.<locals>.LEcSs
||_dS)N)rA)rrArrrrv�sz6TestHeap.test_comparison_operator.<locals>.LE.__init__cSs|j|jkS)N)rA)rrwrrr�__le__�sz4TestHeap.test_comparison_operator.<locals>.LE.__le__N)rrrrvrzrrrr�LE�sr{cSsg|]}tj��qSr)r#)r4r,rrrr5�s	z5TestHeap.test_comparison_operator.<locals>.<listcomp>rJrPT)r"r<rr'r()rruryr{r+�targetr)rr�test_comparison_operator�sz!TestHeap.test_comparison_operatorN)rrrr.r!r8r=r?r@rBrIrMrXr\rcrmrsr}rrrrrs
				rc@seZdZeZdS)�TestHeapPythonN)rrrrr%rrrrr~�sr~zrequires _heapqc@seZdZeZdS)�	TestHeapCN)rrrrr%rrrrr�src@s"eZdZdZdd�ZdS)�LenOnlyz:Dummy sequence class defining __len__ but not __getitem__.cCsdS)Nr:r)rrrr�__len__�szLenOnly.__len__N)rrr�__doc__r�rrrrr��sr�c@s"eZdZdZdd�ZdS)�GetOnlyz:Dummy sequence class defining __getitem__ but not __len__.cCsdS)Nr:r)rZndxrrr�__getitem__�szGetOnly.__getitem__N)rrrr�r�rrrrr��sr�c@s8eZdZdZdd�ZeZZZZZ	dS)�CmpErrz;Dummy element that always raises an error during comparisoncCs
t�dS)N)�ZeroDivisionError)rrwrrr�__eq__sz
CmpErr.__eq__N)
rrrr�r��__ne__rxrz�__gt__�__ge__rrrrr�sr�ccsx|D]}|VqWdS)zRegular generatorNr)�seqnr,rrr�Rs
r�c@s.eZdZdZdd�Zdd�ZdS)�GzSequence using __getitem__cCs
||_dS)N)r�)rr�rrrrvsz
G.__init__cCs|j|S)N)r�)rr,rrrr�sz
G.__getitem__N)rrrr�rvr�rrrrr�
sr�c@s:eZdZdZdd�Zdd�Zdd�ZdS)	�Iz Sequence using iterator protocolcCs||_d|_dS)Nr)r�r,)rr�rrrrvs	z
I.__init__cCs|S)Nr)rrrr�__iter__sz
I.__iter__cCsA|jt|j�krt�|j|j}|jd7_|S)Nr/)r,r;r��
StopIteration)r�vrrr�__next__s
z
I.__next__N)rrrr�rvr�r�rrrrr�sr�c@s.eZdZdZdd�Zdd�ZdS)�Igz9Sequence using iterator protocol defined with a generatorcCs||_d|_dS)Nr)r�r,)rr�rrrrv#s	zIg.__init__ccsx|jD]}|Vq
WdS)N)r�)r�valrrrr�&szIg.__iter__N)rrrr�rvr�rrrrr�!sr�c@s.eZdZdZdd�Zdd�ZdS)�Xz Missing __getitem__ and __iter__cCs||_d|_dS)Nr)r�r,)rr�rrrrv,s	z
X.__init__cCsA|jt|j�krt�|j|j}|jd7_|S)Nr/)r,r;r�r�)rr�rrrr�/s
z
X.__next__N)rrrr�rvr�rrrrr�*sr�c@s.eZdZdZdd�Zdd�ZdS)�NzIterator missing __next__()cCs||_d|_dS)Nr)r�r,)rr�rrrrv7s	z
N.__init__cCs|S)Nr)rrrrr�:sz
N.__iter__N)rrrr�rvr�rrrrr�5sr�c@s:eZdZdZdd�Zdd�Zdd�ZdS)	�EzTest propagation of exceptionscCs||_d|_dS)Nr)r�r,)rr�rrrrv?s	z
E.__init__cCs|S)Nr)rrrrr�Bsz
E.__iter__cCsdddS)N�rr)rrrrr�Dsz
E.__next__N)rrrr�rvr�r�rrrrr�=sr�c@s:eZdZdZdd�Zdd�Zdd�ZdS)	�SzTest immediate stopcCsdS)Nr)rr�rrrrvIsz
S.__init__cCs|S)Nr)rrrrr�Ksz
S.__iter__cCs
t�dS)N)r�)rrrrr�Msz
S.__next__N)rrrr�rvr�r�rrrrr�Gsr�)rQcCs+ttdd�ttt|�����S)z Test multiple tiers of iteratorscSs|S)Nr)rArrrreSszL.<locals>.<lambda>)rQ�mapr�r�r�)r�rrr�LQsr�c@s(eZdZdd�Zdd�ZdS)�SideEffectLTcCs||_||_dS)N)�valuer*)rr�r*rrrrvWs	zSideEffectLT.__init__cCs#g|jdd�<|j|jkS)N)r*r�)rrwrrrrx[szSideEffectLT.__lt__N)rrrrvrxrrrrr�Vsr�c@speZdZdd�Zdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)�TestErrorHandlingcCs�x9|jj|jjfD]}|jttf|d�qWxN|jj|jj|jj|jj	fD]"}|jttf|dd�qgWdS)Nr:)
r%rr	r'r(r)r
rrrrj)rrkrrr�test_non_sequencebs
z#TestErrorHandling.test_non_sequencecCs�x<|jj|jjfD]"}|jttf|t��qWx?|jj|jjfD]%}|jttf|t�d�qXWx9|jj	|jj
fD]}|jt|dt��q�WdS)Nr:rf)r%rr	r'r(r)r�r
rrrrj)rrkrrr�
test_len_onlyis #zTestErrorHandling.test_len_onlycCs�x6|jj|jjfD]}|jt|t��qWx9|jj|jjfD]}|jt|t�d�qRWx9|jj|jj	fD]}|jt|dt��q�WdS)Nr:rf)
r%rr	r'r(r�r
rrrrj)rrkrrr�
test_get_onlyqszTestErrorHandling.test_get_onlycCs�t�t�t�g}x3|jj|jjfD]}|jt||�q1Wx6|jj|jjfD]}|jt||d�qgWx6|jj|jj	fD]}|jt|d|�q�WdS)Nr:rf)
r�r%rr	r'r�r
rrrrj)rrWrkrrrr�yscCsdx]|jj|jj|jj|jj|jj|jjfD]}|jtt	f|d�q=WdS)Nr:)
r%rr	r
rrrrjr'r(r))rrkrrr�test_arg_parsing�sz"TestErrorHandling.test_arg_parsingc	Cs&x|jj|jjfD]}x�ddtd�d
tddd�fD]�}xQtttttfD]:}|j	t
|d	||���t
|d	|���qcW|j	t
|d	t|���g�|jt
|d	t|��|jt
|d	t|��|jt|d	t|��qGWqWdS)NZ123�i�r/�333333�?i�i��rf)r/r�)r%rrrjr"r�r�r�r�r�rr6r�r'r(r�r�r�r�)rrkrZ�grrr�test_iterable_args�s.8%z$TestErrorHandling.test_iterable_argscsig��j�fdd�td�D��|jttf��!|jj�td���WdQRXdS)Nc3s|]}t|��VqdS)N)r�)r4r,)r*rr�	<genexpr>�sz@TestErrorHandling.test_heappush_mutating_heap.<locals>.<genexpr>��r�)�extendr"r'r>�RuntimeErrorr%r
r�)rr)r*r�test_heappush_mutating_heap�s&z-TestErrorHandling.test_heappush_mutating_heapc	s]g��j�fdd�td�D��|jttf��|jj��WdQRXdS)Nc3s|]}t|��VqdS)N)r�)r4r,)r*rrr��sz?TestErrorHandling.test_heappop_mutating_heap.<locals>.<genexpr>r�)r�r"r'r>r�r%r	)rr)r*r�test_heappop_mutating_heap�s&z,TestErrorHandling.test_heappop_mutating_heapN)
rrrr�r�r�r�r�r�r�rrrrr�`s	r�c@seZdZeZdS)�TestErrorHandlingPythonN)rrrrr%rrrrr��sr�c@seZdZeZdS)�TestErrorHandlingCN)rrrrr%rrrrr��sr��__main__)&r��sysr#ZunittestZtestrrr�operatorrZimport_fresh_modulerrrrrr~rr�r�r�r�r�r�r�r�r�r�r��	itertoolsrQr�r�r�r�r�r�mainrrrr�<module>sF�
	
	
C