Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.220.147.78
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_deque.cpython-310.pyc
o

`b���@s6ddlmZddlZddlmZmZddlZddlZddlZddl	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�Zedkr�ed d!�dSdS)#���dequeN)�support�	seq_testsi��ccs�t��N)�SyntaxError�rr�8/usr/local/python-3.10/lib/python3.10/test/test_deque.py�fail
s�r
c@�eZdZdd�ZdS)�BadCmpcC�t�r)�RuntimeError��self�otherrrr	�__eq__�z
BadCmp.__eq__N��__name__�
__module__�__qualname__rrrrr	r�rc@seZdZdd�Zdd�ZdS)�	MutateCmpcCs||_||_dSr)r�result)rrrrrr	�__init__s
zMutateCmp.__init__cCs|j��|jSr)r�clearrrrrr	rs
zMutateCmp.__eq__N)rrrrrrrrr	rs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.dYdZ�Z/d[d\�Z0d]d^�Z1e2j3Z3e2j4d_d`��Z5daS)b�	TestBasiccsttdd�����td��tdd�D]}��|�qttdd��D]}��|�q"|�t��ttdd���|�t��d��fdd	�td
�D�}|�|ttdd���|�t��ttdd����fdd	�td
�D�}|�	�|�|ttd
d���|�t��ttdd
���dS)Ni��ix�����8���r�Xc�g|]}����qSr��popleft��.0�i��drr	�
<listcomp>)�z)TestBasic.test_basics.<locals>.<listcomp>��2cr"r��popr%r(rr	r*-r+�)
r�ranger�append�reversed�
appendleft�assertEqual�list�len�reverse�rr'�left�rightrr(r	�test_basicsszTestBasic.test_basicscCsX|�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|�dd�d�ttd�dd�}|�t|�d�dS)N�abc�������
���maxlenzdeque([7, 8, 9], maxlen=3))���	)rErFr@rD�)rFr@rGrEri��z, 198, 199, [...]], maxlen=10)z%deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))�assertRaises�
ValueErrorr�iterr1r5r6�reprr2r4�extend�
extendleft�r�itr)rrr	�test_maxlen2s*


zTestBasic.test_maxlencCs�ttd��}t|dd�|�t|�g�ttd��}tdd�}|�|�|�t|�g�ttd��}tdd�}|�|�|�t|�g�dS)N�drrB)rJr1rr5r6rLrMrNrrr	�test_maxlen_zeroIs



zTestBasic.test_maxlen_zerocCs�|�t�jd�|�td�jd�|�tddd�jd�|�tddd�jd�|�tddd�jd�|�t��td�}d|_Wd�dS1sJwYdS)Nr=�rB�rr@)r5rrCrH�AttributeError�rr)rrr	�test_maxlen_attributeXs"�zTestBasic.test_maxlen_attributec	CsZdddddfD]}t|�}t|�}dD]}|�|�|�|�|�|||f�qq	|�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��r=�abcdefghijklmnopqrstuvwxyz�rTc@r)z(TestBasic.test_count.<locals>.BadComparecSr
r)�ArithmeticErrorrrrr	rkrz/TestBasic.test_count.<locals>.BadCompare.__eq__Nrrrrr	�
BadComparejrr]rA�r[rTrAc@r)z-TestBasic.test_count.<locals>.MutatingComparecSs|j��dS)NT)r)r/rrrr	rrs
z4TestBasic.test_count.<locals>.MutatingCompare.__eq__Nrrrrr	�MutatingCompareqrr_rS��r>r)r6rr5�countrH�	TypeErrorr\r)rr1r7�rotate)r�sr)Zletterr]r_�mr'rrr	�
test_countbs0"�
zTestBasic.test_countcCsztd�}|��|td�td�t�t|�fD]/}|�||kt|�t|�ko,t|�t|�k�|�||kt|�t|�koBt|�t|�k�qttd�}|D]m}|D]h}|�||kt|�t|�k||f�|�||kt|�t|�k||f�|�||kt|�t|�k||f�|�||kt|�t|�k||f�|�||kt|�t|�k||f�|�||kt|�t|�k||f�qQqMdS)N�xabcr=�ab)	rX�a�briZbar=ZxbarhZcba)rr$r6r5�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�n1sBwYtt|��}t�||d<|�t��
||vWd�dS1siwYdS)Nrr[FrT)rr1�
assertTruerrHrr)r�nr)r'rrr	�
test_contains�s
�
"�zTestBasic.test_containscs�G�fdd�d�}t|�|�g��|�t��d�v}Wd�n1s%wYt|�|�g��|�t����d�}Wd�dS1sHwYdS)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�srwrA)rrHrrb)rrw�_rr(r	� test_contains_count_stop_crashes�s
�"�z*TestBasic.test_contains_count_stop_crashescCsXtd�}|�t|jd�|�d�|�t|�td��|�|�|�t|�td��dS)Nrjr[�bcd�abcd�abcdabcd)rrHrcrLr5r6rVrrr	�test_extend�s

zTestBasic.test_extendcCst�}td�}td�}|�||t��|�||td��|�||td��|�||td��|�||td��|�||t��|�||td��|�||td��tddd�}td�}|�||td��|�t��td�dWd�dS1s�wYdS)	Nr=�def�abcdef�abcabcrSrBZghZefgh)rr5�assertIsNotrHrc)rr)rn�f�g�hrrr	�test_add�s""�zTestBasic.test_addcCsDtd�}|d7}|�t|�td��||7}|�t|�td��dS)Nrjrzr{r|)rr5r6rVrrr	�	test_iadd�s
zTestBasic.test_iaddcCs�td�}|�t|jd�|�d�|�t|�ttd���|�|�|�t|�td��t�}|�td��|�t|�tttd����|�t|jt	��dS)Nrjr[rzr{Zabcddcba��)
rrHrcrMr5r6r3r1rr
rVrrr	�test_extendleft�s

zTestBasic.test_extendleftcCs�d}tt|��}tt|��}t|�D]3}|��|�d�t��dkr-|�|�|�|�tdt|�t|��D]}||||ksDJ�q8qtd�}|�|dd�|�|dd�t�}|�	t
|jd�|�	t
|jd�dS)	Nrrg�?r[Zsupermanrer>rt)rr1r6r$r/�randomr2r7r5rH�
IndexError�__getitem__)rrtr)�lr'�jrrr	�test_getitem�s$


�zTestBasic.test_getitemcCsHdD]�}tt|��}t|�D]}|�|�|�|�q|�t��|�|d�Wd�n1s1wYtt|��}t|d�||d<|�t��
|�|�Wd�n1sZwYtt|��}t�||d<|�t��
|�|�Wd�n1s�wYqd}d}t|d�}t	|d�}tdt
|�ddt
|�d�D]W}tdt
|�ddt
|�d�D]C}|dD]<}	z	|�|	||�}
Wn%ty�|�t��|�|	||�Wd�n1s�wYYq�w|�|�|	||�|
�q�q�q�ttd	d
d��}td�D]}|�d
d�}|�||d
�|���qdS)N)r[rT��(rr[FrT�	ABCDEFGHI�Z���r`ri'r@rQi4!i�)rr1r5�indexrHrIrrrr6r7rd)rrtr)r'�elementsZ
nonelementre�start�stop�element�target�steprrr	�
test_index�sT����&&������zTestBasic.test_indexcCsFtd�}|�t��|�ddd�}Wd�dS1swYdS)NZAAAzHello worldrrS)rrHrIr�)rr)r'rrr	�test_index_bug_24913%s"�zTestBasic.test_index_bug_24913cCshd}tdt|�ddt|�d�D]}td�}td�}|�|d�|�|d�|�t|�|�qdS)Nr�r�rTr`r�)r1r7rr6�insertr5)rr�r'r)rerrr	�test_insert*s&�zTestBasic.test_insertcCs�d}t|t|�d�}|�t��|�dd�Wd�n1s wYd}tt|�t|��D])}t|t|�dd�}|�|d�|dkrP|�||d�q1|�||dd�q1dS)N�ABCrBrTr�r[r�r)rr7rHr�r�r1r5)r�datar)r�r'rrr	�test_insert_bug_261944s��zTestBasic.test_insert_bug_26194c	Cs4dD]}t�}||9}|�|t��|�|j�qdD]}td�}||9}|�|td|��|�|j�qdD]}tdd�}||9}|�|tdt|d���|�|jd�q8dD]}td�}||9}|�|td|��|�|j�qZdD] }tdd�}||9}|�|td|dd���|�|jd�qwdS)N)���r>rr[rTr@r�rj)
r�r>rr[rTr@i�rYi�r�rYri���)rr5ZassertIsNonerC�min)rrtr)rrr	�	test_imulCs4

�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)
Nr=r�rr[rTr�rAZ	abcabcabcr`rBZbcabcr�)rr5r�rVrrr	�test_mulbs*zTestBasic.test_mulcCs�d}tt|��}t|�D]}d|||<q|�t|�dd�t|�D��t|�}td|dd�D]}d|||<d|||<q0|�t|�|�dS)	Nrr@cSsg|]}d|�qS)r@rr%rrr	r*�r+z*TestBasic.test_setitem.<locals>.<listcomp>r[rr>rD)rr1r5r6)rrtr)r'r�rrr	�test_setitem|szTestBasic.test_setitemcCs�d}tt|��}|�t|j|d�|�t|j|�t|�D]*}|�t|�||�t�t|�t|��}||}|�	||�||=|�
||�q|�t|�d�dS)NrYr[r)rr1rHr��__delitem__r5r7r��	randrangeZassertInZassertNotIn)rrtr)r'r��valrrr	�test_delitem�szTestBasic.test_delitemc	Cs�d}dd�t|�D�}t|�D]4}t|d|��}|��}|�t|�tt|d|����|�|d�|��|�t|�|d|��q|�t|jd�dS)NrYcS�g|]}t���qSr�r�r%rrr	r*�r+z*TestBasic.test_reverse.<locals>.<listcomp>r[)	r1rr8r5r6r3ZassertIsrHrc)rrtr�r'r)�rrrr	�test_reverse�s zTestBasic.test_reversecCs&td�}t|�}t|�}|�d�|�d�|�d�t|�}|�d�|�d�|�d�|��|�t|�|�t|d�D]B}t|�}t|�}|�|�t|�D]}|�d�qQ|�t|�t|��|�|�|�t|�|�|�||�|�t|�|�q>t|d�D]B}t|�}t|�}|�|�t|�D]}|�d�q�|�t|�t|��|�|�|�t|�|�|�||�|�t|�|�q�t|�}t|�}|�td�|j}ttd�D]}|�q�|�t|�t|��|�t	|jd	�|�t	|jdd
�t�}|��|�|t��dS)N�abcder[rXZeabcdr>ZbcdearA�rpr@)
�tupler7rrdr5�joinr1�BIGrHrc)rrertr)r'rnr�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)NrirTr[r�cr))
rr5r7r$r/rHr�r2r4rrVrrr	�test_len�s

zTestBasic.test_lencCs&t�}|�t|j�|�t|j�dSr)rrHr�r/r$rVrrr	�test_underflow�szTestBasic.test_underflowcCs`ttd��}|�t|�d�|��|�t|�d�|�t|�g�|��|�t|�g�dS)NrQr)rr1r5r7rr6rVrrr	�
test_clear�szTestBasic.test_clearcCs�td�}|�d�|�|td��|�d�|�|td��|�t|jd�|�|td��tddt�dg�}t|�}|�t|jd�t||�D]\}}|�||u�qHdD] }tdg�}|�	t
||�dg�|�t|jd�|�|t��qVdS)	NZabcdefghcijr�Z
abdefghcijZ	abdefghijrjrk)TFri)r�remover5rHrIrr�ziprsrLrr�)rr)rnrprq�matchrrr	�test_remove�s$


�zTestBasic.test_removecCsRttd��}tt|��}|�t|�t|��|�|�|�t|�dd�d�dS)Nri��z7, 198, 199, [...]]))rr1�evalrKr5r6r2�rr)rnrrr	�	test_repr
s

zTestBasic.test_reprcCs$|�ttddd�|�ttd�dS)Nr=rTrAr[)rHrcr�rrrr	�	test_initszTestBasic.test_initcCs|�tttd��dS)Nr=)rHrc�hashrr�rrr	�	test_hashszTestBasic.test_hashcCs�dD];}tt|��}|j|j}}t|t�D]}||�|�}|||kr-|�|||�q|�t|�ttt|t���qdS�N)rr[rTrQr�)rr1r2r$r�r5r6�r�sizer)r2r/r'rprrr	�#test_long_steadystate_queue_poplefts� �z-TestBasic.test_long_steadystate_queue_popleftcCs�dD]A}ttt|���}|j|j}}t|t�D]}||�|�}|||kr/|�|||�q|�ttt|���ttt|t���qdSr�)rr3r1r4r/r�r5r6r�rrr	�$test_long_steadystate_queue_popright&s���z.TestBasic.test_long_steadystate_queue_poprightcCsX	t�}|j|j}}tt�D]}||�qtt�D]}|�}||kr)|�||�qdSr)rr2r$r1r�r5�rr)r2r/r'rprrr	�test_big_queue_popleft2s
��z TestBasic.test_big_queue_popleftcCsVt�}|j|j}}tt�D]}||�qtt�D]}|�}||kr(|�||�qdSr)rr4r/r1r�r5r�rrr	�test_big_queue_popright=s
��z!TestBasic.test_big_queue_poprightcC�jt�}|j|j}}tt�D]}||�qttt��D]}|�}||kr*|�||�q|�t|�d�dS�Nr)rr2r/r1r�r3r5r7r�rrr	�test_big_stack_rightG�
�zTestBasic.test_big_stack_rightcCr�r�)rr4r$r1r�r3r5r7r�rrr	�test_big_stack_leftRr�zTestBasic.test_big_stack_leftcCs@ttd��}t|�}|�t|�t|��|�t|�t|��dS)Nr)rr1�assertNotEqual�idr5r6r�rrr	�test_roundtrip_iter_init]sz"TestBasic.test_roundtrip_iter_initcCs�ttd��ttd�d�fD]3}ttjd�D])}t�||�}t�|�}|�t|�t|��|�t	|�t	|��|�|j
|j
�qq
dS)NrrQr[)rr1�pickle�HIGHEST_PROTOCOL�dumps�loadsr�r�r5r6rC)rr)r'rernrrr	�test_picklecs
��zTestBasic.test_picklecCs�td�tdd�fD]8}|�|�ttjd�D])}t�t�||��}|�t|�t|��|�	t|d�t|��|�	|j
|j
�qq	dS)Nr=rAr[r>)rr2r1r�r�r�r�r�r�r5rC)rr)r'rnrrr	�test_pickle_recursivels
��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]\}}	|	||<q�|�t	|�t	|��|�t
|�g�|�
tt|�t�||f|�}t�|�\}}t|�D]\}}	|	||<q�|�t	|�t	|��|�t
|�g�qdS)NrcSsg|]}|d�qS)g)\��(�?rr%rrr	r*wr+z2TestBasic.test_iterator_pickle.<locals>.<listcomp>r[)rr1r�r�rJr�r��	enumerater5rlr6�nextr7rH�
StopIteration)
rZorigr��protoZitorg�dumprOr)r'rprrr	�test_iterator_pickleusB




�zTestBasic.test_iterator_picklecCsbdg}t|g�}t�|�}|�t|�t|��d|d<|�t|�t|��|�t|�t|��dS�Nr@rGr)r�copy�deepcopyr5r6r�r��r�mutr)rnrrr	�
test_deepcopy�s

zTestBasic.test_deepcopyc	Cs�dg}t|g�}t�|�}|�t|�t|��d|d<|�t|�t|��|�t|�t|��td�D]A}tdd�D]9}dd�t|�D�}|dkrMt|�nt||�}|��}|�||�|�|j|j�|�t	d	d
�t
||�D���q:q3dS)Nr@rGrr`r>�cSr�rr�)r&r�rrr	r*�r+z'TestBasic.test_copy.<locals>.<listcomp>css�|]	\}}||uVqdSrr)r&rprqrrr	�	<genexpr>�s�z&TestBasic.test_copy.<locals>.<genexpr>)rr�r5r6r�r�r1rCrs�allr�)rr�r)rnr'rCrerrr	�	test_copy�s"

 ��zTestBasic.test_copycCs`dg}t|g�}|��}|�t|�t|��d|d<|�t|�t|��|�t|�t|��dSr�)rr�r5r6r�r�r�rrr	�test_copy_method�s
zTestBasic.test_copy_methodcCs6dtd�fD]}|�ttt|���tt|���qdS�Nr{��)r1r5r6r3r)rrerrr	�
test_reversed�s"�zTestBasic.test_reversedcCsDttt���}dtd�fD]}|�t|t|���tt|���q
dSr�)rlr3rr1r5r6)r�klassrerrr	�test_reversed_new�s"�zTestBasic.test_reversed_newcCs2ddl}t�}td�D]}|�d�|��qdS)NrrQr[)�gcrr1r2�collect)rr�r)r'rrr	�test_gc_doesnt_blowup�s

�zTestBasic.test_gc_doesnt_blowupcCs�Gdd�dt�}td�D]1}|�}t�|�}|dkr!t|dg�}ntt|dg��}t|�|_~~t�	�|�
|�dud�qdS)Nc@�eZdZdS)z,TestBasic.test_container_iterator.<locals>.CN�rrrrrrr	�C��r�rTrr[zCycle was not collected)�objectr1�weakref�refrr3rJrpr�r�rs)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%dPPrjr[rT�*�+)	rZcalcvobjsize�struct�calcsizer5r��
__sizeof__r�check_sizeof)rZBLOCKLENZbasesize�	blocksize�checkrrr	�test_sizeof�s
"zTestBasic.test_sizeofN)6rrrr<rPrRrWrgrrruryr}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]A}tjtjtjtjtjtjfD]}|�t	t
||���t	||���q|�tt
t�
|��|�tt
t�|��|�tt
t�|��q
dS)NZ123rXr�)Zdog333333�?r�i�r`)r1r�SequenceZIterFuncZIterGenZIterFuncStopZ	itermultiZiterfuncr5r6rrHrcZIterNextOnlyZ
IterNoNext�ZeroDivisionErrorZ
IterGenExc)rrer�rrr	�test_constructor�s�"�z(TestVariousIteratorArgs.test_constructorcCs*td�}t|�}|��|�tt|�dS)NZabcdefg)rrJr/rHrr��rr)rOrrr	�test_iter_with_altered_data�sz3TestVariousIteratorArgs.test_iter_with_altered_datacCs*t�}t|�}|�d�|�tt|�dS)Nr@)rrJr2rHrr�rrrr	�!test_runtime_error_on_empty_deques
z9TestVariousIteratorArgs.test_runtime_error_on_empty_dequeN)rrrrr
rrrrr	r�s
rc@r�)�DequeNr�rrrr	rr�rc@r)�DequeWithBadItercCr
r)rcr�rrr	�__iter__rzDequeWithBadIter.__iter__N�rrrrrrrr	rrrc@sBeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	dd��Z
d
S)�TestSubclasscs,ttd�����td��tdd�D]}��|�qttdd��D]}��|�q!|�t��ttdd���|�t��d��fdd�td	�D�}|�|ttdd
���|�t��ttd
d����fdd�td	�D�}|�	�|�|ttdd���|�t��ttd
d�����
�|�t��d�dS)
N�rrr rr!cr"rr#r%r(rr	r*r+z,TestSubclass.test_basics.<locals>.<listcomp>r,r-cr"rr.r%r(rr	r*"r+r0)rr1rr2r3r4r5r6r7r8rr9rr(r	r<s"zTestSubclass.test_basicscCs�td�}|��}|�t|�t|��|�t|�t|��t|�}|�t|�t|��|�t|�t|��ttjd�D]+}t�||�}t�	|�}|�
t|�t|��|�t|�t|��|�t|�t|��q;tddd�}|��}|�t|�t|��|�t|�t|��t|�}|�t|�t|��|�t|�t|��ttjd�D]+}t�||�}t�	|�}|�
t|�t|��|�t|�t|��|�t|�t|��q�dS)Nr=r[r�rSrB)r�__copy__r5rlr6r1r�r�r�r�r�r�)rr)rnr�rerrr	�test_copy_pickle*s6

�zTestSubclass.test_copy_picklecCsttjd�D]|}td�tdd�fD][}|�|�t�t�||��}|�t|�t|��|�	t
|�t
|��|�	|j|j�|��}|��}|�	t|�t|��|�	||�||_
t�t�||��}|�	t|j
�t|��qtd�tdd�fD]}|�ttj||�qwqdS)Nr[r=rArT)r1r�r�rr2r�r�r�r�r5rlrCr/rprrHrc)rr�r)rn�dd�eerrr	r�Ns$
��z"TestSubclass.test_pickle_recursivecCsDtd�}t�|�}|�t|�t|��d}t��|�tt|�dS)NZgallahad)	rr��proxyr5�strr�
gc_collectrH�ReferenceError)rr)�prrr	�test_weakrefcs
zTestSubclass.test_weakrefcCs4Gdd�dt�}|gd��}|gd��}||kdS)Nc@r)z-TestSubclass.test_strange_subclass.<locals>.XcSstg�Sr)rJr�rrr	rmsz6TestSubclass.test_strange_subclass.<locals>.X.__iter__Nrrrrr	�Xlrrr^)rSr`r�r)rrZd1Zd2rrr	�test_strange_subclassksz"TestSubclass.test_strange_subclasscCs�Gdd�dt�}|�}dd�}||_|�t��|dWd�n1s&wY|�t��|tgd��Wd�dS1sDwYdS)Nc@r�)z&TestSubclass.test_bug_31608.<locals>.XNr�rrrr	rxr�rc_sdgS)Nr�r)�clsro�kwargsrrr	�bad___new__{sz0TestSubclass.test_bug_31608.<locals>.bad___new__r�r^)r�__new__rHrc)rrr)r#rrr	�test_bug_31608ts
�"�zTestSubclass.test_bug_31608N)rrrr<rr�rr rrr%rrrr	rs$	rc@seZdZddd�ZdS)�SubclassWithKwargsr[cCst�|�dSr)rr)r�newargrrr	r�szSubclassWithKwargs.__init__N)r[)rrrrrrrr	r&�sr&c@r)�TestSubclassWithKwargscCstdd�dS)Nr[)r')r&r�rrr	�test_subclass_with_kwargs��z0TestSubclassWithKwargs.test_subclass_with_kwargsN)rrrr)rrrr	r(�rr(c@s0eZdZeZdd�Zdd�Zdd�Zdd�Zd	S)
�TestSequencecC�dSrrr�rrr	r���zTestSequence.test_getitemcCr,rrr�rrr	�
test_getslice�r-zTestSequence.test_getslicecCr,rrr�rrr	�test_subscript�r-zTestSequence.test_subscriptcCs|�d�dS)Nz-Exhausted deque iterator doesn't free a deque)ZskipTestr�rrr	�test_free_after_iterating�r*z&TestSequence.test_free_after_iteratingN)	rrrrZ	type2testr�r.r/r0rrrr	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|�|r<t|d�r<ddl	}dgd}t
t|��D]}tj|�|��|�
�||<q&t|�ddlm}t�||�dS)Nr�gettotalrefcountr`)�
test_deque)�sysrrrr(r+rZrun_unittest�hasattrr�r1r7r�r2�print�testr3Zrun_doctest)�verboser4Ztest_classesr��countsr'r3rrr	�	test_mains$�


r:�__main__T)r8r)�collectionsrZunittestr7rrr�r�r�r�r�rr�r
rrZTestCaserrrrrr&r(Z
CommonTestr+r1Z__test__r:rrrrr	�<module>s@[rg
�
© 2025 GrazzMean