Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_deque.cpython-38.opt-2.pyc
U

>��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�./opt/cppython/lib/python3.8/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>)sz)TestBasic.test_basics.<locals>.<listcomp>��2csg|]}����qSr��popr!r$rr	r&-s�)
r�ranger�append�reversed�
appendleft�assertEqual�list�len�reverse�rr#�left�rightrr$r	�test_basicsszTestBasic.test_basicsc	Cs|�ttdd�|�ttdd�ttd��}t|dd�}|�t|�g�|�t|�d�|�t|�dd	d
g�|�|ttd�d��|�d�|�t|�d	d
dg�|�	d�|�t|�dd	d
g�|�
ddg�|�t|�d
ddg�|�d	dg�|�t|�dd	d
g�ttd�dd�}|�|�t�
tj�ttjd
�}z:|�t|��|��ttjd�}|�|��t|��W5|��t�
tj�Xttd�dd�}|�t|�d�ttjd
�}z:|�t|��|��ttjd�}|�|��t|��W5|��t�
tj�XdS)N�abc�������
���maxlenzdeque([7, 8, 9], maxlen=3)���	�r�w�rz%deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))�assertRaises�
ValueErrorr�iterr,r0r1�reprr-r/�extend�
extendleftr�unlink�TESTFN�open�close�write�str�read)r�itr%�forrr	�test_maxlen2sJ


zTestBasic.test_maxlencCs�ttd��}t|dd�|�t|�g�ttd��}tdd�}|�|�|�t|�g�ttd��}tdd�}|�|�|�t|�g�dS)N�drr=)rGr,rr0r1rIrJ)rrRr%rrr	�test_maxlen_zero\s



zTestBasic.test_maxlen_zeroc	Cs�|�t�jd�|�td�jd�|�tddd�jd�|�tddd�jd�|�tddd�jd�|�t��td�}d|_W5QRXdS)Nr8�r=�rr;)r0rr>rE�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�tdddg�}|�t|j|��Gdd
�d
�}|�}tddd|ddg�}||_|�t|jd�tdgd�}t	t
|��D]}|�d��q|�d�|�|�d�d�|�|�d�d�dS)N�ZabracadabraZ
simsalabim��r8�abcdefghijklmnopqrstuvwxyzrrXc@seZdZdd�ZdS)z(TestBasic.test_count.<locals>.BadComparecSst�dSr)�ArithmeticErrorrrrr	r~sz/TestBasic.test_count.<locals>.BadCompare.__eq__Nrrrrr	�
BadCompare}sr`r<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�srarW��r9r)r1rr0�countrE�	TypeErrorr_r%r
r,r2�rotate)r�sr%Zletterr`ra�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�xabcr8�ab)	r\�a�brkZbar8ZxbarjZcba)rr r1r0�type�map)rr%�e�args�x�yrrr	�test_comparisons�s ,0
"""""zTestBasic.test_comparisonsc	Cs�d}tt|��}t|�D]}|�||k�q|�|d|k�tt|��}t|d�||d<|�t��||kW5QRXtt|��}t�||d<|�t��||kW5QRXdS)NrrFrX)rr,�
assertTruerrEr
r)r�nr%r#rrr	�
test_contains�szTestBasic.test_containsc	stG�fdd�d�}t|�|�g��|�t��d�k}W5QRXt|�|�g��|�t����d�}W5QRXdS)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�sryr<)rrEr
rd)rry�_rr$r	� test_contains_count_stop_crashes�sz*TestBasic.test_contains_count_stop_crashescCsXtd�}|�t|jd�|�d�|�t|�td��|�|�|�t|�td��dS)Nrlr�bcd�abcd�abcdabcd)rrErerIr0r1rZrrr	�test_extend�s

zTestBasic.test_extendc	Cst�}td�}td�}|�||t��|�||td��|�||td��|�||td��|�||td��|�||t��|�||td��|�||td��tddd�}td�}|�||td��|�t��td�dW5QRXdS)	Nr8�def�abcdef�abcabcrWr=ZghZefgh)rr0�assertIsNotrEre)rr%rp�f�g�hrrr	�test_add�s zTestBasic.test_addcCsDtd�}|d7}|�t|�td��||7}|�t|�td��dS)Nrlr|r}r~)rr0r1rZrrr	�	test_iadd�s
zTestBasic.test_iaddcCs�td�}|�t|jd�|�d�|�t|�ttd���|�|�|�t|�td��t�}|�td��|�t|�tttd����|�t|jt	��dS)Nrlrr|r}Zabcddcba��)
rrErerJr0r1r.r,rr
rZrrr	�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�?rZsupermanrgr9rv)rr,r1r r*�randomr-r2r0rE�
IndexError�__getitem__)rrvr%�lr#�jrrr	�test_getitem�s"


zTestBasic.test_getitemcCsdD]�}tt|��}t|�D]}|�|�|�|�q|�t��|�|d�W5QRXtt|��}t|d�||d<|�t��|�|�W5QRXtt|��}t�||d<|�t��|�|�W5QRXqd}d}t|d�}t	|d�}tdt
|�ddt
|�d�D]�}tdt
|�ddt
|�d�D]z}|dD]j}	z|�|	||�}
Wn:tk
�r�|�t��|�|	||�W5QRXYnX|�|�|	||�|
��qF�q:�qttd	d
d��}td�D]*}|�d
d�}|�||d
�|���q�dS)N)rrX��(rrFrX�	ABCDEFGHI�Z���rbri'r;rUi4!i�)rr,r0�indexrErFrr
rr1r2rf)rrvr%r#�elementsZ
nonelementrg�start�stop�element�target�steprrr	�
test_index	s@&&"zTestBasic.test_indexc	Cs0td�}|�t��|�ddd�}W5QRXdS)NZAAAzHello worldrrW)rrErFr�)rr%r#rrr	�test_index_bug_249137szTestBasic.test_index_bug_24913cCshd}tdt|�ddt|�d�D]<}td�}td�}|�|d�|�|d�|�t|�|�q&dS)Nr�r�rXrbr�)r,r2rr1�insertr0)rr�r#r%rgrrr	�test_insert<s&zTestBasic.test_insertc	Cs�d}t|t|�d�}|�t��|�dd�W5QRXd}tt|�t|��D]R}t|t|�dd�}|�|d�|dkr�|�||d�qN|�||dd�qNdS)N�ABCr=rXr�rr�r)rr2rEr�r�r,r0)r�datar%r�r#rrr	�test_insert_bug_26194Fs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)���r9rrrXr;r�rl)
r�r9rrrXr;i�r]i�r�r]r�i���)rr0ZassertIsNoner>�min)rrvr%rrr	�	test_imulUs2

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)
Nr8r�rrrXr�r<Z	abcabcabcrbr=Zbcabcr�)rr0r�rZrrr	�test_mults*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&�sz*TestBasic.test_setitem.<locals>.<listcomp>rrr9r?)rr,r0r1)rrvr%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,rEr��__delitem__r0r2r��	randrange�assertInZassertNotIn)rrvr%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&�sz*TestBasic.test_reverse.<locals>.<listcomp>r)	r,rr3r0r1r.ZassertIsrEre)rrvr�r#r%rDrrr	�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\Zeabcdr9Zbcdear<�rrr;)
�tupler2rrfr0�joinr,�BIGrEre)rrgrvr%r#rpr�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)NrkrXrr�cr%)
rr0r2r r*rEr�r-r/rrZrrr	�test_len�s

zTestBasic.test_lencCs&t�}|�t|j�|�t|j�dSr)rrEr�r*r rZrrr	�test_underflow�szTestBasic.test_underflowcCs`ttd��}|�t|�d�|��|�t|�d�|�t|�g�|��|�t|�g�dS)NrUr)rr,r0r2rr1rZrrr	�
test_clear�szTestBasic.test_clearcCs�td�}|�d�|�|td��|�d�|�|td��|�t|jd�|�|td��tddt�dg�}t|�}|�t|jd�t||�D]\}}|�||k�q�dD]@}tdg�}|�	t
||�dg�|�t|jd�|�|t��q�dS)	NZabcdefghcijr�Z
abdefghcijZ	abdefghijrlrm)TFrk)r�remover0rErFrr
�ziprurIrr�)rr%rprrrs�matchrrr	�test_removes"


zTestBasic.test_removecCsJttd��}tt|��}|�t|�t|��|�|�|�dt|��dS)Nrz...)rr,�evalrHr0r1r-r��rr%rprrr	�	test_reprs

zTestBasic.test_reprc	Cs�ttd��}|�|�zRt�tj�ttjd�}t||dd�|��ttjd�}|�	|�
�t|��W5|��t�tj�XdS)NrrCr\)�file�endrD)rr,r-rNrrKrLrM�printr0rQrH)rr%rSrrr	�
test_print&s
zTestBasic.test_printcCs$|�ttddd�|�ttd�dS)Nr8rXr<r)rErer�rrrr	�	test_init4szTestBasic.test_initcCs|�tttd��dS)Nr8)rEre�hashrr�rrr	�	test_hash8szTestBasic.test_hashcCs�dD]v}tt|��}|j|j}}t|t�D].}||�|�}|||kr,|�|||�q,|�t|�ttt|t���qdS�N)rrrXrUr�)rr,r-r r�r0r1�r�sizer%r-r*r#rrrrr	�#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,r/r*r�r0r1r�rrr	�$test_long_steadystate_queue_poprightFs�z.TestBasic.test_long_steadystate_queue_poprightcCsVt�}|j|j}}tt�D]}||�qtt�D]}|�}||kr2|�||�q2dSr)rr-r r,r�r0�rr%r-r*r#rrrrr	�test_big_queue_popleftRs
z TestBasic.test_big_queue_popleftcCsVt�}|j|j}}tt�D]}||�qtt�D]}|�}||kr2|�||�q2dSr)rr/r*r,r�r0r�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.r0r2r�rrr	�test_big_stack_rightgs
zTestBasic.test_big_stack_rightcCsjt�}|j|j}}tt�D]}||�qttt��D]}|�}||kr6|�||�q6|�t|�d�dSr�)rr/r r,r�r.r0r2r�rrr	�test_big_stack_leftrs
zTestBasic.test_big_stack_leftcCs@ttd��}t|�}|�t|�t|��|�t|�t|��dS)Nr)rr,�assertNotEqual�idr0r1r�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)NrrUr)rr,�pickle�HIGHEST_PROTOCOL�dumps�loadsr�r�r0r1r>)rr%r#rgrprrr	�test_pickle�s
zTestBasic.test_picklecCs�td�tdd�fD]p}|�|�ttjd�D]R}t�t�||��}|�t|�t|��|�	t|d�t|��|�	|j
|j
�q.qdS)Nr8r<rr9)rr-r,r�r�r�r�r�r�r0r>)rr%r#rprrr	�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&�sz2TestBasic.test_iterator_pickle.<locals>.<listcomp>r)rr,r�r�rGr�r��	enumerater0rnr1�nextr2rE�
StopIteration)
rZorigr��protoZitorg�dumprRr%r#rrrrr	�test_iterator_pickle�s@

zTestBasic.test_iterator_picklecCsbdg}t|g�}t�|�}|�t|�t|��d|d<|�t|�t|��|�t|�t|��dS�Nr;rBr)r�copy�deepcopyr0r1r�r��r�mutr%rprrr	�
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;rBrrbr9�cSsg|]}t���qSrr�)r"r�rrr	r&�sz'TestBasic.test_copy.<locals>.<listcomp>css|]\}}||kVqdSrr)r"rrrsrrr	�	<genexpr>�sz&TestBasic.test_copy.<locals>.<genexpr>)rr�r0r1r�r�r,r>ru�allr�)rr�r%rpr#r>rgrrr	�	test_copy�s

zTestBasic.test_copycCs`dg}t|g�}|��}|�t|�t|��d|d<|�t|�t|��|�t|�t|��dSr�)rr�r0r1r�r�r�rrr	�test_copy_method�s
zTestBasic.test_copy_methodcCs6dtd�fD]$}|�ttt|���tt|���qdS�Nr}��)r,r0r1r.r)rrgrrr	�
test_reversed�szTestBasic.test_reversedcCsDttt���}dtd�fD]$}|�t|t|���tt|���qdSr�)rnr.rr,r0r1)r�klassrgrrr	�test_reversed_new�szTestBasic.test_reversed_newcCs2ddl}t�}td�D]}|�d�|��qdS)NrrUr)�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�	�|�
|�dkd�qdS)Nc@seZdZdS)z,TestBasic.test_container_iterator.<locals>.CN�rrrrrrr	�C�sr�rXrrzCycle was not collected)�objectr,�weakref�refrr.rGrrr�r�ru)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%dPPrlrrX�*�+)	rZcalcvobjsize�struct�calcsizer0r��
__sizeof__r�check_sizeof)rZBLOCKLENZbasesize�	blocksize�checkrrr	�test_sizeofs
zTestBasic.test_sizeofN)7rrrr7rTrVr[rirtrwr{rr�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_onlyrrrrr	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�rb)r,r�SequenceZIterFuncZIterGenZIterFuncStopZ	itermultiZiterfuncr0r1rrEreZIterNextOnlyZ
IterNoNext�ZeroDivisionErrorZ
IterGenExc)rrgr�rrr	�test_constructors�"z(TestVariousIteratorArgs.test_constructorcCs*td�}t|�}|��|�tt|�dS)NZabcdefg)rrGr*rEr
r��rr%rRrrr	�test_iter_with_altered_datasz3TestVariousIteratorArgs.test_iter_with_altered_datacCs*t�}t|�}|�d�|�tt|�dS)Nr;)rrGr-rEr
r�r
rrr	�!test_runtime_error_on_empty_deque%s
z9TestVariousIteratorArgs.test_runtime_error_on_empty_dequeN)rrrrrrrrrr	r	s
r	c@seZdZdS)�DequeNr�rrrr	r+src@seZdZdd�ZdS)�DequeWithBadItercCst�dSr)rer�rrr	�__iter__/szDequeWithBadIter.__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&>sz,TestSubclass.test_basics.<locals>.<listcomp>r'r(csg|]}����qSrr)r!r$rr	r&Bsr+)rr,rr-r.r/r0r1r2r3rr4rr$r	r74s"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)Nr8rr�rWr=)r�__copy__r0rnr1r,r�r�r�r�r�r�)rr%rpr�rgrrr	�test_copy_pickleJs4

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)Nrr8r<rX)r,r�r�rr-r�r�r�r�r0rnr>r*rrrrEre)rr�r%rp�dd�eerrr	r�ns 
z"TestSubclass.test_pickle_recursivecCs<td�}t�|�}|�t|�t|��d}|�tt|�dS)NZgallahad)rr��proxyr0rPrE�ReferenceError)rr%�prrr	�test_weakref�s

zTestSubclass.test_weakrefcCs8Gdd�dt�}|dddg�}|dddg�}||kdS)	Nc@seZdZdd�ZdS)z-TestSubclass.test_strange_subclass.<locals>.XcSstg�Sr)rGr�rrr	r�sz6TestSubclass.test_strange_subclass.<locals>.X.__iter__Nrrrrr	�X�srrrXr<rWrbr�r)rrZd1Zd2rrr	�test_strange_subclass�sz"TestSubclass.test_strange_subclassc	CsnGdd�dt�}|�}dd�}||_|�t��|dW5QRX|�t��|tdddg�W5QRXdS)	Nc@seZdZdS)z&TestSubclass.test_bug_31608.<locals>.XNr�rrrr	r�src_sdgS)Nr�r)�clsrq�kwargsrrr	�bad___new__�sz0TestSubclass.test_bug_31608.<locals>.bad___new__r�rrXr<)r�__new__rEre)rrr%r"rrr	�test_bug_31608�szTestSubclass.test_bug_31608N)rrrr7rr�rrrrr$rrrr	r2s$	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�gettotalrefcountrb)�
test_deque)�sysrr	rr'r)rZrun_unittest�hasattrr�r,r2r�r.r��testr/Zrun_doctest)�verboser0Ztest_classesr�Zcountsr#r/rrr	�	test_main*s$�


r4�__main__T)r3)N)�collectionsrZunittestr2rrr�r�r�r�r�rr�r
rrZTestCaserr	rrrr%r'Z
CommonTestr)r-Z__test__r4rrrrr	�<module>s<{qg



F1le Man4ger