Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_deque.cpython-311.opt-1.pyc
�

�KeB����ddlmZddlZddlZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZddlZdZ
d�ZGd�d��ZGd�d	��ZGd
�dej��ZGd�d
ej��ZGd�de��ZGd�de��ZGd�de��ZGd�dej��ZGd�de��ZGd�dej��ZGd�dej��ZdZdeiZd�Zedkrej ��dSdS) ���dequeN)�support�	seq_testsi��c#�K�t��N)�SyntaxError���9/usr/local/apps/python3/lib/python3.11/test/test_deque.py�failr
s����
�rc��eZdZd�ZdS)�BadCmpc��t�r)�RuntimeError��self�others  r�__eq__z
BadCmp.__eq__s���rN��__name__�
__module__�__qualname__rr
rrrrs#����������rrc��eZdZd�Zd�ZdS)�	MutateCmpc�"�||_||_dSr)r�result)rrrs   r�__init__zMutateCmp.__init__s����
�����rc�B�|j���|jSr)r�clearrrs  rrzMutateCmp.__eq__s���
�������{�rN)rrrrrr
rrrrs2�������������rrc�V�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1e2j3Z3e2j4d0���Z5d1S)2�	TestBasicc	�R��ttdd�������td����tdd��D]}��|���t	tdd����D]}��|���|�t���ttdd������|�t���d���fd�td	��D��}|�|ttdd
������|�t���ttd
d�������fd�td	��D��}|�	��|�|ttdd������|�t���ttd
d������dS)
Ni��ix�����8���r�Xc�8��g|]}������Sr
��popleft��.0�i�ds  �r�
<listcomp>z)TestBasic.test_basics.<locals>.<listcomp>*�!���0�0�0���	�	���0�0�0r��2c�8��g|]}������Sr
��popr+s  �rr/z)TestBasic.test_basics.<locals>.<listcomp>.�!���-�-�-�Q������-�-�-r�)
r�ranger�append�reversed�
appendleft�assertEqual�list�len�reverse�rr-�left�rightr.s    @r�test_basicszTestBasic.test_basics s�����%��u�%�%�&�&��	�
�
�5��:�:�����s�C���	�	�A�
�H�H�Q�K�K�K�K��%��a�.�.�)�)�	�	�A�
�L�L��O�O�O�O�����a���$�u�T�3�'7�'7�"8�"8�9�9�9�����Q����%�%�%�0�0�0�0�U�3�Z�Z�0�0�0������t�E�$��O�O�4�4�5�5�5�����a���$�u�R��~�~�"6�"6�7�7�7�-�-�-�-�%��*�*�-�-�-��
�
�
���������U�3��_�_� 5� 5�6�6�6�����a���$�u�R��~�~�"6�"6�7�7�7�7�7rc�6�|�ttdd��|�ttdd��tt	d����}t|d���}|�t
|��g��|�t|��d��|�t
|��gd���|�|tt	d��d����|�d��|�t
|��gd	���|�	d
��|�t
|��gd���|�
ddg��|�t
|��gd���|�d
d
g��|�t
|��gd���tt	d��d���}|�|��|�t|��dd�d��tt	d��d���}|�t|��d��dS)N�abc�������
���maxlenzdeque([7, 8, 9], maxlen=3))���	)rMrNrHrL�)rNrHrOrMr$i��z, 198, 199, [...]], maxlen=10)z%deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))�assertRaises�
ValueErrorr�iterr8r<r=�reprr9r;�extend�
extendleft�r�itr.s   r�test_maxlenzTestBasic.test_maxlen3s)�����*�e�U�B�7�7�7����*�e�U�B�7�7�7�
�%��)�)�_�_���"�Q���������b���2�&�&�&�����a���">�?�?�?�����a���)�)�)�,�,�,�����E�%��)�)�Q�/�/�0�0�0�	�����������a���*�*�*�-�-�-�	���Q��������a���)�)�)�,�,�,�	���"�b���������a���+�+�+�.�.�.�	���a��V��������a���)�)�)�,�,�,��%��*�*�R�(�(�(��	�����������a�������(H�I�I�I��%��)�)�D�)�)�)������a���"I�J�J�J�J�Jrc�6�ttd����}t|d���|�t	|��g��ttd����}td���}|�|��|�t	|��g��ttd����}td���}|�|��|�t	|��g��dS)N�drrJ)rRr8rr<r=rTrUrVs   r�test_maxlen_zerozTestBasic.test_maxlen_zeroJs���
�%��*�*�
�
��
�b����������b���2�&�&�&�
�%��*�*�
�
����O�O�O��	�����������b���2�&�&�&�
�%��*�*�
�
����O�O�O��	���R��������b���2�&�&�&�&�&rc�2�|�t��jd��|�td��jd��|�tdd���jd��|�tdd���jd��|�tdd���jd��|�t��5td��}d|_ddd��dS#1swxYwYdS)NrE�rJ�rrH)r<rrKrP�AttributeError�rr.s  r�test_maxlen_attributezTestBasic.test_maxlen_attributeYs9����������.�.�.�����u���,�d�3�3�3�����u�Q�/�/�/�6��:�:�:�����u�Q�/�/�/�6��:�:�:�����u�Q�/�/�/�6��:�:�:�
�
�
�~�
.�
.�	�	��e���A��A�H�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�(D�D�Dc	�v�ddddzdzfD]e}t|��}t|��}dD]B}|�|�|��|�|��|||f���C�f|�t
|j��|�t
|jdd��Gd	�d
��}tdd|��dg��}|�t|jd��tgd���}|�t|j|����Gd
�d��}|��}tddd|ddg��}||_|�t|jd��tdgdz��}tt|����D]}|�d���|�d��|�|�d��d��|�|�d��d��dS)N��abracadabra�
simsalabim��rE�abcdefghijklmnopqrstuvwxyz�r^c��eZdZd�ZdS)�(TestBasic.test_count.<locals>.BadComparec��t�r)�ArithmeticErrorrs  rrz/TestBasic.test_count.<locals>.BadCompare.__eq__ls��%�%rNrr
rr�
BadComparerjks#������
&�
&�
&�
&�
&rrmrI�rhr^rIc��eZdZd�ZdS)�-TestBasic.test_count.<locals>.MutatingComparec�8�|j���dS)NT)r.r5rs  rrz4TestBasic.test_count.<locals>.MutatingCompare.__eq__ss����
�
�����trNrr
rr�MutatingComparerprs#������
�
�
�
�
rrrr]��rFr)r=rr<�countrP�	TypeErrorrlr.rr8r>�rotate)r�sr.�letterrmrr�mr-s        r�
test_countzTestBasic.test_countcsS���m�\�#�%5�e�%;�<�	S�	S�A��Q���A��a���A�6�
S�
S��� � �������!�'�'�&�/�/�A�q�&�>�R�R�R�R�
S����)�Q�W�-�-�-����)�Q�W�a��3�3�3�	&�	&�	&�	&�	&�	&�	&�	&�
�1�a�����q�)�*�*�����/�1�7�A�6�6�6��)�)�)�������/�1�7�J�J�L�L�A�A�A�	�	�	�	�	�	�	�	�
�O�����1�a��A�q�!�$�%�%��������,����3�3�3�
�4�&��)�����s�1�v�v���	�	�A�
�H�H�R�L�L�L�L�	����������������Q�'�'�'�����������+�+�+�+�+rc	�2�td��}|���|td��td��t��t|��fD]�}|�||kt	|��t	|��kot|��t|��k��|�||kt	|��t	|��kot|��t|��k����ttd��}|D�]l}|D�]e}|�||kt|��t|��k||f��|�||kt|��t|��k||f��|�||kt|��t|��k||f��|�||kt|��t|��k||f��|�||kt|��t|��k||f��|�||kt|��t|��k||f����g��ndS)N�xabcrE�ab)	rc�a�br~�barE�xbar}�cba)rr*r=r<�type�map)rr.�e�args�x�ys      r�test_comparisonszTestBasic.test_comparisons�sA���&�M�M��	�	�	�����U�5�\�\�5��;�;�����a���A�	O�	O�A����Q��T�4��7�7�D��G�G�#3�#H��Q����a���8H�I�I�I����Q��T�t�A�w�w��Q���'7�'L�D��G�G�T�!�W�W�<L�#M�N�N�N�N��5�Q�R�R���	D�	D�A��
D�
D��� � ��a���a���D��G�G�);�a��U�C�C�C�� � ��a���a���D��G�G�);�a��U�C�C�C�� � ��a���a���D��G�G�);�a��U�C�C�C�� � ��a���a���D��G�G�);�a��U�C�C�C�� � ��a���a���D��G�G�);�a��U�C�C�C�� � ��a���a���D��G�G�);�a��U�C�C�C�C�

D�	D�	Drc�f�d}tt|����}t|��D]}|�||v���|�|dz|v��tt|����}t|d��||dz<|�t
��5||vddd��n#1swxYwYtt|����}t
��||dz<|�t
��5||vddd��dS#1swxYwYdS)Nr$rhFr^)rr8�
assertTruerrPrr)r�nr.r-s    r�
test_containszTestBasic.test_contains�s������%��(�(�O�O���q���	$�	$�A��O�O�A��F�#�#�#�#�����1��Q��'�'�'�
�%��(�(�O�O���A�u�%�%��!�Q�$��
�
�
�|�
,�
,�	�	�
��F�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�%��(�(�O�O���(�(��!�Q�$��
�
�
�|�
,�
,�	�	�
��F�F�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�.B?�?C�C�D&�&D*�-D*c���G�fd�d��}t|��|��g���|�t��5d�v}ddd��n#1swxYwYt|��|��g���|�t��5��d��}ddd��dS#1swxYwYdS)Nc���eZdZ�fd�ZdS)�5TestBasic.test_contains_count_stop_crashes.<locals>.Ac�:������tSr)r �NotImplemented)rrr.s  �rrz<TestBasic.test_contains_count_stop_crashes.<locals>.A.__eq__�s������	�	�	�%�%rNr)r.s�r�Ar��s.�������
&�
&�
&�
&�
&�
&�
&rr�rI)rrPrru)rr��_r.s   @r� test_contains_count_stop_crashesz*TestBasic.test_contains_count_stop_crashes�sj���	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�
�1�1�3�3�����*����
�
�
�|�
,�
,�	�	��Q��A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��1�1�3�3�����*����
�
�
�|�
,�
,�	�	�����
�
�A�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�A�A!�$A!�#C�C
�
C
c�z�td��}|�t|jd��|�d��|�t|��td����|�|��|�t|��td����dS)Nrrh�bcd�abcd�abcdabcd)rrPrvrTr<r=r`s  r�test_extendzTestBasic.test_extend�s����#�J�J�����)�Q�X�q�1�1�1�	�����������a���$�v�,�,�/�/�/�	�����������a���$�z�"2�"2�3�3�3�3�3rc���t��}td��}td��}|�||zt����|�||ztd����|�||ztd����|�||ztd����|�||ztd����|�||zt����|�||ztd����|�||ztd����tdd���}td��}|�||ztd����|�t��5td��dzddd��dS#1swxYwYdS)	NrE�def�abcdef�abcabcr]rJ�gh�efgh)rr<�assertIsNotrPrv)rr.r��f�g�hs      r�test_addzTestBasic.test_add�s����G�G���%�L�L���%�L�L������Q�����(�(�(�����Q���h���0�0�0�����Q���h���0�0�0�����Q���e���-�-�-�����Q���e���-�-�-�����Q�����(�(�(�����Q���e���-�-�-�����Q���e���-�-�-��(�1�%�%�%���$�K�K������Q���f�
�
�.�.�.�
�
�
�y�
)�
)�	!�	!��%�L�L�5� � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s�;G�G�"Gc��td��}|dz
}|�t|��td����||z
}|�t|��td����dS)Nrr�r�r�)rr<r=r`s  r�	test_iaddzTestBasic.test_iadd�sk���#�J�J��	�U�
������a���$�v�,�,�/�/�/�	�Q�������a���$�z�"2�"2�3�3�3�3�3rc
���td��}|�t|jd��|�d��|�t|��tt
d������|�|��|�t|��td����t��}|�td����|�t|��tt
td��������|�t|jt����dS)Nrrhr�r��abcddcba��)
rrPrvrUr<r=r:r8r	r
r`s  r�test_extendleftzTestBasic.test_extendleft�s���#�J�J�����)�Q�\�1�5�5�5�	���U��������a���$�x��'7�'7�"8�"8�9�9�9�	���Q��������a���$�z�"2�"2�3�3�3��G�G��	���U�4�[�[�!�!�!�����a���$�x��d���'<�'<�"=�"=�>�>�>����+�q�|�T�V�V�<�<�<�<�<rc��d}tt|����}tt|����}t|��D]�}|���|�d��tj��dkr*|�|��|�|��tdt|��z
t|����D]}���td��}|�|dd��|�|dd��t��}|�	t|jd��|�	t|jd��dS)	Nr$rg�?rh�supermanrxrFr�)rr8r=r*r5�randomr9r>r<rP�
IndexError�__getitem__)rr�r.�lr-�js      r�test_getitemzTestBasic.test_getitem�s?�����%��(�(�O�O����q���N�N���q���	$�	$�A�
�I�I�K�K�K�
�E�E�!�H�H�H��}����$�$����������������1�S��V�V�8�S��V�V�,�,�
$�
$���
$�
�*��������1��s�#�#�#�����2���$�$�$��G�G�����*�a�m�Q�7�7�7����*�a�m�R�8�8�8�8�8rc
��dD�]�}tt|����}t|��D]+}|�|�|��|���,|�t
��5|�|dz��ddd��n#1swxYwYtt|����}t
|d��||dz<|�t��5|�|��ddd��n#1swxYwYtt|����}t��||dz<|�t��5|�|��ddd��n#1swxYwY���d}d}t|dz��}t|dz��}tdt|��dzz
dt|��dzz��D]�}tdt|��dzz
dt|��dzz��D]�}|dzD]�}		|�|	||��}
|�|�|	||��|
���F#t
$rL|�t
��5|�|	||��ddd��n#1swxYwYY��wxYw����ttd	d
d����}td��D]H}|�d
d��}|�||d
��|����IdS)N)rhr^��(r$rhFr^�	ABCDEFGHI�Z���rsri'rHrZi4!i�)rr8r<�indexrPrQrrrr=r>rw)rr�r.r-�elements�
nonelementrx�start�stop�element�target�steps            r�
test_indexzTestBasic.test_index�s,��"�	�	�A��e�A�h�h���A��1�X�X�
0�
0��� � �������Q�/�/�/�/��"�"�:�.�.�
�
�����!�����
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��e�A�h�h���A���5�)�)�A�a��d�G��"�"�<�0�0�
�
�����
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��e�A�h�h���A��h�h�A�a��d�G��"�"�<�0�0�
�
�����
�
�
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�����
��(�Q�,������A������2��A���q��=�!�c�!�f�f�q�j�.�9�9�		P�		P�E��b�3�q�6�6�!�8�m�Q��Q���!��^�<�<�
P�
P��'�#�~�P�P�G�P�!"����%��!>�!>��
�(�(�����%��)F�)F��O�O�O�O��	&�:�:�:�!�.�.�z�:�:�:�:��G�G�G�U�D�9�9�9�:�:�:�:�:�:�:�:�:�:�:����:�:�:�:���:����P�
P�
�%��5�"�%�%�&�&���#�J�J�	�	�D�����c�"�"�A����Q�q�T�4�(�(�(�
�H�H�J�J�J�J�		�	sl�7B�B 	�#B 	�3D�D	�D	�*F�F	�F	�9I<�<$K	� K�8K	�K�K	�K�K	�K	c��td��}|�t��5|�ddd��}ddd��dS#1swxYwYdS)N�AAAzHello worldrr])rrPrQr�)rr.r-s   r�test_index_bug_24913zTestBasic.test_index_bug_24913&s����'�N�N��
�
�
�z�
*�
*�	-�	-����
�q�!�,�,�A�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�A�A�Ac�V�d}tdt|��dzz
dt|��dzz��D]o}td��}td��}|�|d��|�|d��|�t|��|���pdS)Nr�r�r^rsr�)r8r>rr=�insertr<)rr�r-r.rxs     r�test_insertzTestBasic.test_insert+s������r�C��M�M�!�O�+�Q��X����1B�-B�C�C�	)�	)�A��k�"�"�A��[�!�!�A�
�H�H�Q�����
�H�H�Q��������T�!�W�W�a�(�(�(�(�	)�	)rc�(�d}t|t|�����}|�t��5|�dd��ddd��n#1swxYwYd}tt|��t|����D]{}t|t|��dz���}|�|d��|dkr|�||d���\|�||dz
d���|dS)N�ABCrJr^r�rhr�r)rr>rPr�r�r8r<)r�datar.r�r-s     r�test_insert_bug_26194zTestBasic.test_insert_bug_261945sK�����$�s�4�y�y�)�)�)��
�
�
�z�
*�
*�	�	�
�H�H�Q�����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����H�
�
�~�s�8�}�}�5�5�	.�	.�A��h�s�8�}�}�Q��7�7�7�A�
�H�H�Q������A�v�v�� � ��1��s�+�+�+�+�� � ��1�Q�3���-�-�-�-�
	.�	.s�A�A"�%A"c��dD]Q}t��}||z}|�|t����|�|j���RdD]V}td��}||z}|�|td|z����|�|j���WdD]f}tdd��}||z}|�|tdt	|d��z����|�|jd���gdD]V}td��}||z}|�|td|z����|�|j���WdD]`}tdd��}||z}|�|td|zdd�����|�|jd���adS)N)���rFrrhr^rHr�r)
r�rFrrhr^rHi�rfi�r�rfr�i���)rr<�assertIsNonerK�min)rr�r.s   r�	test_imulzTestBasic.test_imulDs���-�	(�	(�A����A�
��F�A����Q����(�(�(����a�h�'�'�'�'�-�	(�	(�A��c�
�
�A�
��F�A����Q��c�A�g���/�/�/����a�h�'�'�'�'�<�	,�	,�A��c�3���A�
��F�A����Q��c�C��3�K�K�&7� 8� 8�9�9�9����Q�X�s�+�+�+�+�-�	(�	(�A��h���A�
��F�A����Q��h��l� 3� 3�4�4�4����a�h�'�'�'�'�<�	,�	,�A��h��$�$�A�
��F�A����Q��x�!�|�T�U�U�&;� <� <�=�=�=����Q�X�s�+�+�+�+�		,�	,rc��td��}|�|dzt����|�|dzt����|�|dztd����|�|dztd����|�|dztd����|�|dz|��|�t��dzt����|�t��dzt����|�t��d	zt����|�d|zt����|�d|zt����|�d|ztd����|�d|ztd����|�d|ztd����tdd	�
��}|�|dzt����|�|dzt����|�|dztd����|�|dztd����|�|dztd����dS)
NrEr�rrhr^r�rI�	abcabcabcrsrJ�bcabcr�)rr<r�r`s  r�test_mulzTestBasic.test_mulcs}���%�L�L������R�����)�)�)�����Q�����(�(�(�����Q���e���-�-�-�����Q���h���0�0�0�����Q���k� 2� 2�3�3�3�����Q���"�"�"�������1��e�g�g�.�.�.�������1��e�g�g�.�.�.�������1��e�g�g�.�.�.�����a�����)�)�)�����Q�����(�(�(�����Q���e���-�-�-�����Q���h���0�0�0�����Q���k� 2� 2�3�3�3��%��"�"�"������R�����)�)�)�����Q�����(�(�(�����Q���e���-�-�-�����Q���g���/�/�/�����R���w���0�0�0�0�0rc��d}tt|����}t|��D]
}d|z||<�|�t|��d�t|��D����t|��}td|z
dd��D]}d|z||<d|z||<�|�t|��|��dS)Nr$rHc��g|]}d|z��S)rHr
�r,r-s  rr/z*TestBasic.test_setitem.<locals>.<listcomp>�s��":�":�":�A�2�a�4�":�":�":rrhrrFrL)rr8r<r=)rr�r.r-r�s     r�test_setitemzTestBasic.test_setitem}s������%��(�(�O�O���q���	�	�A���6�A�a�D�D�����a���":�":��q���":�":�":�;�;�;���G�G���q��s�A�r�"�"�	�	�A��Q�3�A�a�D��Q�3�A�a�D�D�����a���!�$�$�$�$�$rc�R�d}tt|����}|�t|j|dz
��|�t|j|��t|��D]�}|�t
|��||z
��tjt
|��t
|����}||}|�	||��||=|�
||����|�t
|��d��dS)Nrfrhr)rr8rPr��__delitem__r<r>r��	randrange�assertIn�assertNotIn)rr�r.r-r��vals      r�test_delitemzTestBasic.test_delitem�s�����%��(�(�O�O�����*�a�m�a�R��T�:�:�:����*�a�m�Q�7�7�7��q���	%�	%�A����S��V�V�Q�q�S�)�)�)�� �#�a�&�&��#�a�&�&�1�1�A��A�$�C��M�M�#�q�!�!�!��!�����S�!�$�$�$�$�����Q����#�#�#�#�#rc�,�d}d�t|��D��}t|��D]�}t|d|���}|���}|�t	|��t	t|d|�������|�|d��|���|�t	|��|d|�����|�t|jd��dS)Nrfc�4�g|]}tj����Sr
�r�r�s  rr/z*TestBasic.test_reverse.<locals>.<listcomp>�s��2�2�2�A��
���2�2�2rrh)	r8rr?r<r=r:�assertIsrPrv)rr�r�r-r.�rs      r�test_reversezTestBasic.test_reverse�s�����2�2��q���2�2�2���q���	0�	0�A��d�2�A�2�h���A��	�	���A����T�!�W�W�d�8�D��!��H�+=�+=�&>�&>�?�?�?��M�M�!�T�"�"�"�
�I�I�K�K�K����T�!�W�W�d�2�A�2�h�/�/�/�/����)�Q�Y��2�2�2�2�2rc�r�td��}t|��}t|��}|�d��|�d�|��d��t|��}|�d��|�d�|��d��|���|�t|��|��t
|dz��D�]}t|��}t|��}|�|��t
|��D]}|�d���|�t|��t|����|�|��|�t|��|��|�||z
��|�t|��|����t
|dz��D�]}t|��}t|��}|�|��t
|��D]}|�d���|�t|��t|����|�|��|�t|��|��|�||z
��|�t|��|����t|��}t|��}|�tdz��|j}t
tdz��D]}|���
|�t|��t|����|�t|jd	��|�t|jdd
��t��}|���|�|t����dS)N�abcderhrc�eabcdrF�bcdearI�r�rH)
�tupler>rrwr<�joinr8�BIGrPrv)rrxr�r.r-r�r��drs        r�test_rotatezTestBasic.test_rotate�sf���'�N�N����F�F���!�H�H��	����������������W�-�-�-��!�H�H��	����������������W�-�-�-�	���
�
�
�����q���1�%�%�%��q��s���
	*�
	*�A��a���A��a���A�
�H�H�Q�K�K�K��1�X�X�
�
�������������U�1�X�X�u�Q�x�x�0�0�0�
�H�H�a�R�L�L�L����U�1�X�X�q�)�)�)�
�H�H�Q�q�S�M�M�M����U�1�X�X�q�)�)�)�)��q��s���
	*�
	*�A��a���A��a���A�
�H�H�a�R�L�L�L��1�X�X�
�
�������������U�1�X�X�u�Q�x�x�0�0�0�
�H�H�Q�K�K�K����U�1�X�X�q�)�)�)�
�H�H�Q�q�S�M�M�M����U�1�X�X�q�)�)�)�)��!�H�H���!�H�H��	����R�����
�X���s�2�v���	�	�A��B�D�D�D�D�����q���5��8�8�,�,�,����)�Q�X�s�3�3�3����)�Q�X�q�"�5�5�5��G�G��	���
�
�
�����E�G�G�$�$�$�$�$rc��td��}|�t|��d��|���|�t|��d��|���|�t|��d��|�t|j��|�t|��d��|�d��|�t|��d��|�d��|�t|��d��|�	��|�t|��d��dS)Nr~r^rhr�cr.)
rr<r>r*r5rPr�r9r;r r`s  r�test_lenzTestBasic.test_len�s7���$�K�K������Q����#�#�#�	�	�	��������Q����#�#�#�	����������Q����#�#�#����*�a�e�,�,�,�����Q����#�#�#�	����
�
�
�����Q����#�#�#�	���S��������Q����#�#�#�	���	�	�	�����Q����#�#�#�#�#rc��t��}|�t|j��|�t|j��dSr)rrPr�r5r*r`s  r�test_underflowzTestBasic.test_underflow�sA���G�G�����*�a�e�,�,�,����*�a�i�0�0�0�0�0rc��ttd����}|�t|��d��|���|�t|��d��|�t|��g��|���|�t|��g��dS)NrZr)rr8r<r>r r=r`s  r�
test_clearzTestBasic.test_clear�s����%��*�*��������Q����%�%�%�	���	�	�	�����Q����#�#�#�����a���"�%�%�%�	���	�	�	�����a���"�%�%�%�%�%rc�~�td��}|�d��|�|td����|�d��|�|td����|�t|jd��|�|td����tddt��dg��}t|��}|�t|jd��t||��D]\}}|�||u���dD]z}tdg��}|�	t||��dg��|�t|jd��|�|t�����{dS)	N�abcdefghcijr��
abdefghcij�	abdefghijrr�)TFr~)r�remover<rPrQrr�zipr�rTrr�)rr.r�r�r��matchs      r�test_removezTestBasic.test_remove�s����-� � ��	����
�
�
�����E�,�/�/�0�0�0�	����
�
�
�����E�+�.�.�/�/�/����*�a�h��4�4�4�����E�+�.�.�/�/�/�
�3��V�X�X�s�+�,�,���!�H�H�����,���#�6�6�6���1�I�I�	$�	$�D�A�q��O�O�A��F�#�#�#�#�#�	)�	)�E��t�f�
�
�A�
�H�H�i��5�)�)�3�/�0�0�0����j�!�(�C�8�8�8����Q����(�(�(�(�		)�	)rc�V�ttd����}tt|����}|�t|��t|����|�|��|�t|��dd�d��dS)Nr$i��z7, 198, 199, [...]]))rr8�evalrSr<r=r9�rr.r�s   r�	test_reprzTestBasic.test_reprs����%��*�*������a���M�M������a���$�q�'�'�*�*�*�	�����������a�������(>�?�?�?�?�?rc��|�ttddd��|�ttd��dS)NrEr^rIrh)rPrvr�rs r�	test_initzTestBasic.test_inits<�����)�U�E�1�a�8�8�8����)�U�A�.�.�.�.�.rc�b�|�tttd����dS)NrE)rPrv�hashrrs r�	test_hashzTestBasic.test_hashs&�����)�T�5��<�<�8�8�8�8�8rc
��dD]�}tt|����}|j|j}}t|t��D]9}||��|��}|||z
kr|�|||z
���:|�t
|��t
tt|z
t��������dS�N)rrhr^rZr�)rr8r9r*r�r<r=�r�sizer.r9r5r-r�s       r�#test_long_steadystate_queue_popleftz-TestBasic.test_long_steadystate_queue_poplefts���(�	B�	B�D��e�D�k�k�"�"�A��(�A�I�C�F��4��%�%�
0�
0����q�	�	�	��C�E�E����D��=�=��$�$�Q��$��/�/�/�����T�!�W�W�d�5��T��3�+?�+?�&@�&@�A�A�A�A�	B�	Brc
���dD]�}ttt|������}|j|j}}t|t
��D]9}||��|��}|||z
kr|�|||z
���:|�ttt|������ttt
|z
t
��������dSr)rr:r8r;r5r�r<r=r
s       r�$test_long_steadystate_queue_poprightz.TestBasic.test_long_steadystate_queue_popright's���(�		9�		9�D��h�u�T�{�{�+�+�,�,�A��,���C�F��4��%�%�
0�
0����q�	�	�	��C�E�E����D��=�=��$�$�Q��$��/�/�/�����T�(�4��7�7�"3�"3�4�4�!�%��D��#�"6�"6�7�7�
9�
9�
9�
9�		9�		9rc��	t��}|j|j}}tt��D]
}||���tt��D](}|��}||kr|�||���)dSr)rr9r*r8r�r<�rr.r9r5r-r�s      r�test_big_queue_popleftz TestBasic.test_big_queue_popleft3s�����G�G���h��	����s���	�	�A��F�1�I�I�I�I��s���	'�	'�A�����A��A�v�v�� � ��A�&�&�&��	'�	'rc��t��}|j|j}}tt��D]
}||���tt��D](}|��}||kr|�||���)dSr)rr;r5r8r�r<rs      r�test_big_queue_poprightz!TestBasic.test_big_queue_popright>s����G�G���l�A�E����s���	�	�A��F�1�I�I�I�I��s���	'�	'�A�����A��A�v�v�� � ��A�&�&�&��	'�	'rc�\�t��}|j|j}}tt��D]
}||���ttt����D](}|��}||kr|�||���)|�t|��d��dS�Nr)rr9r5r8r�r:r<r>rs      r�test_big_stack_rightzTestBasic.test_big_stack_rightHs����G�G���h������s���	�	�A��F�1�I�I�I�I��%��*�*�%�%�	'�	'�A�����A��A�v�v�� � ��A�&�&�&������Q����#�#�#�#�#rc�\�t��}|j|j}}tt��D]
}||���ttt����D](}|��}||kr|�||���)|�t|��d��dSr)rr;r*r8r�r:r<r>rs      r�test_big_stack_leftzTestBasic.test_big_stack_leftSs����G�G���l�A�I����s���	�	�A��F�1�I�I�I�I��%��*�*�%�%�	'�	'�A�����A��A�v�v�� � ��A�&�&�&������Q����#�#�#�#�#rc��ttd����}t|��}|�t|��t|����|�t|��t|����dS)Nr$)rr8�assertNotEqual�idr<r=rs   r�test_roundtrip_iter_initz"TestBasic.test_roundtrip_iter_init^sj���%��*�*�����!�H�H�����B�q�E�E�2�a�5�5�)�)�)�����a���$�q�'�'�*�*�*�*�*rc��ttd����ttd��d��fD]�}ttjdz��D]�}tj||��}tj|��}|�t|��t|����|�t|��t|����|�|j
|j
������dS)Nr$rZrh)rr8�pickle�HIGHEST_PROTOCOL�dumps�loadsrrr<r=rK)rr.r-rxr�s     r�test_picklezTestBasic.test_pickleds����u�S�z�z�"�"�E�%��*�*�c�$:�$:�:�	5�	5�A��6�2�Q�6�7�7�
5�
5���L��A�&�&���L��O�O���#�#�B�q�E�E�2�a�5�5�1�1�1�� � ��a���$�q�'�'�2�2�2�� � ���1�8�4�4�4�4�
5�	5�	5rc��td��tdd��fD]�}|�|��ttjdz��D]�}tjtj||����}|�t|��t|����|�	t|d��t|����|�	|j
|j
������dS)NrErIrhrF)rr9r8r!r"r$r#rrr<rK)rr.r-r�s    r�test_pickle_recursivezTestBasic.test_pickle_recursivems����u���u�U�A���.�	5�	5�A�
�H�H�Q�K�K�K��6�2�Q�6�7�7�
5�
5���L���a��!3�!3�4�4���#�#�B�q�E�E�2�a�5�5�1�1�1�� � ��A�b�E���B�q�E�E�2�2�2�� � ���1�8�4�4�4�4�	
5�	5�	5rc�\�ttd����}d�|D��}ttjdz��D�]�}t	|��}tj||f|��}tj|��\}}t|��D]
\}}	|	||<�|�t|��t|����|�t|��|��t|��tj||f|��}tj|��\}}t|��D]
\}}	|	||<�|�t|��t|����|�t|��|dd���tdt|����D]}t|���tj||f|��}tj|��\}}t|��D]
\}}	|	||<�|�t|��t|����|�t|��g��|�
tt|��tj||f|��}tj|��\}}t|��D]
\}}	|	||<�|�t|��t|����|�t|��g�����dS)Nr$c��g|]}|dz��S)g)\��(�?r
r�s  rr/z2TestBasic.test_iterator_pickle.<locals>.<listcomp>xs��%�%�%�1��$��%�%�%rrh)rr8r!r"rRr#r$�	enumerater<r�r=�nextr>rP�
StopIteration)
r�origr��proto�itorg�dumprWr.r-r�s
          r�test_iterator_picklezTestBasic.test_iterator_picklevs����U�3�Z�Z� � ��%�%��%�%�%���6�2�Q�6�7�7�$	+�$	+�E���J�J�E��<���
�u�5�5�D��L��&�&�E�B��!�$���
�
���1���!������T�"�X�X�t�E�{�{�3�3�3����T�"�X�X�t�,�,�,�
��K�K�K��<���
�u�5�5�D��L��&�&�E�B��!�$���
�
���1���!������T�"�X�X�t�E�{�{�3�3�3����T�"�X�X�t�A�B�B�x�0�0�0��1�c�$�i�i�(�(�
�
���U������<���
�u�5�5�D��L��&�&�E�B��!�$���
�
���1���!������T�"�X�X�t�E�{�{�3�3�3����T�"�X�X�r�*�*�*�
���m�T�5�9�9�9��<���
�u�5�5�D��L��&�&�E�B��!�$���
�
���1���!������T�"�X�X�t�E�{�{�3�3�3����T�"�X�X�r�*�*�*�*�I$	+�$	+rc�~�dg}t|g��}tj|��}|�t	|��t	|����d|d<|�t
|��t
|����|�t	|��t	|����dS�NrHrOr)r�copy�deepcopyr<r=rr�r�mutr.r�s    r�
test_deepcopyzTestBasic.test_deepcopy�s����d���3�%�L�L���M�!��������a���$�q�'�'�*�*�*���A�����B�q�E�E�2�a�5�5�)�)�)����D��G�G�T�!�W�W�-�-�-�-�-rc�L�dg}t|g��}tj|��}|�t|��t|����d|d<|�t|��t|����|�t|��t|����t
d��D]�}t
dd��D]�}d�t
|��D��}|dkrt|��nt||��}|���}|�||��|�|j|j��|�td�t||��D��������dS)	NrHrOrrsrF�c�4�g|]}tj����Sr
r�)r,r�s  rr/z'TestBasic.test_copy.<locals>.<listcomp>�s��7�7�7��V�]�_�_�7�7�7rc3�$K�|]\}}||uV��dSrr
)r,r�r�s   r�	<genexpr>z&TestBasic.test_copy.<locals>.<genexpr>�s*����#A�#A�t�q�!�A��F�#A�#A�#A�#A�#A�#Ar)rr4r<r=rrr8rKr��allr�)rr7r.r�r-rKrxs       r�	test_copyzTestBasic.test_copy�s���d���3�%�L�L���I�a�L�L������a���$�q�'�'�*�*�*���A�����B�q�E�E�2�a�5�5�)�)�)�����a���$�q�'�'�*�*�*��q���	C�	C�A���A�,�,�
C�
C��7�7�e�A�h�h�7�7�7�� &�"���E�!�H�H�H�%��6�2B�2B���F�F�H�H��� � ��A�&�&�&�� � ���1�8�4�4�4�����#A�#A�s�1�a�y�y�#A�#A�#A� A� A�B�B�B�B�

C�	C�	Crc�~�dg}t|g��}|���}|�t|��t|����d|d<|�t|��t|����|�t|��t|����dSr3)rr4r<r=rrr6s    r�test_copy_methodzTestBasic.test_copy_method�s����d���3�%�L�L��
�F�F�H�H������a���$�q�'�'�*�*�*���A�����B�q�E�E�2�a�5�5�)�)�)�����a���$�q�'�'�*�*�*�*�*rc
���dtd��fD]Y}|�ttt	|������tt|�������ZdS�Nr���)r8r<r=r:r)rrxs  r�
test_reversedzTestBasic.test_reversed�sg���%��+�+�&�	J�	J�A����T�(�5��8�8�"4�"4�5�5�t�H�Q�K�K�7H�7H�I�I�I�I�	J�	Jrc
�$�ttt������}dtd��fD]U}|�t|t|������tt|�������VdSrC)r�r:rr8r<r=)r�klassrxs   r�test_reversed_newzTestBasic.test_reversed_new�s����X�e�g�g�&�&�'�'���%��+�+�&�	G�	G�A����T�%�%��a���/�/�2�2�D��!���4E�4E�F�F�F�F�	G�	Grc��ddl}t��}td��D]&}|�d��|j���'dS)NrrZrh)�gcrr8r9�collect)rrJr.r-s    r�test_gc_doesnt_blowupzTestBasic.test_gc_doesnt_blowup�sS���	�	�	�
�G�G���s���	�	�A�
�H�H�Q�K�K�K��B�J�L�L�L�L�	�	rc��Gd�dt��}td��D]�}|��}tj|��}|dkrt	|dg��}ntt	|dg����}t
|��|_~~tj	��|�
|��dud����dS)Nc��eZdZdS)�,TestBasic.test_container_iterator.<locals>.CN�rrrr
rr�CrO���������DrrQr^rrhzCycle was not collected)�objectr8�weakref�refrr:rRr�rJrKr�)rrQr-�objrU�	containers      r�test_container_iteratorz!TestBasic.test_container_iterator�s���	�	�	�	�	��	�	�	��q���
	F�
	F�A��!�#�#�C��+�c�"�"�C��A�v�v�!�3��(�O�O�	�	�$�U�C��8�_�_�5�5�	���O�O�C�E��Y��J�L�L�L��O�O�C�C�E�E�T�M�+D�E�E�E�E�
	F�
	Frc�,�d}d}tjd|z��}tjd|z��}|�t
�t����|��|j}|t��||z��|td��||z��|td|dz
z��||z��|td|z��|d|zz��|tdd|zz��|d	|zz��dS)
Nrt�@z2P5n%dPPzP%dPPrrhr^�*�+)	r�calcvobjsize�struct�calcsizer<rS�
__sizeof__r�check_sizeof)r�
MAXFREEBLOCKS�BLOCKLEN�basesize�	blocksize�checks      r�test_sizeofzTestBasic.test_sizeof�s���
����'�
�]�(B�C�C���O�G�h�$6�7�7�	�����*�*�5�7�7�3�3�X�>�>�>��!��
��e�g�g�x�)�+�,�,�,�
��e�C�j�j�(�Y�.�/�/�/�
��e�C�8�a�<�(�)�)�8�i�+?�@�@�@�
��e�C�(�N�#�#�X��I�
�%=�>�>�>�
��e�C�2��=�)�*�*�H�r�I�~�,E�F�F�F�F�FrN)6rrrrCrXr[rar{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
rrrrrrrr%r'r1r8r?rArErHrLrXrra�cpython_onlyrgr
rrr"r"s������8�8�8�&K�K�K�.
'�
'�
'����,�,�,�BD�D�D�"���(
�
�
�4�4�4�!�!�!�(4�4�4�
=�
=�
=�9�9�9�(,�,�,�\-�-�-�
)�)�)�
.�
.�
.�,�,�,�>1�1�1�4
%�
%�
%�$�$�$�
3�
3�
3�3%�3%�3%�j$�$�$� 1�1�1�
&�&�&�)�)�)�0@�@�@�/�/�/�9�9�9�	B�	B�	B�
9�
9�
9�	'�	'�	'�'�'�'�	$�	$�	$�	$�	$�	$�+�+�+�5�5�5�5�5�5�'+�'+�'+�R.�.�.�C�C�C�$+�+�+�J�J�J�G�G�G�
���F�F�F� �'�L���G�G���G�G�Grr"c� �eZdZd�Zd�Zd�ZdS)�TestVariousIteratorArgsc��ddtd��dtddd��fD�]2}tjtjtjtjtjtjfD]Q}|�tt||������t||�������R|�tttj
|����|�tttj|����|�tttj|������4dS)N�123rcr�)�dog333333�?rDi�rs)r8r�Sequence�IterFunc�IterGen�IterFuncStop�	itermulti�iterfuncr<r=rrPrv�IterNextOnly�
IterNoNext�ZeroDivisionError�
IterGenExc)rrxr�s   r�test_constructorz(TestVariousIteratorArgs.test_constructor�s����U�4�[�[�+�u�T�$�q�7I�7I�J�	Q�	Q�A��(�)�*<��'��)?��)�9�+=�?�
@�
@��� � ��e�A�A�a�D�D�k�k�!2�!2�D���1���J�J�?�?�?�?����i��	�0F�q�0I�0I�J�J�J����i��	�0D�Q�0G�0G�H�H�H����/��	�8L�Q�8O�8O�P�P�P�P�	Q�	Qrc��td��}t|��}|���|�tt
|��dS)N�abcdefg)rrRr5rPrr+�rr.rWs   r�test_iter_with_altered_dataz3TestVariousIteratorArgs.test_iter_with_altered_datasE���)����
�!�W�W��	���������,��b�1�1�1�1�1rc��t��}t|��}|�d��|�tt
|��dS)NrH)rrRr9rPrr+r{s   r�!test_runtime_error_on_empty_dequez9TestVariousIteratorArgs.test_runtime_error_on_empty_dequesC���G�G��
�!�W�W��	����������,��b�1�1�1�1�1rN)rrrrxr|r~r
rrrjrj�sD������Q�Q�Q�2�2�2�2�2�2�2�2rrjc��eZdZdS)�DequeNrPr
rrr�r�
s�������Drr�c��eZdZdZdS)�DequeWithSlots)r�r��__dict__N)rrr�	__slots__r
rrr�r�s������&�I�I�Irr�c��eZdZd�ZdS)�DequeWithBadIterc��t�r)rvrs r�__iter__zDequeWithBadIter.__iter__s���rN�rrrr�r
rrr�r�s#����������rr�c�L�eZdZd�Zd�Zd�Zd�Zd�Zej	d���Z
dS)�TestSubclassc	���ttd�������td����tdd��D]}��|���t	tdd����D]}��|���|�t���ttdd������|�t���d���fd�td��D��}|�|ttdd	������|�t���ttd	d�������fd
�td��D��}|�	��|�|ttdd������|�t���ttd	d��������
��|�t���d��dS)N�r$r%r&rr'c�8��g|]}������Sr
r)r+s  �rr/z,TestSubclass.test_basics.<locals>.<listcomp>#r0rr1r2c�8��g|]}������Sr
r4r+s  �rr/z,TestSubclass.test_basics.<locals>.<listcomp>'r6rr7)r�r8rr9r:r;r<r=r>r?r r@s    @rrCzTestSubclass.test_basicss�����%��)�)����	�
�
�5��:�:�����s�C���	�	�A�
�H�H�Q�K�K�K�K��%��a�.�.�)�)�	�	�A�
�L�L��O�O�O�O�����a���$�u�T�3�'7�'7�"8�"8�9�9�9�����Q����%�%�%�0�0�0�0�U�3�Z�Z�0�0�0������t�E�$��O�O�4�4�5�5�5�����a���$�u�R��~�~�"6�"6�7�7�7�-�-�-�-�%��*�*�-�-�-��
�
�
���������U�3��_�_� 5� 5�6�6�6�����a���$�u�R��~�~�"6�"6�7�7�7�	���	�	�	�����Q����#�#�#�#�#rc	��ttfD�]L}|d��|dd���fD�]/}dg|_dg|_|���}|�t
|��t
|����|�t|��t|����||��}|�t
|��t
|����|�t|��t|����ttj
dz��D�]}tj||��}tj|��}|�
t|��t|����|�t
|��t
|����|�t|��t|����|�|j|j��|�|j|j��|�t!|d������!��1��NdS)	NrEr�r]rJr��zrhr�)r�r�r�r��__copy__r<r�r=r8r!r"r#r$rr�assertFalse�hasattr)r�clsr.r�r.rxs      r�test_copy_picklezTestSubclass.test_copy_pickle/s����.�(�	6�	6�C��S��Z�Z���W�Q�!7�!7�!7�7�
6�
6���e����e����J�J�L�L��� � ��a���$�q�'�'�2�2�2�� � ��a���$�q�'�'�2�2�2��C��F�F��� � ��a���$�q�'�'�2�2�2�� � ��a���$�q�'�'�2�2�2�"�6�#:�Q�#>�?�?�6�6�E���Q��.�.�A���Q���A��'�'��1���r�!�u�u�5�5�5��$�$�T�!�W�W�d�1�g�g�6�6�6��$�$�T�!�W�W�d�1�g�g�6�6�6��$�$�Q�S�!�#�.�.�.��$�$�Q�S�!�#�.�.�.��$�$�W�Q��_�_�5�5�5�5�6�
6�	6�	6rc�<�ttjdz��D�]�}td��tdd��fD�]�}|�|��tjtj||����}|�t|��t|����|�	t|��t|����|�	|j|j��|���}|���}|�	t|��t|����|�	||��||_
tjtj||����}|�	t|j
��t|�������td��tdd��fD])}|�t tj||���*���dS)NrhrErIr^)r8r!r"r�r9r$r#rrr<r�rKr5r�r�rPrv)rr.r.r��dd�ees      rr'z"TestSubclass.test_pickle_recursiveGs����6�2�Q�6�7�7�	E�	E�E��5�\�\�5���?�?�2�
1�
1����������L���a��!7�!7�8�8���#�#�B�q�E�E�2�a�5�5�1�1�1�� � ��a���$�q�'�'�2�2�2�� � ���1�8�4�4�4��U�U�W�W���U�U�W�W��� � ��B����A���/�/�/�� � ��A�&�&�&�����L���a��!7�!7�8�8��� � ��A�C���"�Q�%�%�0�0�0�0�%�e�,�,�.>�u�a�.H�.H�H�
E�
E���!�!�)�V�\�1�e�D�D�D�D�
E�#	E�	Erc��td��}tj|��}|�t	|��t	|����d}tj��|�tt|��dS)N�gallahad)	rrT�proxyr<�strr�
gc_collectrP�ReferenceError)rr.�ps   r�test_weakrefzTestSubclass.test_weakref\sr���*�����M�!��������Q����Q���(�(�(�����������.�#�q�1�1�1�1�1rc�l�Gd�dt��}|gd���}|gd���}||kdS)Nc��eZdZd�ZdS)�-TestSubclass.test_strange_subclass.<locals>.Xc� �tg��Sr)rRrs rr�z6TestSubclass.test_strange_subclass.<locals>.X.__iter__fs
���B�x�x�rNr�r
rr�Xr�es#������
 �
 �
 �
 �
 rr�rn)r]rsr:r)rr��d1�d2s    r�test_strange_subclassz"TestSubclass.test_strange_subclassds]��	 �	 �	 �	 �	 ��	 �	 �	 ��Q�w�w�w�Z�Z��
�Q�w�w�w�Z�Z��
�b����rc�P�Gd�dt��}|��}d�}||_|�t��5|dzddd��n#1swxYwY|�t��5|tgd���zddd��dS#1swxYwYdS)Nc��eZdZdS)�&TestSubclass.test_bug_31608.<locals>.XNrPr
rrr�r�qrRrr�c��dgS)Nr[r
)r�r��kwargss   r�bad___new__z0TestSubclass.test_bug_31608.<locals>.bad___new__ts	���4�Krr[rn)r�__new__rPrv)rr�r.r�s    r�test_bug_31608zTestSubclass.test_bug_31608msN��	�	�	�	�	��	�	�	�
�A�C�C��	�	�	���	�
�
�
�y�
)�
)�	�	�
��F�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	!�	!�
��i�i�i� � � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s$�A�A�A�9B�B�"BN)rrrrCr�r'r�r�rrhr�r
rrr�r�s�������$�$�$�,6�6�6�0E�E�E�*2�2�2����
��!�!���!�!�!rr�c��eZdZdd�ZdS)�SubclassWithKwargsrhc�.�tj|��dSr)rr)r�newargs  rrzSubclassWithKwargs.__init__~s��
��t�����rN)rh)rrrrr
rrr�r�}s(�����������rr�c��eZdZd�ZdS)�TestSubclassWithKwargsc�&�td���dS)Nrh)r�)r�rs r�test_subclass_with_kwargsz0TestSubclassWithKwargs.test_subclass_with_kwargs�s���!�$�$�$�$�$�$rN)rrrr�r
rrr�r��s#������%�%�%�%�%rr�c�*�eZdZeZd�Zd�Zd�Zd�ZdS)�TestSequencec��dSrr
rs rr�zTestSequence.test_getitem�����rc��dSrr
rs r�
test_getslicezTestSequence.test_getslice�r�rc��dSrr
rs r�test_subscriptzTestSequence.test_subscript�r�rc�0�|�d��dS)Nz-Exhausted deque iterator doesn't free a deque)�skipTestrs r�test_free_after_iteratingz&TestSequence.test_free_after_iterating�s���
�
�E�F�F�F�F�FrN)	rrrr�	type2testr�r�r�r�r
rrr�r��sZ�������I�
�
�
�
�
�
�
�
�
�G�G�G�G�Grr�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']]]]

�
libreftestc�R�|�tj����|Sr)�addTest�doctest�DocTestSuite)�loader�tests�patterns   r�
load_testsr�s"��	�M�M�'�&�(�(�)�)�)��Lr�__main__)!�collectionsrr��unittest�testrrrJrTr4r!r�r^r�r
rr�TestCaser"rjr�r�r�r�r�r��
CommonTestr�r��__test__r�r�mainr
rr�<module>r�s�����������������#�#�#�#�#�#�#�#�	�	�	�	���������
�
�
�
�
�
�
�
�
�
�
�
����������������������UG�UG�UG�UG�UG��!�UG�UG�UG�n2�2�2�2�2�h�/�2�2�2�0	�	�	�	�	�E�	�	�	�'�'�'�'�'�U�'�'�'������u����c!�c!�c!�c!�c!�8�$�c!�c!�c!�L���������%�%�%�%�%�X�.�%�%�%�
G�G�G�G�G�9�'�G�G�G�*b�
�N
�:�&�����
�z����H�M�O�O�O�O�O��r