Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_deque.cpython-39.opt-1.pyc

a

��g��@s4ddlmZddlZddlmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZdZdd�Z
Gdd�d�ZGd	d
�d
�ZGdd�dej�ZGd
d�dej�ZGdd�de�ZGdd�de�ZGdd�dej�ZGdd�de�ZGdd�dej�ZGdd�dej�ZdZdeiZd"dd�Zedk�r0ed d!�dS)#���dequeN)�support�	seq_testsi��ccst�dVdS)N�)�SyntaxError�rr�+/usr/local/lib/python3.9/test/test_deque.py�fail
sr
c@seZdZdd�ZdS)�BadCmpcCst�dS�N)�RuntimeError��self�otherrrr	�__eq__sz
BadCmp.__eq__N��__name__�
__module__�__qualname__rrrrr	rsrc@seZdZdd�Zdd�ZdS)�	MutateCmpcCs||_||_dSr)r�result)rrrrrr	�__init__szMutateCmp.__init__cCs|j��|jSr)r�clearrrrrr	rs
zMutateCmp.__eq__N)rrrrrrrrr	rsrc@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.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2e3j4Z4e3j5dadb��Z6dcS)d�	TestBasiccsttdd�����td��tdd�D]}��|�q&ttdd��D]}��|�qD|�t��ttdd���|�t��d��fdd	�td
�D�}|�|ttdd���|�t��ttdd����fdd	�td
�D�}|�	�|�|ttd
d���|�t��ttdd
���dS)Ni��ix�����8���r�Xcsg|]}����qSr��popleft��.0�i��drr	�
<listcomp>)�z)TestBasic.test_basics.<locals>.<listcomp>��2csg|]}����qSr��popr!r$rr	r&-r'�)
r�ranger�append�reversed�
appendleft�assertEqual�list�len�reverse�rr#�left�rightrr$r	�test_basicsszTestBasic.test_basicsc	Cs0|�ttdd�|�ttdd�ttd��}t|dd�}|�t|�g�|�t|�d�|�t|�gd��|�|ttd�d��|�d�|�t|�gd	��|�	d
�|�t|�gd��|�
ddg�|�t|�gd��|�d
d
g�|�t|�gd��ttd�dd�}|�|�t�
tj�ttjd�}zN|�t|��|��ttjd�}|�|��t|��W|��t�
tj�n|��t�
tj�0ttd�dd�}|�t|�d�ttjd�}zN|�t|��|��ttjd�}|�|��t|��W|��t�
tj�n|��t�
tj�0dS)N�abc�������
���maxlenzdeque([7, 8, 9], maxlen=3))���	)rArBr<r@�)rBr<rCrAr�w�rz%deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))�assertRaises�
ValueErrorr�iterr-r1r2�reprr.r0�extend�
extendleftr�unlink�TESTFN�open�write�str�close�read)r�itr%�forrr	�test_maxlen2sR


��zTestBasic.test_maxlencCs�ttd��}t|dd�|�t|�g�ttd��}tdd�}|�|�|�t|�g�ttd��}tdd�}|�|�|�t|�g�dS)N�drr>)rHr-rr1r2rJrK)rrSr%rrr	�test_maxlen_zero\s



zTestBasic.test_maxlen_zerocCs�|�t�jd�|�td�jd�|�tddd�jd�|�tddd�jd�|�tddd�jd�|�t��td�}d|_Wd�n1s�0YdS)Nr9�r>�rr<)r1rr?rF�AttributeError�rr%rrr	�test_maxlen_attributekszTestBasic.test_maxlen_attributec	Cs\dddddfD]>}t|�}t|�}dD]$}|�|�|�|�|�|||f�q*q|�t|j�|�t|jdd�Gd	d
�d
�}tdd|�dg�}|�t|jd�tgd��}|�t|j|��Gd
d�d�}|�}tddd|ddg�}||_|�t|jd�tdgd�}t	t
|��D]}|�d��q|�d�|�|�d�d�|�|�d�d�dS)N�ZabracadabraZ
simsalabim��r9�abcdefghijklmnopqrstuvwxyzrrYc@seZdZdd�ZdS)z(TestBasic.test_count.<locals>.BadComparecSst�dSr)�ArithmeticErrorrrrr	r~sz/TestBasic.test_count.<locals>.BadCompare.__eq__Nrrrrr	�
BadCompare}srar=�rrYr=c@seZdZdd�ZdS)z-TestBasic.test_count.<locals>.MutatingComparecSs|j��dS)NT)r%r+rrrr	r�s
z4TestBasic.test_count.<locals>.MutatingCompare.__eq__Nrrrrr	�MutatingCompare�srcrX��r:r)r2rr1�countrF�	TypeErrorr`r%r
r-r3�rotate)r�sr%Zletterrarc�mr#rrr	�
test_countus.$
zTestBasic.test_countcCsztd�}|��|td�td�t�t|�fD]^}|�||kt|�t|�koXt|�t|�k�|�||kt|�t|�ko�t|�t|�k�q,ttd�}|D]�}|D]�}|�||kt|�t|�k||f�|�||kt|�t|�k||f�|�||kt|�t|�k||f�|�||kt|�t|�k||f�|�||kt|�t|�k||f�|�||kt|�t|�k||f�q�q�dS)N�xabcr9�ab)	r]�a�brmZbar9ZxbarlZcba)rr r2r1�type�map)rr%�e�args�x�yrrr	�test_comparisons�s ,0
"""""zTestBasic.test_comparisonscCs�d}tt|��}t|�D]}|�||v�q|�|d|v�tt|��}t|d�||d<|�t��||vWd�n1s�0Ytt|��}t�||d<|�t��||vWd�n1s�0YdS)NrrFrY)rr-�
assertTruerrFr
r)r�nr%r#rrr	�
test_contains�s&zTestBasic.test_containscs�G�fdd�d�}t|�|�g��|�t��d�v}Wd�n1sJ0Yt|�|�g��|�t����d�}Wd�n1s�0YdS)NcseZdZ�fdd�ZdS)z5TestBasic.test_contains_count_stop_crashes.<locals>.Acs���tSr)r�NotImplementedrr$rr	r�sz<TestBasic.test_contains_count_stop_crashes.<locals>.A.__eq__Nrrr$rr	�A�sr{r=)rrFr
rf)rr{�_rr$r	� test_contains_count_stop_crashes�s&z*TestBasic.test_contains_count_stop_crashescCsXtd�}|�t|jd�|�d�|�t|�td��|�|�|�t|�td��dS)Nrnr�bcd�abcd�abcdabcd)rrFrgrJr1r2r[rrr	�test_extend�s

zTestBasic.test_extendcCst�}td�}td�}|�||t��|�||td��|�||td��|�||td��|�||td��|�||t��|�||td��|�||td��tddd�}td�}|�||td��|�t��td�dWd�n1�s0YdS)	Nr9�def�abcdef�abcabcrXr>ZghZefgh)rr1�assertIsNotrFrg)rr%rr�f�g�hrrr	�test_add�s zTestBasic.test_addcCsDtd�}|d7}|�t|�td��||7}|�t|�td��dS)Nrnr~rr�)rr1r2r[rrr	�	test_iadd�s
zTestBasic.test_iaddcCs�td�}|�t|jd�|�d�|�t|�ttd���|�|�|�t|�td��t�}|�td��|�t|�tttd����|�t|jt	��dS)Nrnrr~rZabcddcba��)
rrFrgrKr1r2r/r-rr
r[rrr	�test_extendleft�s

zTestBasic.test_extendleftcCs�d}tt|��}tt|��}t|�D]R}|��|�d�t��dkrZ|�|�|�|�tdt|�t|��D]}qpq$td�}|�|dd�|�|dd�t�}|�	t
|jd�|�	t
|jd�dS)	Nrrg�?rZsupermanrir:rx)rr-r2r r+�randomr.r3r1rF�
IndexError�__getitem__)rrxr%�lr#�jrrr	�test_getitem�s"


zTestBasic.test_getitemcCsVdD�]
}tt|��}t|�D]}|�|�|�|�q|�t��|�|d�Wd�n1sd0Ytt|��}t|d�||d<|�t��|�|�Wd�n1s�0Ytt|��}t�||d<|�t��|�|�Wd�q1�s0Yqd}d}t|d�}t	|d�}tdt
|�ddt
|�d�D]�}tdt
|�ddt
|�d�D]�}|dD]~}	z|�|	||�}
WnNt�y�|�t��|�|	||�Wd�n1�s�0YYn0|�|�|	||�|
��q��qz�qTttd	d
d��}td�D]*}|�d
d�}|�||d
�|���q&dS)N)rrY��(rrFrY�	ABCDEFGHI�Z���rdri'r<rVi4!i�)rr-r1�indexrFrGrr
rr2r3rh)rrxr%r#�elementsZ
nonelementri�start�stop�element�target�steprrr	�
test_index
s@
,(,&&4"zTestBasic.test_indexcCsDtd�}|�t��|�ddd�}Wd�n1s60YdS)NZAAAzHello worldrrX)rrFrGr�)rr%r#rrr	�test_index_bug_249138szTestBasic.test_index_bug_24913cCshd}tdt|�ddt|�d�D]<}td�}td�}|�|d�|�|d�|�t|�|�q&dS)Nr�r�rYrdr�)r-r3rr2�insertr1)rr�r#r%rirrr	�test_insert=s&zTestBasic.test_insertcCs�d}t|t|�d�}|�t��|�dd�Wd�n1s@0Yd}tt|�t|��D]R}t|t|�dd�}|�|d�|dkr�|�||d�qb|�||dd�qbdS)N�ABCr>rYr�rr�r)rr3rFr�r�r-r1)r�datar%r�r#rrr	�test_insert_bug_26194Gs*zTestBasic.test_insert_bug_26194c	Cs4dD],}t�}||9}|�|t��|�|j�qdD]4}td�}||9}|�|td|��|�|j�q6dD]>}tdd�}||9}|�|tdt|d���|�|jd�qpdD]4}td�}||9}|�|td|��|�|j�q�dD]@}tdd�}||9}|�|td|dd���|�|jd�q�dS)N)���r:rrrYr<r�rn)
r�r:rrrYr<i�r^i�r�r^r�i���)rr1ZassertIsNoner?�min)rrxr%rrr	�	test_imulVs2

zTestBasic.test_imulcCs�td�}|�|dt��|�|dt��|�|dtd��|�|dtd��|�|dtd��|�|d|�|�t�dt��|�t�dt��|�t�d	t��|�d|t��|�d|t��|�d|td��|�d|td��|�d|td��tdd	d
�}|�|dt��|�|dt��|�|dtd��|�|dtd��|�|dtd��dS)
Nr9r�rrrYr�r=Z	abcabcabcrdr>Zbcabcr�)rr1r�r[rrr	�test_mulus*zTestBasic.test_mulcCs�d}tt|��}t|�D]}d|||<q|�t|�dd�t|�D��t|�}td|dd�D]}d|||<d|||<q`|�t|�|�dS)	Nrr<cSsg|]}d|�qS)r<rr!rrr	r&�r'z*TestBasic.test_setitem.<locals>.<listcomp>rrr:r@)rr-r1r2)rrxr%r#r�rrr	�test_setitem�szTestBasic.test_setitemcCs�d}tt|��}|�t|j|d�|�t|j|�t|�D]T}|�t|�||�t�t|�t|��}||}|�	||�||=|�
||�q>|�t|�d�dS)Nr^rr)rr-rFr��__delitem__r1r3r��	randrange�assertInZassertNotIn)rrxr%r#r��valrrr	�test_delitem�szTestBasic.test_delitemc	Cs�d}dd�t|�D�}t|�D]h}t|d|��}|��}|�t|�tt|d|����|�|d�|��|�t|�|d|��q|�t|jd�dS)Nr^cSsg|]}t���qSr�r�r!rrr	r&�r'z*TestBasic.test_reverse.<locals>.<listcomp>r)	r-rr4r1r2r/ZassertIsrFrg)rrxr�r#r%rErrr	�test_reverse�s zTestBasic.test_reversecCs,td�}t|�}t|�}|�d�|�d�|�d�t|�}|�d�|�d�|�d�|��|�t|�|�t|d�D]�}t|�}t|�}|�|�t|�D]}|�d�q�|�t|�t|��|�|�|�t|�|�|�||�|�t|�|�q|t|d�D]�}t|�}t|�}|�|�t|�D]}|�d��q6|�t|�t|��|�|�|�t|�|�|�||�|�t|�|��qt|�}t|�}|�td�|j}ttd�D]}|��q�|�t|�t|��|�t	|jd	�|�t	|jdd
�t�}|��|�|t��dS)N�abcderr]Zeabcdr:Zbcdear=�rtr<)
�tupler3rrhr1�joinr-�BIGrFrg)rrirxr%r#rrr�Zdrrrr	�test_rotate�sX




zTestBasic.test_rotatecCs�td�}|�t|�d�|��|�t|�d�|��|�t|�d�|�t|j�|�t|�d�|�d�|�t|�d�|�d�|�t|�d�|�	�|�t|�d�dS)NrmrYrr�cr%)
rr1r3r r+rFr�r.r0rr[rrr	�test_len�s

zTestBasic.test_lencCs&t�}|�t|j�|�t|j�dSr)rrFr�r+r r[rrr	�test_underflow�szTestBasic.test_underflowcCs`ttd��}|�t|�d�|��|�t|�d�|�t|�g�|��|�t|�g�dS)NrVr)rr-r1r3rr2r[rrr	�
test_clear�szTestBasic.test_clearcCs�td�}|�d�|�|td��|�d�|�|td��|�t|jd�|�|td��tddt�dg�}t|�}|�t|jd�t||�D]\}}|�||u�q�dD]@}tdg�}|�	t
||�dg�|�t|jd�|�|t��q�dS)	NZabcdefghcijr�Z
abdefghcijZ	abdefghijrnro)TFrm)r�remover1rFrGrr
�ziprwrJrr�)rr%rrrtru�matchrrr	�test_removes"


zTestBasic.test_removecCsJttd��}tt|��}|�t|�t|��|�|�|�dt|��dS)Nrz...)rr-�evalrIr1r2r.r��rr%rrrrr	�	test_repr s

zTestBasic.test_reprc	Cs�ttd��}|�|�zft�tj�ttjd�}t||dd�|��ttjd�}|�	|�
�t|��W|��t�tj�n|��t�tj�0dS)NrrDr])�file�endrE)rr-r.rrLrMrN�printrQr1rRrI)rr%rTrrr	�
test_print's
�zTestBasic.test_printcCs$|�ttddd�|�ttd�dS)Nr9rYr=r)rFrgr�rrrr	�	test_init5szTestBasic.test_initcCs|�tttd��dS)Nr9)rFrg�hashrr�rrr	�	test_hash9szTestBasic.test_hashcCs�dD]v}tt|��}|j|j}}t|t�D].}||�|�}|||kr,|�|||�q,|�t|�ttt|t���qdS�N)rrrYrVr�)rr-r.r r�r1r2�r�sizer%r.r+r#rtrrr	�#test_long_steadystate_queue_popleft<sz-TestBasic.test_long_steadystate_queue_popleftcCs�dD]�}ttt|���}|j|j}}t|t�D].}||�|�}|||kr0|�|||�q0|�ttt|���ttt|t���qdSr�)rr/r-r0r+r�r1r2r�rrr	�$test_long_steadystate_queue_poprightGs�z.TestBasic.test_long_steadystate_queue_poprightcCsVt�}|j|j}}tt�D]}||�qtt�D]}|�}||kr2|�||�q2dSr)rr.r r-r�r1�rr%r.r+r#rtrrr	�test_big_queue_popleftSs
z TestBasic.test_big_queue_popleftcCsVt�}|j|j}}tt�D]}||�qtt�D]}|�}||kr2|�||�q2dSr)rr0r+r-r�r1r�rrr	�test_big_queue_popright^s
z!TestBasic.test_big_queue_poprightcCsjt�}|j|j}}tt�D]}||�qttt��D]}|�}||kr6|�||�q6|�t|�d�dS�Nr)rr.r+r-r�r/r1r3r�rrr	�test_big_stack_righths
zTestBasic.test_big_stack_rightcCsjt�}|j|j}}tt�D]}||�qttt��D]}|�}||kr6|�||�q6|�t|�d�dSr�)rr0r r-r�r/r1r3r�rrr	�test_big_stack_leftss
zTestBasic.test_big_stack_leftcCs@ttd��}t|�}|�t|�t|��|�t|�t|��dS)Nr)rr-�assertNotEqual�idr1r2r�rrr	�test_roundtrip_iter_init~sz"TestBasic.test_roundtrip_iter_initcCs�ttd��ttd�d�fD]f}ttjd�D]R}t�||�}t�|�}|�t|�t|��|�t	|�t	|��|�|j
|j
�q,qdS)NrrVr)rr-�pickle�HIGHEST_PROTOCOL�dumps�loadsr�r�r1r2r?)rr%r#rirrrrr	�test_pickle�s
zTestBasic.test_picklecCs�td�tdd�fD]p}|�|�ttjd�D]R}t�t�||��}|�t|�t|��|�	t|d�t|��|�	|j
|j
�q.qdS)Nr9r=rr:)rr.r-r�r�r�r�r�r�r1r?)rr%r#rrrrr	�test_pickle_recursive�s
zTestBasic.test_pickle_recursivec
Cs�ttd��}dd�|D�}ttjd�D�]�}t|�}t�||f|�}t�|�\}}t|�D]\}}	|	||<q\|�t	|�t	|��|�t
|�|�t|�t�||f|�}t�|�\}}t|�D]\}}	|	||<q�|�t	|�t	|��|�t
|�|dd��tdt|��D]}t|��qt�||f|�}t�|�\}}t|�D]\}}	|	||<�qB|�t	|�t	|��|�t
|�g�|�
tt|�t�||f|�}t�|�\}}t|�D]\}}	|	||<�q�|�t	|�t	|��|�t
|�g�q(dS)NrcSsg|]}|d�qS)g)\��(�?rr!rrr	r&�r'z2TestBasic.test_iterator_pickle.<locals>.<listcomp>r)rr-r�r�rHr�r��	enumerater1rpr2�nextr3rF�
StopIteration)
rZorigr��protoZitorg�dumprSr%r#rtrrr	�test_iterator_pickle�s@

zTestBasic.test_iterator_picklecCsbdg}t|g�}t�|�}|�t|�t|��d|d<|�t|�t|��|�t|�t|��dS�Nr<rCr)r�copy�deepcopyr1r2r�r��r�mutr%rrrrr	�
test_deepcopy�s

zTestBasic.test_deepcopyc	Cs�dg}t|g�}t�|�}|�t|�t|��d|d<|�t|�t|��|�t|�t|��td�D]�}tdd�D]r}dd�t|�D�}|dkr�t|�nt||�}|��}|�||�|�|j|j�|�t	d	d
�t
||�D���qtqfdS)Nr<rCrrdr:�cSsg|]}t���qSrr�)r"r�rrr	r&�r'z'TestBasic.test_copy.<locals>.<listcomp>css|]\}}||uVqdSrr)r"rtrurrr	�	<genexpr>�r'z&TestBasic.test_copy.<locals>.<genexpr>)rr�r1r2r�r�r-r?rw�allr�)rr�r%rrr#r?rirrr	�	test_copy�s

zTestBasic.test_copycCs`dg}t|g�}|��}|�t|�t|��d|d<|�t|�t|��|�t|�t|��dSr�)rr�r1r2r�r�r�rrr	�test_copy_method�s
zTestBasic.test_copy_methodcCs6dtd�fD]$}|�ttt|���tt|���qdS�Nr��)r-r1r2r/r)rrirrr	�
test_reversed�szTestBasic.test_reversedcCsDttt���}dtd�fD]$}|�t|t|���tt|���qdSr�)rpr/rr-r1r2)r�klassrirrr	�test_reversed_new�szTestBasic.test_reversed_newcCs2ddl}t�}td�D]}|�d�|��qdS)NrrVr)�gcrr-r.�collect)rr�r%r#rrr	�test_gc_doesnt_blowup�s

zTestBasic.test_gc_doesnt_blowupcCs�Gdd�dt�}td�D]b}|�}t�|�}|dkrBt|dg�}ntt|dg��}t|�|_~~t�	�|�
|�dud�qdS)Nc@seZdZdS)z,TestBasic.test_container_iterator.<locals>.CN�rrrrrrr	�C�sr�rYrrzCycle was not collected)�objectr-�weakref�refrr/rHrtr�r�rw)rr�r#�objr��	containerrrr	�test_container_iterator�s

z!TestBasic.test_container_iteratorcCs�d}t�d�}t�d|�}|�t�t��|�|j}|t�||�|td�||�|td|d�||�|td|�|d|�|tdd|�|d|�dS)	N�@Z2P4nPzP%dPPrnrrY�*�+)	rZcalcvobjsize�struct�calcsizer1r��
__sizeof__r�check_sizeof)rZBLOCKLENZbasesize�	blocksize�checkrrr	�test_sizeofs
zTestBasic.test_sizeofN)7rrrr8rUrWr\rkrvryr}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�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�cpython_onlyr	rrrr	rsf*
!.
5	
		)			rc@s$eZdZdd�Zdd�Zdd�ZdS)�TestVariousIteratorArgscCs�ddtd�dtddd�fD]�}tjtjtjtjtjtjfD]$}|�t	t
||���t	||���q:|�tt
t�
|��|�tt
t�|��|�tt
t�|��qdS)NZ123r]r�)Zdog333333�?r�i�rd)r-r�SequenceZIterFuncZIterGenZIterFuncStopZ	itermultiZiterfuncr1r2rrFrgZIterNextOnlyZ
IterNoNext�ZeroDivisionErrorZ
IterGenExc)rrir�rrr	�test_constructors�"z(TestVariousIteratorArgs.test_constructorcCs*td�}t|�}|��|�tt|�dS)NZabcdefg)rrHr+rFr
r��rr%rSrrr	�test_iter_with_altered_data sz3TestVariousIteratorArgs.test_iter_with_altered_datacCs*t�}t|�}|�d�|�tt|�dS)Nr<)rrHr.rFr
r�rrrr	�!test_runtime_error_on_empty_deque&s
z9TestVariousIteratorArgs.test_runtime_error_on_empty_dequeN)rrrrrrrrrr	rs
rc@seZdZdS)�DequeNr�rrrr	r,src@seZdZdd�ZdS)�DequeWithBadItercCst�dSr)rgr�rrr	�__iter__0szDequeWithBadIter.__iter__N�rrrrrrrr	r/src@sBeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	dd��Z
d
S)�TestSubclasscs,ttd�����td��tdd�D]}��|�q$ttdd��D]}��|�qB|�t��ttdd���|�t��d��fdd�td	�D�}|�|ttdd
���|�t��ttd
d����fdd�td	�D�}|�	�|�|ttdd���|�t��ttd
d�����
�|�t��d�dS)
N�rrrrrcsg|]}����qSrrr!r$rr	r&?r'z,TestSubclass.test_basics.<locals>.<listcomp>r(r)csg|]}����qSrr*r!r$rr	r&Cr'r,)rr-rr.r/r0r1r2r3r4rr5rr$r	r85s"zTestSubclass.test_basicscCs�td�}|��}|�t|�t|��|�t|�t|��t|�}|�t|�t|��|�t|�t|��ttjd�D]V}t�||�}t�	|�}|�
t|�t|��|�t|�t|��|�t|�t|��qvtddd�}|��}|�t|�t|��|�t|�t|��t|�}|�t|�t|��|�t|�t|��ttjd�D]X}t�||�}t�	|�}|�
t|�t|��|�t|�t|��|�t|�t|���qHdS)Nr9rr�rXr>)r�__copy__r1rpr2r-r�r�r�r�r�r�)rr%rrr�rirrr	�test_copy_pickleKs4

zTestSubclass.test_copy_picklecCsttjd�D]�}td�tdd�fD]�}|�|�t�t�||��}|�t|�t|��|�	t
|�t
|��|�	|j|j�|��}|��}|�	t|�t|��|�	||�||_
t�t�||��}|�	t|j
�t|��q$td�tdd�fD]}|�ttj||�q�qdS)Nrr9r=rY)r-r�r�rr.r�r�r�r�r1rpr?r+rtrrFrg)rr�r%rr�dd�eerrr	r�os 
z"TestSubclass.test_pickle_recursivecCsDtd�}t�|�}|�t|�t|��d}t��|�tt|�dS)NZgallahad)	rr��proxyr1rPr�
gc_collectrF�ReferenceError)rr%�prrr	�test_weakref�s
zTestSubclass.test_weakrefcCs4Gdd�dt�}|gd��}|gd��}||kdS)Nc@seZdZdd�ZdS)z-TestSubclass.test_strange_subclass.<locals>.XcSstg�Sr)rHr�rrr	r�sz6TestSubclass.test_strange_subclass.<locals>.X.__iter__Nrrrrr	�X�sr!rb)rXrdr�r)rr!Zd1Zd2rrr	�test_strange_subclass�sz"TestSubclass.test_strange_subclasscCs�Gdd�dt�}|�}dd�}||_|�t��|dWd�n1sL0Y|�t�� |tgd��Wd�n1s�0YdS)Nc@seZdZdS)z&TestSubclass.test_bug_31608.<locals>.XNr�rrrr	r!�sr!c_sdgS)Nrr)�clsrs�kwargsrrr	�bad___new__�sz0TestSubclass.test_bug_31608.<locals>.bad___new__rrb)r�__new__rFrg)rr!r%r%rrr	�test_bug_31608�s&zTestSubclass.test_bug_31608N)rrrr8rr�r r"rr
r'rrrr	r3s$	rc@seZdZddd�ZdS)�SubclassWithKwargsrcCst�|�dSr)rr)r�newargrrr	r�szSubclassWithKwargs.__init__N)r)rrrrrrrr	r(�sr(c@seZdZdd�ZdS)�TestSubclassWithKwargscCstdd�dS)Nr)r))r(r�rrr	�test_subclass_with_kwargs�sz0TestSubclassWithKwargs.test_subclass_with_kwargsN)rrrr+rrrr	r*�sr*c@s0eZdZeZdd�Zdd�Zdd�Zdd�Zd	S)
�TestSequencecCsdSrrr�rrr	r��szTestSequence.test_getitemcCsdSrrr�rrr	�
test_getslice�szTestSequence.test_getslicecCsdSrrr�rrr	�test_subscript�szTestSequence.test_subscriptcCs|�d�dS)Nz-Exhausted deque iterator doesn't free a deque)ZskipTestr�rrr	�test_free_after_iterating�sz&TestSequence.test_free_after_iteratingN)	rrrrZ	type2testr�r-r.r/rrrr	r,�s
r,a�

Example from the Library Reference:  Doc/lib/libcollections.tex

>>> from collections import deque
>>> d = deque('ghi')                 # make a new deque with three items
>>> for elem in d:                   # iterate over the deque's elements
...     print(elem.upper())
G
H
I
>>> d.append('j')                    # add a new entry to the right side
>>> d.appendleft('f')                # add a new entry to the left side
>>> d                                # show the representation of the deque
deque(['f', 'g', 'h', 'i', 'j'])
>>> d.pop()                          # return and remove the rightmost item
'j'
>>> d.popleft()                      # return and remove the leftmost item
'f'
>>> list(d)                          # list the contents of the deque
['g', 'h', 'i']
>>> d[0]                             # peek at leftmost item
'g'
>>> d[-1]                            # peek at rightmost item
'i'
>>> list(reversed(d))                # list the contents of a deque in reverse
['i', 'h', 'g']
>>> 'h' in d                         # search the deque
True
>>> d.extend('jkl')                  # add multiple elements at once
>>> d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
>>> d.rotate(1)                      # right rotation
>>> d
deque(['l', 'g', 'h', 'i', 'j', 'k'])
>>> d.rotate(-1)                     # left rotation
>>> d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
>>> deque(reversed(d))               # make a new deque in reverse order
deque(['l', 'k', 'j', 'i', 'h', 'g'])
>>> d.clear()                        # empty the deque
>>> d.pop()                          # cannot pop from an empty deque
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in -toplevel-
    d.pop()
IndexError: pop from an empty deque

>>> d.extendleft('abc')              # extendleft() reverses the input order
>>> d
deque(['c', 'b', 'a'])



>>> def delete_nth(d, n):
...     d.rotate(-n)
...     d.popleft()
...     d.rotate(n)
...
>>> d = deque('abcdef')
>>> delete_nth(d, 2)   # remove the entry at d[2]
>>> d
deque(['a', 'b', 'd', 'e', 'f'])



>>> def roundrobin(*iterables):
...     pending = deque(iter(i) for i in iterables)
...     while pending:
...         task = pending.popleft()
...         try:
...             yield next(task)
...         except StopIteration:
...             continue
...         pending.append(task)
...

>>> for value in roundrobin('abc', 'd', 'efgh'):
...     print(value)
...
a
d
e
b
f
c
g
h


>>> def maketree(iterable):
...     d = deque(iterable)
...     while len(d) > 1:
...         pair = [d.popleft(), d.popleft()]
...         d.append(pair)
...     return list(d)
...
>>> print(maketree('abcdefgh'))
[[[['a', 'b'], ['c', 'd']], [['e', 'f'], ['g', 'h']]]]

�
libreftestcCs�ddl}tttttf}tj|�|rxt|d�rxddl	}dgd}t
t|��D]"}tj|�|��|�
�||<qLt|�ddlm}t�||�dS)Nr�gettotalrefcountrd)�
test_deque)�sysrrrr*r,rZrun_unittest�hasattrr�r-r3r�r1r��testr2Zrun_doctest)�verboser3Ztest_classesr��countsr#r2rrr	�	test_main,s$�


r8�__main__T)r6)N)�collectionsrZunittestr5rrr�r�r�r�r�rr�r
rrZTestCaserrrrrr(r*Z
CommonTestr,r0Z__test__r8rrrrr	�<module>s<|rg



Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists