
    <eR                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Zd dl
Z
d dlZ G d de          Z G d de          Z G d de          Z G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Zej          G d  d!                      Z!ej          G d" d#                      Z" ej         d$%           G d& d'                      Z#ej          G d( d)                      Z$ej          G d* d+                      Z%ej          G d, d-                      Z& G d. d/          Z' G d0 d1          Z( G d2 d3ej)                  Z* G d4 d5ej+                  Z,e-d6k    r ej.                     dS dS )7    Nc                       e Zd ZdS )list2N__name__
__module____qualname__     '/usr/lib/python3.11/test/test_pprint.pyr   r              Dr
   r   c                       e Zd Zd ZdS )list3c                 6    t                               |           S N)list__repr__selfs    r   r   zlist3.__repr__       }}T"""r
   Nr   r   r   r   r	   r
   r   r   r      #        # # # # #r
   r   c                       e Zd Zd ZdS )list_custom_reprc                 V    dt          t                              |                     z  S N*)lenr   r   r   s    r   r   zlist_custom_repr.__repr__   !    3t}}T**++++r
   Nr   r	   r
   r   r   r      #        , , , , ,r
   r   c                       e Zd ZdS )tuple2Nr   r	   r
   r   r!   r!      r   r
   r!   c                       e Zd Zd ZdS )tuple3c                 6    t                               |           S r   )tupler   r   s    r   r   ztuple3.__repr__   s    ~~d###r
   Nr   r	   r
   r   r#   r#      s#        $ $ $ $ $r
   r#   c                       e Zd Zd ZdS )tuple_custom_reprc                 V    dt          t                              |                     z  S r   )r   r%   r   r   s    r   r   ztuple_custom_repr.__repr__#   s!    3u~~d++,,,,r
   Nr   r	   r
   r   r'   r'   "   s#        - - - - -r
   r'   c                       e Zd ZdS )set2Nr   r	   r
   r   r*   r*   &   r   r
   r*   c                       e Zd Zd ZdS )set3c                 6    t                               |           S r   )setr   r   s    r   r   zset3.__repr__*   s    ||D!!!r
   Nr   r	   r
   r   r,   r,   )   s#        " " " " "r
   r,   c                       e Zd Zd ZdS )set_custom_reprc                 V    dt          t                              |                     z  S r   )r   r.   r   r   s    r   r   zset_custom_repr.__repr__.   s!    3s||D))****r
   Nr   r	   r
   r   r0   r0   -   s#        + + + + +r
   r0   c                       e Zd ZdS )
frozenset2Nr   r	   r
   r   r3   r3   1   r   r
   r3   c                       e Zd Zd ZdS )
frozenset3c                 6    t                               |           S r   )	frozensetr   r   s    r   r   zfrozenset3.__repr__5   s    !!$'''r
   Nr   r	   r
   r   r5   r5   4   s#        ( ( ( ( (r
   r5   c                       e Zd Zd ZdS )frozenset_custom_reprc                 V    dt          t                              |                     z  S r   )r   r7   r   r   s    r   r   zfrozenset_custom_repr.__repr__9   s#    3y))$//0000r
   Nr   r	   r
   r   r9   r9   8   s#        1 1 1 1 1r
   r9   c                       e Zd ZdS )dict2Nr   r	   r
   r   r<   r<   <   r   r
   r<   c                       e Zd Zd ZdS )dict3c                 6    t                               |           S r   )dictr   r   s    r   r   zdict3.__repr__@   r   r
   Nr   r	   r
   r   r>   r>   ?   r   r
   r>   c                       e Zd Zd ZdS )dict_custom_reprc                 V    dt          t                              |                     z  S r   )r   r@   r   r   s    r   r   zdict_custom_repr.__repr__D   r   r
   Nr   r	   r
   r   rB   rB   C   r   r
   rB   c                   `    e Zd ZU eed<   eed<   dZeed<    ej	        dd          Z
eed<   dS )	
dataclass1field1field2Ffield3   )defaultreprfield4N)r   r   r   str__annotations__intrH   booldataclassesfieldrL   r	   r
   r   rE   rE   G   sV         KKKKKKFD#+#AE:::FC:::::r
   rE   c                   $    e Zd ZU dZeed<   d ZdS )
dataclass2rI   ac                     dS )N0custom repr that doesn't fit within pprint widthr	   r   s    r   r   zdataclass2.__repr__Q   s    AAr
   N)r   r   r   rU   rO   rN   r   r	   r
   r   rT   rT   N   s7         AsJJJB B B B Br
   rT   F)rK   c                       e Zd ZU dZeed<   dS )
dataclass3rI   rU   N)r   r   r   rU   rO   rN   r	   r
   r   rY   rY   T   s         AsJJJJJr
   rY   c                   (    e Zd ZU d ed<   dZeed<   dS )
dataclass4rU   rI   bNr   r   r   rN   r\   rO   r	   r
   r   r[   r[   X   &         OOOAsJJJJJr
   r[   c                   (    e Zd ZU ded<   dZeed<   dS )
dataclass5
dataclass6rU   rI   r\   Nr]   r	   r
   r   r`   r`   ]   r^   r
   r`   c                   (    e Zd ZU ded<   dZeed<   dS )ra   r`   crI   dN)r   r   r   rN   rd   rO   r	   r
   r   ra   ra   b   r^   r
   ra   c                       e Zd Zd ZdS )Unorderablec                 :    t          t          |                     S r   )rM   idr   s    r   r   zUnorderable.__repr__h   s    2d88}}r
   Nr   r	   r
   r   rf   rf   g   s#            r
   rf   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
	Orderablec                     || _         d S r   _hash)r   hashs     r   __init__zOrderable.__init__m   s    


r
   c                     dS )NFr	   r   others     r   __lt__zOrderable.__lt__o   s    ur
   c                     | |k    S r   r	   rq   s     r   __gt__zOrderable.__gt__q       u}r
   c                     | |k    S r   r	   rq   s     r   __le__zOrderable.__le__s   rv   r
   c                     dS )NTr	   rq   s     r   __ge__zOrderable.__ge__u   s    tr
   c                 
    | |u S r   r	   rq   s     r   __eq__zOrderable.__eq__w   s    u}r
   c                 
    | |uS r   r	   rq   s     r   __ne__zOrderable.__ne__y   s    5  r
   c                     | j         S r   rl   r   s    r   __hash__zOrderable.__hash__{   s
    zr
   N)r   r   r   ro   rs   ru   rx   rz   r|   r~   r   r	   r
   r   rj   rj   l   s                    ! ! !    r
   rj   c                   Z   e 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 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e j!        e"j#        j$        d                         Z%d Z&d  Z'd! Z(d" Z)d# Z*d$ Z+d% Z,d& Z-d' Z.d( Z/d) Z0d* Z1d+ Z2d, Z3d- Z4d.S )/QueryTestCasec                     t          t          d                    | _        t          t          d                    | _        | j        | j        d<   d S )Nd      i)r   rangerU   r\   r   s    r   setUpzQueryTestCase.setUp   s=    eCjj!!eCjj!!fsr
   c                    t          j                    }t          j        dddt          j                    d          }t          j        dddt          j                              }t          j        d          }|                     t
                    5  t          j        dddt          j                    d          }d d d            n# 1 swxY w Y   |                     t          t           j        d	           |                     t          t           j        d
           |                     t          t           j        d           |                     t          t           j        d
           d S )N   (      T)indentwidthdepthstreamcompactF
sort_dictsr   r   r   r   )pprintPrettyPrinterioStringIOassertRaises	TypeError
ValueError)r   pps     r   	test_initzQueryTestCase.test_init   s   !##!"A)+F F F!!RBKMM::!U333y)) 	E 	E%aQtDDB	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E*f&:2FFF*f&:!DDD*f&:"EEE*f&:!DDDDDs   *CCCc                    t          j                    }dddddgdddidt          d          d	d
d d| j        | j        fD ]}|                     t          j        |          d|           |                     t          j        |          d|           |                     |                    |          d|           |                     |                    |          d|           d S )N   g       @y               @abc   )r   r   s   defs   ghiTF.expected not isrecursive for expected isreadable for )	r   r   	bytearrayrU   r\   assertFalseisrecursive
assertTrue
isreadable)r   r   safes      r   
test_basiczQueryTestCase.test_basic   s6   !##RUQFFv&&eT3VTV% 	D 	DD V/555BF$HJ J JOOF-d333<@DBD D D R^^D111BF$HJ J JOOBMM$///<@DBD D D D	D 	Dr
   c                     t          j        d           5  d}t          j        |           t          j                                        |           d d d            d S # 1 swxY w Y   d S )Nzthis should not fail)
contextlibredirect_stdoutr   r   )r   values     r   test_stdout_is_Nonez!QueryTestCase.test_stdout_is_None   s    '-- 	1 	1*EM%    ""))%000		1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   =AA#&A#c                 (   | j         | j        d<   i | _        | j        x| j        d<   x| j        d<   | j        d<   t          j                    }| j         | j        | j        | j        | j        ffD ]}|                     t          j        |          d           |                     t          j        |          d           |                     |                    |          d           |                     |                    |          d           | j        	                                 | j         d d = | j        d d = | j         | j        | j        | j        | j        ffD ]}|                     t          j        |          d|           |                     t          j        |          d|           |                     |                    |          d|           |                     |                    |          d|           d S )	NC   r   rI   r   zexpected isrecursivezexpected not isreadabler   r   )
rU   r\   rd   r   r   r   r   r   r   clear)r   r   ickyr   s       r   test_knottedzQueryTestCase.test_knotted   s-    Vr
,0F2q	2DF1Iq	!##FDFDFTVTV,<< 	M 	MDOOF.t446LMMMV.t446OPPPOOBNN4002HIIIR]]4002KLLLL 	F111IF111IFDFDFTVTV,<< 
	D 
	DDV/555BF$HJ J JOOF-d333<@DBD D D R^^D111BF$HJ J JOOBMM$///<@DBD D D D
	D 
	Dr
   c                    t          j                    }t          d          t           t           j        fD ]}|                     t          j        |          d|           |                     t          j        |          d|           |                     |                    |          d|           |                     |                    |          d|           d S )Nr   r   zexpected not isreadable for )r   r   typer   r   r   )r   r   
unreadables      r   test_unreadablezQueryTestCase.test_unreadable   s   !##q''66+== 
	O 
	OJV/
;;;BL*NP P PV.z:::AKMO O O R^^J777BL*NP P PR]]:666AKMO O O O
	O 
	Or
   c                    g ddddddt                      dt                      t                      g t                      t	                      t                      t                      t                      t                      t                      t                      i t                      t                      | j        t          dddd	d
dt          d          ddgddidddgddit          d          t          d          t          t          d                    ddgt          ddg          t	          ddg          t	          t          d                    t          dh          t          dh          t          dh          t          dh          t          dh          t          dh          t          ddi          t          ddi          t          ddd          ddd dR D ]}t!          |          }|                     t          j        |          |           |                     t          j        |dd                              dd          |           |                     t          j        |d          |           |                     t          j        |          |           d S ) Nr   y                g         r
   r	   iy            g      x   xr   r      )rI   r   r   r   r         
   ir   TF.rI   r   r   
 underscore_numbers)r   r!   r#   r   r   r.   r*   r,   r7   r3   r5   r<   r>   r   r   r   rK   assertEqualpformatreplacesaferepr)r   simplenatives      r   test_same_as_reprzQueryTestCase.test_same_as_repr   s   q ! T 3  C  !88%+XX 77$)GG uu #ff '+ff !{{	 %/LL	 3=,,	
 
 !77
 %*GG  )/    % '+ -0 26 8A   S $%a&   !e '(V e}} '-Umm 6<E#JJ5G5G !u $QqEll -21Q%LL ;@c

:K:K A3xx "&qc -1!II !!~~ (21# 9CA3 aV}} ',QFmm Rb))  !  #!  %)!  +.!  	> 	>F$ &\\FV^F33V<<<V^F!AFFF%gdC00&: : :V^FtLLLfUUUV_V44f====/	> 	>r
   c                    d}t                      t          g d          t          t          |                    t                      t          g d          t          t          |                    t                      t          g d          t          t          |                    t	                      t	          g d          t	          t          |                    t                      t          ddi          t          t          t          |          t          |                              fD ]}t          |          }dt          |          z  }| 	                    t          j        |          |           | 	                    t          j        |dd          |           | 	                    t          j        |          |           d S )	N  )rI   r   r   r   r   r   rI   r   r   )r   r   r'   r0   r9   rB   ziprK   r   r   r   r   r   )r   Ncontr   expecteds        r   #test_container_repr_override_calledz1QueryTestCase.test_container_repr_override_called   s    &''%ggg..%eAhh//&((&www//&uQxx00$&&$WWW--$U1XX..*,,*77733*58844%''%q!f--%c%((588&<&<== 	> 	>D  $ZZFS[[(HV^D118<<<V^D!DDDhOOOV_T22H====)	> 	>r
   c                    dddddddd}d}t           t          fD ]3}|                     t          j         ||                    |           4t          d          }dd                    t          t          |                    z  }t          t          fD ]3}|                     t          j         ||                    |           4t          t          d                    }d	d                    t          t          |                    z  }t          t          fD ]3}|                     t          j         ||                    |           4t          d          }d
d                    t          t          |                    z  }t          t          fD ]5}|                     t          j         ||          d          |           6d S )Nr   i  i  )RPM_calRPM_cal2	Speed_calcontroldesk_runtime_usmain_code_runtime_usread_io_runtime_uswrite_io_runtime_usz{'RPM_cal': 0,
 'RPM_cal2': 48059,
 'Speed_cal': 0,
 'controldesk_runtime_us': 0,
 'main_code_runtime_us': 0,
 'read_io_runtime_us': 0,
 'write_io_runtime_us': 43690}r   z[%s],
 z(%s)z[   %s]z,
    r   r   )r@   r<   r   r   r   r   joinmaprM   r   r   r%   r!   )r   oexpr   s       r   test_basic_line_wrapz"QueryTestCase.test_basic_line_wrap  s   '(%&#$$)+ +" 5M 	; 	;DV^DDGG44c::::#JJv{{3sA;;///5M 	; 	;DV^DDGG44c::::%**v{{3sA;;///FO 	; 	;DV^DDGG44c:::: #JJ)..S!5555M 	E 	EDV^DDGGA>>>DDDD	E 	Er
   c                    t          t          d                    }t          ddd          }||g}d}|                     t	          j        |dd	          |           d
}|                     t	          j        |dd	          |           d S )Nr   rI   r   r   )firstsecondthirdzN[   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    {'first': 1, 'second': 2, 'third': 3}]r   *   )r   r   za[   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    {   'first': 1,
        'second': 2,
        'third': 3}])   )r   r   r@   r   r   r   )r   o1o2r   r   s        r   test_nested_indentationsz&QueryTestCase.test_nested_indentations;  s    %))__!1---H. 	!2>>>III
 	!2>>>IIIIIr
   c                 x   d}t          |          }|                     t          j        |d          |           |                     t          j        |d          |           |                     t          j        |d          |           |                     t          j        |d          d           d S )Nz[[[[[[1, 2, 3],
     '1 2']]]],
 {1: [1, 2, 3],
  2: [12, 34]},
 'abc def ghi',
 ('ab cd ef',),
 set2({1, 23}),
 [[[[[1, 2, 3],
     '1 2']]]]]   r            z[[[[[[1,
      2,
      3],
     '1 '
     '2']]]],
 {1: [1,
      2,
      3],
  2: [12,
      34]},
 'abc def '
 'ghi',
 ('ab cd '
  'ef',),
 set2({1,
       23}),
 [[[[[1,
      2,
      3],
     '1 '
     '2']]]]])evalr   r   r   )r   r   r   s      r   
test_widthzQueryTestCase.test_widthJ  s    	 NN444h???444h???444h???444 7 	 	 	 	 	r
   c                 8   |                      t          j        d          d           |                      t          j        dd          d            G fddt                    |                      t          j         d                    d	           d S )
Ni 1234567Tr   	1_234_567c                   (     e Zd Z fdZd Z xZS )/QueryTestCase.test_integer.<locals>.Temperaturec                 H    t                                          |          S r   )super__new__)clscelsius_degreesTemperature	__class__s     r   r   z7QueryTestCase.test_integer.<locals>.Temperature.__new__u  s    ww{ODDDr
   c                     | dz   }| dS )Ngfffffq@u   °Kr	   )r   kelvin_degreess     r   r   z8QueryTestCase.test_integer.<locals>.Temperature.__repr__w  s    !%(----r
   )r   r   r   r   r   __classcell__)r   r   s   @r   r   r   t  sS        E E E E E E. . . . . . .r
   r   r   u
   1273.15°K)r   r   r   rO   )r   r   s    @r   test_integerzQueryTestCase.test_integerp  s    00)<<<DIII;WWW	. 	. 	. 	. 	. 	. 	.# 	. 	. 	. 	D(9(9::LIIIIIr
   c                    dddd}|                      t          j        |          d           |                      t          j        ||g          d           |                      t          j        dg gi d          d           d S )NrI   rU   r\   rc   z{'a': 1, 'b': 1, 'c': 1}z4[{'a': 1, 'b': 1, 'c': 1}, {'a': 1, 'b': 1, 'c': 1}]r   )zxy	ab
r   r	   z#{5: [[]], 'xy\tab\n': (3,), (): {}})r   r   r   r   rd   s     r   test_sorted_dictzQueryTestCase.test_sorted_dict|  s    
 !!$$**,FGGGA//B	D 	D 	D 	Trd(K(KLL2	4 	4 	4 	4 	4r
   c                     t                               d          }|                     t          j        |d          d           |                     t          j        ||gd          d           d S )NcbaFr   z!{'c': None, 'b': None, 'a': None}zF[{'c': None, 'b': None, 'a': None}, {'c': None, 'b': None, 'a': None}])r@   fromkeysr   r   r   r  s     r   test_sort_dictzQueryTestCase.test_sort_dict  sx    MM%  e<<<>abbbA5AAAT	V 	V 	V 	V 	Vr
   c                    t          j                    }|                     t          j        |d          d           t          j        g           }|                     t          j        |d          d           d                                }t          j        t          |t          j                                        }|                     t          j        |          d           d S )NrI   r   zOrderedDict()*the quick brown fox jumped over a lazy dogzOrderedDict([('the', 0),
             ('quick', 1),
             ('brown', 2),
             ('fox', 3),
             ('jumped', 4),
             ('over', 5),
             ('a', 6),
             ('lazy', 7),
             ('dog', 8)]))	collectionsOrderedDictr   r   r   splitr   	itertoolscountr   rd   wordss      r   test_ordered_dictzQueryTestCase.test_ordered_dict  s    #%%333_EEE#B''333_EEE<BBDD#Cy/@/@$A$ABB**	
	 
	 
	 
	 
	r
   c                    d                                 }t          t          |t          j                                        }t          j        |          }|                     t          j	        |          d           t          j        t          |t          j                                        }t          j        |          }|                     t          j	        |          d           d S )Nr  zmappingproxy({'a': 6,
              'brown': 2,
              'dog': 8,
              'fox': 3,
              'jumped': 4,
              'lazy': 7,
              'over': 5,
              'quick': 1,
              'the': 0})a^  mappingproxy(OrderedDict([('the', 0),
                          ('quick', 1),
                          ('brown', 2),
                          ('fox', 3),
                          ('jumped', 4),
                          ('over', 5),
                          ('a', 6),
                          ('lazy', 7),
                          ('dog', 8)])))r  r@   r   r  r  typesMappingProxyTyper   r   r   r  r  )r   r  rd   ms       r   test_mapping_proxyz QueryTestCase.test_mapping_proxy  s    <BBDDUIO--..//"1%%** 	- 		 		 		 #Cy/@/@$A$ABB"1%%** 	-+ 		, 		, 		, 		, 		,r
   c                     t          j                    }t          j        |          }|                     |d           d S )Nznamespace()r  SimpleNamespacer   r   r   r   ns	formatteds      r   test_empty_simple_namespacez)QueryTestCase.test_empty_simple_namespace  s;    "$$N2&&	M22222r
   c                     t          j        dd          }t          j        |          }|                     |d           d S )NrI   r   )rU   r\   znamespace(a=1, b=2)r  r  s      r   test_small_simple_namespacez)QueryTestCase.test_small_simple_namespace  sC    "Q!,,,N2&&	$9:::::r
   c                     t          j        ddddddddd	
	  	        }t          j        |dd          }|                     |d           d S )Nr   rI   r   r   r   r   r   r   r   	thequickbrownfoxjumpedoverrU   lazydog<   r   znamespace(the=0,
          quick=1,
          brown=2,
          fox=3,
          jumped=4,
          over=5,
          a=6,
          lazy=7,
          dog=8)r  r  s      r   test_simple_namespacez#QueryTestCase.test_simple_namespace  su    "

 

 

 N2R:::	 	% 		 		 		 		 		r
   c                      G d dt           j                  } |ddddddd	d
d	  	        }t          j        |d          }|                     |d           d S )Nc                       e Zd ZdS )GQueryTestCase.test_simple_namespace_subclass.<locals>.AdvancedNamespaceNr   r	   r
   r   AdvancedNamespacer3    s          r
   r4  r   rI   r   r   r   r   r   r   r   r&  r/  r   zAdvancedNamespace(the=0,
                  quick=1,
                  brown=2,
                  fox=3,
                  jumped=4,
                  over=5,
                  a=6,
                  lazy=7,
                  dog=8)r  )r   r4  r   r!  s       r   test_simple_namespace_subclassz,QueryTestCase.test_simple_namespace_subclass  s    <<<<< 5<<<

 

 

 N2R000	 	% 		 		 		 		 		r
   c                      t          j        dd                      }t          j        |          }|                     |d           d S )NMyDataclassr	   zMyDataclass())rQ   make_dataclassr   r   r   r   dcr!  s      r   test_empty_dataclassz"QueryTestCase.test_empty_dataclass  sG    :['r::<<N2&&	O44444r
   c                 z    t          dd          }t          j        |          }|                     |d           d S )Ntext{   z3dataclass1(field1='text', field2=123, field3=False))rE   r   r   r   r9  s      r   test_small_dataclassz"QueryTestCase.test_small_dataclass  s=    $$N2&&	$YZZZZZr
   c                     t          dt          d          d          }t          j        ||gdd          }|                     |d           d S )Nzsome fairly long textg    _BTr/  r   r   z[   dataclass1(field1='some fairly long text',
               field2=10000000000,
               field3=True),
    dataclass1(field1='some fairly long text',
               field2=10000000000,
               field3=True)])rE   rO   r   r   r   r9  s      r   test_larger_dataclassz#QueryTestCase.test_larger_dataclass  s]    /TDAANB82a@@@	 %  	! 	! 	! 	! 	!r
   c                 z    t                      }t          j        |d          }|                     |d           d S )N   r   rW   )rT   r   r   r   r9  s      r   test_dataclass_with_reprz&QueryTestCase.test_dataclass_with_repr  s<    \\N2R000	$VWWWWWr
   c                 z    t                      }t          j        |d          }|                     |d           d S )Nr   r   z+<test.test_pprint.dataclass3 object at \w+>)rY   r   r   assertRegexr9  s      r   test_dataclass_no_reprz$QueryTestCase.test_dataclass_no_repr  s<    \\N2R000	$RSSSSSr
   c                     t          d           }||_        t          j        |d          }|                     |d           d S )Nr   r   z!dataclass4(a=...,
           b=1))r[   rU   r   r   r   r9  s      r   test_recursive_dataclassz&QueryTestCase.test_recursive_dataclass  sS    N2R000	 % 	 	 	 	 	r
   c                     t          d           }t          d           }||_        ||_        t	          j        |d          }|                     |d           d S )Nr   r   zLdataclass5(a=dataclass6(c=...,
                        d=1),
           b=1))r`   ra   rU   rc   r   r   r   )r   dc5dc6r!  s       r   test_cyclic_dataclassz#QueryTestCase.test_cyclic_dataclass$  sg    N3b111	 % 	 	 	 	 	r
   c                 :   ddd}d}t                      }|                     |                    |          |           dg}d}|                     |                    |          |           dg}d}|                     |                    |          |           d S )	Nz should be presented using repr()z	like.this)znames with spaceszothers.should.not.bez[{'names with spaces': 'should be presented using repr()',
 others.should.not.be: like.this}z
with spacez['with space']zwithout.spacez[without.space])DottedPrettyPrinterr   r   )r   r   r   dotted_printerr   exp1r   exp2s           r   test_subclassingzQueryTestCase.test_subclassing/  s    "D%02 2% -..//22C888 ^//33T::: //33T:::::r
   c           	         |                      t          j        t                                d           |                      t          j        t          t	          d                              d           |                      t          j        t          t	          d                    d          d           |                      t          j        t          t	          d                    d          d           |                      t          j        t          t	          d                    d          d	           |                      t          j        t                                d
           |                      t          j        t          t	          d                              d           |                      t          j        t          t	          d                    d          d           |                      t          j        t          t	          d                    d          d           |                      t          j        t          t	          d                    d          d           d S )Nzset()r   z	{0, 1, 2}r   rC  r   z{0,
 1,
 2,
 3,
 4,
 5,
 6}z?set2({0,
      1,
      2,
      3,
      4,
      5,
      6})zset3({0, 1, 2, 3, 4, 5, 6})zfrozenset()zfrozenset({0, 1, 2})zbfrozenset({0,
           1,
           2,
           3,
           4,
           5,
           6})zifrozenset2({0,
            1,
            2,
            3,
            4,
            5,
            6})z!frozenset3({0, 1, 2, 3, 4, 5, 6}))
r   r   r   r.   r   r*   r,   r7   r3   r5   r   s    r   test_set_reprszQueryTestCase.test_set_reprsB  s!   ..888E!HH66DDDE!HHR@@@ C 	 	 	 	U1XXbAAA D 	 	 	 	U1XXbAAA6	8 	8 	8 		44mDDD	%(((;(;<</	1 	1 	1	%(((;(;2FFF I 	 	 	 	
588(<(<BGGG J 	 	 	 	
588(<(<BGGG<	> 	> 	> 	> 	>r
   c                 *   d}t           j                            d          }|                     t	          j        |          |           d}t           j                            |          }|                     t	          j        |          |           d S )NaE  {frozenset(): frozenset({frozenset({2}), frozenset({0}), frozenset({1})}),
 frozenset({0}): frozenset({frozenset(),
                            frozenset({0, 2}),
                            frozenset({0, 1})}),
 frozenset({1}): frozenset({frozenset(),
                            frozenset({1, 2}),
                            frozenset({0, 1})}),
 frozenset({2}): frozenset({frozenset(),
                            frozenset({1, 2}),
                            frozenset({0, 2})}),
 frozenset({1, 2}): frozenset({frozenset({2}),
                               frozenset({1}),
                               frozenset({0, 1, 2})}),
 frozenset({0, 2}): frozenset({frozenset({2}),
                               frozenset({0}),
                               frozenset({0, 1, 2})}),
 frozenset({0, 1}): frozenset({frozenset({0}),
                               frozenset({1}),
                               frozenset({0, 1, 2})}),
 frozenset({0, 1, 2}): frozenset({frozenset({1, 2}),
                                  frozenset({0, 2}),
                                  frozenset({0, 1})})}r   aK5  {frozenset({frozenset({0, 2}), frozenset({0})}): frozenset({frozenset({frozenset({0,
                                                                                  2}),
                                                                       frozenset({0,
                                                                                  1,
                                                                                  2})}),
                                                            frozenset({frozenset({0}),
                                                                       frozenset({0,
                                                                                  1})}),
                                                            frozenset({frozenset(),
                                                                       frozenset({0})}),
                                                            frozenset({frozenset({2}),
                                                                       frozenset({0,
                                                                                  2})})}),
 frozenset({frozenset({0, 1}), frozenset({1})}): frozenset({frozenset({frozenset({0,
                                                                                  1}),
                                                                       frozenset({0,
                                                                                  1,
                                                                                  2})}),
                                                            frozenset({frozenset({0}),
                                                                       frozenset({0,
                                                                                  1})}),
                                                            frozenset({frozenset({1}),
                                                                       frozenset({1,
                                                                                  2})}),
                                                            frozenset({frozenset(),
                                                                       frozenset({1})})}),
 frozenset({frozenset({1, 2}), frozenset({1})}): frozenset({frozenset({frozenset({1,
                                                                                  2}),
                                                                       frozenset({0,
                                                                                  1,
                                                                                  2})}),
                                                            frozenset({frozenset({2}),
                                                                       frozenset({1,
                                                                                  2})}),
                                                            frozenset({frozenset(),
                                                                       frozenset({1})}),
                                                            frozenset({frozenset({1}),
                                                                       frozenset({0,
                                                                                  1})})}),
 frozenset({frozenset({1, 2}), frozenset({2})}): frozenset({frozenset({frozenset({1,
                                                                                  2}),
                                                                       frozenset({0,
                                                                                  1,
                                                                                  2})}),
                                                            frozenset({frozenset({1}),
                                                                       frozenset({1,
                                                                                  2})}),
                                                            frozenset({frozenset({2}),
                                                                       frozenset({0,
                                                                                  2})}),
                                                            frozenset({frozenset(),
                                                                       frozenset({2})})}),
 frozenset({frozenset(), frozenset({0})}): frozenset({frozenset({frozenset({0}),
                                                                 frozenset({0,
                                                                            1})}),
                                                      frozenset({frozenset({0}),
                                                                 frozenset({0,
                                                                            2})}),
                                                      frozenset({frozenset(),
                                                                 frozenset({1})}),
                                                      frozenset({frozenset(),
                                                                 frozenset({2})})}),
 frozenset({frozenset(), frozenset({1})}): frozenset({frozenset({frozenset(),
                                                                 frozenset({0})}),
                                                      frozenset({frozenset({1}),
                                                                 frozenset({1,
                                                                            2})}),
                                                      frozenset({frozenset(),
                                                                 frozenset({2})}),
                                                      frozenset({frozenset({1}),
                                                                 frozenset({0,
                                                                            1})})}),
 frozenset({frozenset({2}), frozenset()}): frozenset({frozenset({frozenset({2}),
                                                                 frozenset({1,
                                                                            2})}),
                                                      frozenset({frozenset(),
                                                                 frozenset({0})}),
                                                      frozenset({frozenset(),
                                                                 frozenset({1})}),
                                                      frozenset({frozenset({2}),
                                                                 frozenset({0,
                                                                            2})})}),
 frozenset({frozenset({0, 1, 2}), frozenset({0, 1})}): frozenset({frozenset({frozenset({1,
                                                                                        2}),
                                                                             frozenset({0,
                                                                                        1,
                                                                                        2})}),
                                                                  frozenset({frozenset({0,
                                                                                        2}),
                                                                             frozenset({0,
                                                                                        1,
                                                                                        2})}),
                                                                  frozenset({frozenset({0}),
                                                                             frozenset({0,
                                                                                        1})}),
                                                                  frozenset({frozenset({1}),
                                                                             frozenset({0,
                                                                                        1})})}),
 frozenset({frozenset({0}), frozenset({0, 1})}): frozenset({frozenset({frozenset(),
                                                                       frozenset({0})}),
                                                            frozenset({frozenset({0,
                                                                                  1}),
                                                                       frozenset({0,
                                                                                  1,
                                                                                  2})}),
                                                            frozenset({frozenset({0}),
                                                                       frozenset({0,
                                                                                  2})}),
                                                            frozenset({frozenset({1}),
                                                                       frozenset({0,
                                                                                  1})})}),
 frozenset({frozenset({2}), frozenset({0, 2})}): frozenset({frozenset({frozenset({0,
                                                                                  2}),
                                                                       frozenset({0,
                                                                                  1,
                                                                                  2})}),
                                                            frozenset({frozenset({2}),
                                                                       frozenset({1,
                                                                                  2})}),
                                                            frozenset({frozenset({0}),
                                                                       frozenset({0,
                                                                                  2})}),
                                                            frozenset({frozenset(),
                                                                       frozenset({2})})}),
 frozenset({frozenset({0, 1, 2}), frozenset({0, 2})}): frozenset({frozenset({frozenset({1,
                                                                                        2}),
                                                                             frozenset({0,
                                                                                        1,
                                                                                        2})}),
                                                                  frozenset({frozenset({0,
                                                                                        1}),
                                                                             frozenset({0,
                                                                                        1,
                                                                                        2})}),
                                                                  frozenset({frozenset({0}),
                                                                             frozenset({0,
                                                                                        2})}),
                                                                  frozenset({frozenset({2}),
                                                                             frozenset({0,
                                                                                        2})})}),
 frozenset({frozenset({1, 2}), frozenset({0, 1, 2})}): frozenset({frozenset({frozenset({0,
                                                                                        2}),
                                                                             frozenset({0,
                                                                                        1,
                                                                                        2})}),
                                                                  frozenset({frozenset({0,
                                                                                        1}),
                                                                             frozenset({0,
                                                                                        1,
                                                                                        2})}),
                                                                  frozenset({frozenset({2}),
                                                                             frozenset({1,
                                                                                        2})}),
                                                                  frozenset({frozenset({1}),
                                                                             frozenset({1,
                                                                                        2})})})})testtest_setcuber   r   r   	linegraph)r   cube_repr_tgtrY  cubo_repr_tgtcubos        r   test_set_of_sets_reprsz$QueryTestCase.test_set_of_sets_reprsn  s    4:. }!!!$$--}===\d| }&&t,,--}=====r
   c                    d}dddddddiiiiii}ddddddg gggggg}|                      t          j        |          t          |                     |                      t          j        |          t          |                     |                      t          j        |          t          |                     d}d	}d
}|                      t          j        |d          |           |                      t          j        |d          |           |                      t          j        |d          |           d S )N)rI   )r   )r   )r   )r   r   rI   r   r   r   r   r   z
(1, (...))z
{1: {...}}z
[1, [...]]r   )r   r   r   rK   )r   nested_tuplenested_dictnested_list	lv1_tuplelv1_dictlv1_lists          r   
test_depthzQueryTestCase.test_depthB  sE   11q1q1a&k"23451q1q1b'l"345655tL7I7IJJJ44d;6G6GHHH44d;6G6GHHH 	A>>>	JJJ1===xHHH1===xHHHHHr
   c           
      z   d}d t          |          D             }t          j        |           t          |t                    }d }|                      |t          j        t          |                              dd	                    t          t          |                    z   dz              |                      |t          j        t          |                              dd	                    t          t          |                    z   d	z              |                      |t          j        t                              |                              dd	                    d
 |D                       z   dz              |                     t          j        t          dddi          dt          t                    z   dz              ddg}|                     t          j        t                              |d                    dt!          t          |t                              z             d S )NrC  c                 *    g | ]}t                      S r	   )rf   .0is     r   
<listcomp>z>QueryTestCase.test_sort_unorderable_values.<locals>.<listcomp>T  s    000!000r
   )keyc                 V    |                      dd                               dd          S )Nr   r   r   )r   )ss    r   <lambda>z<QueryTestCase.test_sort_unorderable_values.<locals>.<lambda>W  s$    !))C,,44T"== r
   {,}zfrozenset({z})c              3       K   | ]	}d |z  V  
dS )z%r:NoneNr	   )rj  ks     r   	<genexpr>z=QueryTestCase.test_sort_unorderable_values.<locals>.<genexpr>^  s&      88Q9q=888888r
   r   rI   z{1: 0, z: 0})rI   r   z{%r: 0, %r: 0})r   randomshufflesortedrh   r   r   r   r.   r   r   rK   r7   r@   r  rf   r%   )r   nkeysskeyscleans        r   test_sort_unorderable_valuesz*QueryTestCase.test_sort_unorderable_valuesQ  s   00uQxx000tt$$$==v~c$ii8899#((3tU++,,,s2	4 	4 	4v~ioo>>??CHHSu%5%5666=	? 	? 	?v~dmmD.A.ABBCC#((88%8888883>	@ 	@ 	@ 	aA(>??"T+%6%66>	@ 	@ 	@ gdA(>(>??)E&22F2F2F,G,GG	I 	I 	I 	I 	Ir
   c                    t                      }t          t          |                    }|                     ||           |                     t	          t          |                    t	          t          |                               |                     t          ||g          ||g           |                     t          ||g          ||g           |                     t          j	        t          ||g          d          d|d|d           |                     t          j	        t          ||g          d          d|d|d           |                     t          j	        t                              ||g          d          d|d|d           |                     t          j	        t                              ||g          d          d|d|d           d S )NrI   r   rq  r   rs  z	: None,
 z: None})rf   rj   rn   
assertLessrM   r   r   ry  r   r   r.   r@   r  )r   rU   r\   s      r   *test_sort_orderable_and_unorderable_valuesz8QueryTestCase.test_sort_orderable_and_unorderable_valuesi  s   MMd1gg1DGGc$q''ll333A!Q000A!Q000QF1====)*AAA.	0 	0 	0QF1====)*AAA.	0 	0 	0 	q!f(=(=QGGGG56QQ:	< 	< 	<q!f(=(=QGGGG56QQ:	< 	< 	< 	< 	<r
   c                    d}|                      t          j        |d          d           |                      t          j        d|ddd          d	           d
}|                      t          j        |d          t          |                     |                      t          j        |d          d           |                      t          j        |d          d           |                      t          j        |gggggd          d           |                      t          j        |gggggd          d           |                      t          j        |gggggd          d           d}|                      t          j        |d          t          |                     |                      t          j        d          d           |dz  }t	          dd          D ]|}t          j        ||          }|                      t          |          |           t          j        |gdz  |          }|                      t          |          |gdz             }d S )Nr     r   6('the quick brown '
 'fox jumped over '
 'a lazy dog')rI   r   r  r   zW{'a': 1,
 'b': 'the quick brown '
      'fox jumped over '
      'a lazy dog',
 'c': 2}u@   Portons dix bons "whiskys"
à l'avocat goujat	 qui fumait au zooD      uN   ('Portons dix bons "whiskys"\n'
 "à l'avocat goujat\t qui "
 'fumait au zoo')rC  uV   ('Portons dix bons '
 '"whiskys"\n'
 "à l'avocat "
 'goujat\t qui '
 'fumait au zoo')#   u^   [[[[['Portons dix bons "whiskys"\n'
     "à l'avocat goujat\t qui "
     'fumait au zoo']]]]]un   [[[[['Portons dix bons '
     '"whiskys"\n'
     "à l'avocat "
     'goujat\t qui '
     'fumait au zoo']]]]]   uv   [[[[['Portons dix '
     'bons "whiskys"\n'
     "à l'avocat "
     'goujat\t qui '
     'fumait au '
     'zoo']]]]]dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxP   r   ''r   r   r   )r   r   r   rK   r   r   )r   r*  specialunwrappabler   r!  s         r   test_str_wrapzQueryTestCase.test_str_wrap}  s   :2666 9 	 	 	 	ac(B(B.02 2 24	 	 	 Yr:::DMMJJJr::: = 	 	 	 	r::: = 	 	 	 	WI;-(9DDD G 	 	 	 	WI;-(9DDD G 	 	 	 	WI;-(9DDD G 	 	 	  2>>>[@Q@QRRR++T22221b\\ 	= 	=Ewe<<<IT)__g666y1}EBBBIT)__wi!m<<<<		= 	=r
   c                     d t          d          D             d t          d          D             z   }d}|                     t          j        |dd          |           d S )	Nc                 L    g | ]!}t          t          ||z                      "S r	   r   r   ri  s     r   rl  z.QueryTestCase.test_compact.<locals>.<listcomp>  s*    333Qd5Q<<  333r
   r   c                 F    g | ]}t          t          |                    S r	   r  ri  s     r   rl  z.QueryTestCase.test_compact.<locals>.<listcomp>  s$    ///d588nn///r
   r   z[[], [0], [0, 1, 2, 3],
 [0, 1, 2, 3, 4, 5, 6, 7, 8],
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  14, 15],
 [], [0], [0, 1], [0, 1, 2], [0, 1, 2, 3],
 [0, 1, 2, 3, 4]]/   Tr   r   )r   r   r   r   )r   r   r   s      r   test_compactzQueryTestCase.test_compact  sm    33%((333//eAhh///0 	TBBBHMMMMMr
   c                    d}d}dg|z  }t          |dz
            D ]}|g}t          |dz  dz   |d|z  z   dz
            D ]|}t          j        ||d                                          }t	          t          t          |                    }|                     ||           |                     ||dz
             }d S )	NrC  r   r   rI   r   r   Tr  )	r   r   r   
splitlinesmaxr   r   assertLessEqualassertGreater)r   levelsnumberr   rk  wlinesmaxwidths           r   test_compact_widthz QueryTestCase.test_compact_width  s    C&Lvz"" 	 	AAAvzA~vF
':Q'>?? 	0 	0AN1At<<<GGIIE3sE??++H  1---xQ////		0 	0r
   c                 P   |                      t          j        dd          d           |                      t          j        dd          d           d}|                      t          j        |d          t          |                     |                      t          j        |d	          d
           |                      t          j        |d          d           |                      t          j        |d          d           t	          t          d                    }|                      t          j        |d          t          |                     |                      t          j        |d          d           |                      t          j        |d          d           |                      t          j        |d          d           |                      t          j        d|ddd          d           |                      t          j        d|ddd          d           |                      t          j        |ggggggd          d           |                      t          j        |ggggggd          d           t          dd          D ]|}t          j        ||          }|                      t          |          |           t          j        |gdz  |          }|                      t          |          |gdz             }d S )Nr
   rI   r   zb''s   abcdzb'abcd'   abcdefghijklmnopqrstuvwxyz   r  z$(b'abcdefghijkl'
 b'mnopqrstuvwxyz')   z)(b'abcdefghijkl'
 b'mnopqrstuvwx'
 b'yz')r   =   0   zD(b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b'
 b'\x0c\r\x0e\x0f')    zI(b'\x00\x01\x02\x03'
 b'\x04\x05\x06\x07\x08\t\n\x0b'
 b'\x0c\r\x0e\x0f')zN(b'\x00\x01\x02\x03'
 b'\x04\x05\x06\x07'
 b'\x08\t\n\x0b'
 b'\x0c\r\x0e\x0f')r   r     zJ{'a': 1,
 'b': b'abcdefghijkl'
      b'mnopqrstuvwx'
      b'yz',
 'c': 2}rC  zJ{'a': 1,
 'b': b'abcdefgh'
      b'ijklmnop'
      b'qrstuvwxyz',
 'c': 2}r   z3[[[[[[b'abcdefghijklmnop'
      b'qrstuvwxyz']]]]]]r   zS[[[[[[b'\x00\x01\x02\x03\x04\x05\x06\x07'
      b'\x08\t\n\x0b\x0c\r\x0e\x0f']]]]]]@   )r   r   r   rK   bytesr   r   )r   lettersr  r   r!  s        r   test_bytes_wrapzQueryTestCase.test_bytes_wrap  sj   1555u===q9999EEE/r:::DMMJJJr::: = 	 	 	 	r::: = 	 	 	 	r::: = 	 	 	 b		""r:::DMMJJJr::: = 	 	 	 	r::: = 	 	 	 	q999 < 	 	 	
 	agA(F(F.02 2 24	 	 	 	agA(F(F.02 2 24	 	 	 	gYK=/):(;2FFF I 	 	 	 	gYK=/):(;2FFF I5 	6 	6 	6 1b\\ 	= 	=Ewe<<<IT)__g666y1}EBBBIT)__wi!m<<<<		= 	=r
   c                    |                      t          j        t                      d          d           t          d          }|                      t          j        |d          t	          |                     |                      t          j        |d          d           |                      t          j        |d          d	           |                      t          j        |d
          d	           t          t          d                    }|                      t          j        |d          t	          |                     |                      t          j        |d          d           |                      t          j        |d          d           |                      t          j        |d          d           |                      t          j        d|ddd          d           |                      t          j        |gggggd          d           |                      t          j        |gggggd          d           d S )NrI   r   zbytearray(b'')r  r      z6bytearray(b'abcdefghijkl'
          b'mnopqrstuvwxyz')   zDbytearray(b'abcdefghijkl'
          b'mnopqrstuvwx'
          b'yz')r   r   H   9   zVbytearray(b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b'
          b'\x0c\r\x0e\x0f')r   zdbytearray(b'\x00\x01\x02\x03'
          b'\x04\x05\x06\x07\x08\t\n\x0b'
          b'\x0c\r\x0e\x0f')zrbytearray(b'\x00\x01\x02\x03'
          b'\x04\x05\x06\x07'
          b'\x08\t\n\x0b'
          b'\x0c\r\x0e\x0f')r   r  r  zi{'a': 1,
 'b': bytearray(b'abcdefghijkl'
                b'mnopqrstuvwx'
                b'yz'),
 'c': 2}%   zE[[[[[bytearray(b'abcdefghijklmnop'
               b'qrstuvwxyz')]]]]]2   ze[[[[[bytearray(b'\x00\x01\x02\x03\x04\x05\x06\x07'
               b'\x08\t\n\x0b\x0c\r\x0e\x0f')]]]]])r   r   r   r   rK   r   )r   r  r  s      r   test_bytearray_wrapz!QueryTestCase.test_bytearray_wrap
  s   	1===?OPPP9::r:::DMMJJJr::: =  	! 	! 	! 	r::: = 	 	 	 	r::: = 	 	 	 E"II&&r:::DMMJJJr::: =$ 	% 	% 	% 	r::: =$ 	% 	% 	% 	q999 <$ 	% 	% 	%
 	agA(F(F.02 2 24	 	 	 	WI;-(9DDD G& 	' 	' 	' 	WI;-(9DDD G> 	? 	? 	? 	? 	?r
   c                 v   t          j        t                    }|                     t	          j        |d          d           d                                }t          j        t          t          |t          j	                                        }|                     t	          j        |          d           d S )NrI   r   zdefaultdict(<class 'int'>, {})r  zdefaultdict(<class 'int'>,
            {'a': 6,
             'brown': 2,
             'dog': 8,
             'fox': 3,
             'jumped': 4,
             'lazy': 7,
             'over': 5,
             'quick': 1,
             'the': 0}))
r  defaultdictrO   r   r   r   r  r   r  r  r  s      r   test_default_dictzQueryTestCase.test_default_dict5  s    #C((3335UVVV<BBDD#CUIO4E4E)F)FGG**
	 	 	 	 	r
   c                     t          j                    }|                     t          j        |d          d           t          j        d          }|                     t          j        |d          d           d S )NrI   r   z	Counter()senselessnessr   zDCounter({'s': 6,
         'e': 4,
         'n': 2,
         'l': 1}))r  Counterr   r   r   r  s     r   test_counterzQueryTestCase.test_counterG  s}    !!333[AAA00444	 	 	 	 	r
   c                 N   t          j                    }|                     t          j        |d          d           d                                }t          t          |t          j	                                        }t          j        t          |                    }|                     t          j        |          d           t          j        t          |          t          j        |                    }|                     t          j        |          d           d S )NrI   r   zChainMap({})r  zChainMap({'a': 6,
          'brown': 2,
          'dog': 8,
          'fox': 3,
          'jumped': 4,
          'lazy': 7,
          'over': 5,
          'quick': 1,
          'the': 0})a  ChainMap({'a': 6,
          'brown': 2,
          'dog': 8,
          'fox': 3,
          'jumped': 4,
          'lazy': 7,
          'over': 5,
          'quick': 1,
          'the': 0},
         OrderedDict([('the', 0),
                      ('quick', 1),
                      ('brown', 2),
                      ('fox', 3),
                      ('jumped', 4),
                      ('over', 5),
                      ('a', 6),
                      ('lazy', 7),
                      ('dog', 8)])))r  ChainMapr   r   r   r  r   r   r  r  r@   r  )r   rd   r  itemss       r   test_chainmapzQueryTestCase.test_chainmapR  s     ""333^DDD<BBDDS	 1 12233 e--**	
	 
	 
	  ek.Ee.L.LMM**'	( 	( 	( 	( 	(r
   c                    t          j                    }|                     t          j        |d          d           t          j        d          }|                     t          j        |d          d           d                                }t          j        t          |t          j                                        }|                     t          j        |          d           t          j        t          |t          j                              d          }|                     t          j        |          d	           d S )
NrI   r   z	deque([])r   )maxlenzdeque([], maxlen=7)r  zdeque([('the', 0),
       ('quick', 1),
       ('brown', 2),
       ('fox', 3),
       ('jumped', 4),
       ('over', 5),
       ('a', 6),
       ('lazy', 7),
       ('dog', 8)])zdeque([('brown', 2),
       ('fox', 3),
       ('jumped', 4),
       ('over', 5),
       ('a', 6),
       ('lazy', 7),
       ('dog', 8)],
      maxlen=7))	r  dequer   r   r   r  r   r  r  r  s      r   
test_dequezQueryTestCase.test_dequey  s&   333[AAAQ'''3335JKKK<BBDDc%):):;;<<**	
	 
	 
	 c%):):;;AFFF**		 		 		 		 		r
   c                 ^   t          j                    }|                     t          j        |d          d           d                                }t          j        t          |t          j                                        }|                     t          j        |          d           d S )NrI   r   z{}r  zi{'a': 6,
 'brown': 2,
 'dog': 8,
 'fox': 3,
 'jumped': 4,
 'lazy': 7,
 'over': 5,
 'quick': 1,
 'the': 0})	r  UserDictr   r   r   r  r   r  r  r  s      r   test_user_dictzQueryTestCase.test_user_dict  s     ""333T:::<BBDD UIO,=,=!>!>??**	
	 
	 
	 
	 
	r
   c                 ^   t          j                    }|                     t          j        |d          d           d                                }t          j        t          |t          j                                        }|                     t          j        |          d           d S )NrI   r   z[]r  z{[('the', 0),
 ('quick', 1),
 ('brown', 2),
 ('fox', 3),
 ('jumped', 4),
 ('over', 5),
 ('a', 6),
 ('lazy', 7),
 ('dog', 8)])	r  UserListr   r   r   r  r   r  r  r  s      r   test_user_listzQueryTestCase.test_user_list  s     ""333T:::<BBDD UIO,=,=!>!>??**	
	 
	 
	 
	 
	r
   c                 V   t          j        d          }|                     t          j        |d          d           t          j        d          }|                     t          j        |d          d           |                     t          j        d|id          d           d S )	Nr   rI   r   r  r  rC  r  zF{1: 'the quick '
    'brown fox '
    'jumped over a '
    'lazy dog'})r  
UserStringr   r   r   r  s     r   test_user_stringzQueryTestCase.test_user_string  s    "2&&333T:::"#OPP444	 	 	
 	Ab999	 	 	 	 	r
   N)5r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r"  r$  r0  r5  r;  r?  rA  rD  rG  rI  rM  rS  rU  unittestexpectedFailurerW  supportcpython_onlyr^  rf  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r	   r
   r   r   r   ~   s         
E E ED D D"1 1 1D D DBO O O!> !> !>F> > >4"E "E "EHJ J J$ $ $L
J 
J 
J4 4 4$V V V  &, , ,63 3 3
; ; ;
  0  25 5 5
[ [ [
	! 	! 	!X X X
T T T
  	 	 	; ; ;&*> *> *>X 	\O> O>  O>bI I II I I0< < <(:= := :=x
N 
N 
N
0 
0 
07= 7= 7=r)? )? )?V  $	 	 	%( %( %(N  <  "  "    r
   r   c                       e Zd Zd ZdS )rO  c                     t          |t                    rd|v rt          |          ddfS |ddfS t          j                            | ||||          S )Nr   rI   r   )
isinstancerM   rK   r   r   format)r   objectcontext	maxlevelslevels        r   r  zDottedPrettyPrinter.format  sb    fc"" 	9f}}F||Q))q!|#'..fgy%9 9 9r
   N)r   r   r   r  r	   r
   r   rO  rO    s#        9 9 9 9 9r
   rO  __main__)/r  r   rQ   r   r  r   rw  test.supportrW  test.test_setr  r  r   r   r   r   r%   r!   r#   r'   r.   r*   r,   r0   r7   r3   r5   r9   r@   r<   r>   rB   	dataclassrE   rT   rY   r[   r`   ra   rf   rj   TestCaser   r   rO  r   mainr	   r
   r   <module>r     s0               				                	 	 	 	 	D 	 	 	# # # # #D # # #, , , , ,t , , ,	 	 	 	 	U 	 	 	$ $ $ $ $U $ $ $- - - - - - - -	 	 	 	 	3 	 	 	" " " " "3 " " "+ + + + +c + + +	 	 	 	 	 	 	 	( ( ( ( ( ( ( (1 1 1 1 1I 1 1 1	 	 	 	 	D 	 	 	# # # # #D # # #, , , , ,t , , , ; ; ; ; ; ; ; ; B B B B B B B B
 E"""       #"                               
       $I I I I IH% I I IX"
9 
9 
9 
9 
9&. 
9 
9 
9 zHMOOOOO r
   