
    0hhR                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKr	S SK
r
S SKr " S S\5      r " S S\5      r " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\R@                   " S  S!5      5       r!\R@                   " S" S#5      5       r"\R@                  " S$S%9 " S& S'5      5       r#\R@                   " S( S)5      5       r$\R@                   " S* S+5      5       r%\R@                   " S, S-5      5       r& " S. S/5      r' " S0 S15      r( " S2 S3\RR                  5      r* " S4 S5\RV                  5      r,\-S6:X  a  \R\                  " 5         gg)7    Nc                       \ rS rSrSrg)list2    N__name__
__module____qualname____firstlineno____static_attributes__r       9/opt/python-3.13.8/usr/lib/python3.13/test/test_pprint.pyr   r          r   r   c                       \ rS rSrS rSrg)list3   c                 ,    [         R                  U 5      $ N)list__repr__selfs    r   r   list3.__repr__       }}T""r   r   Nr   r	   r
   r   r   r   r   r   r   r   r          #r   r   c                       \ rS rSrS rSrg)list_custom_repr   c                 D    S[        [        R                  U 5      5      -  $ N*)lenr   r   r   s    r   r   list_custom_repr.__repr__       3t}}T*+++r   r   Nr   r   r   r   r   r          ,r   r   c                       \ rS rSrSrg)tuple2   r   Nr   r   r   r   r(   r(      r   r   r(   c                       \ rS rSrS rSrg)tuple3   c                 ,    [         R                  U 5      $ r   )tupler   r   s    r   r   tuple3.__repr__   s    ~~d##r   r   Nr   r   r   r   r+   r+      s    $r   r+   c                       \ rS rSrS rSrg)tuple_custom_repr"   c                 D    S[        [        R                  U 5      5      -  $ r!   )r#   r.   r   r   s    r   r   tuple_custom_repr.__repr__#   s    3u~~d+,,,r   r   Nr   r   r   r   r1   r1   "   s    -r   r1   c                       \ rS rSrSrg)set2&   r   Nr   r   r   r   r6   r6   &   r   r   r6   c                       \ rS rSrS rSrg)set3)   c                 ,    [         R                  U 5      $ r   )setr   r   s    r   r   set3.__repr__*   s    ||D!!r   r   Nr   r   r   r   r9   r9   )   s    "r   r9   c                       \ rS rSrS rSrg)set_custom_repr-   c                 D    S[        [        R                  U 5      5      -  $ r!   )r#   r<   r   r   s    r   r   set_custom_repr.__repr__.   s    3s||D)***r   r   Nr   r   r   r   r?   r?   -   s    +r   r?   c                       \ rS rSrSrg)
frozenset21   r   Nr   r   r   r   rD   rD   1   r   r   rD   c                       \ rS rSrS rSrg)
frozenset34   c                 ,    [         R                  U 5      $ r   )	frozensetr   r   s    r   r   frozenset3.__repr__5   s    !!$''r   r   Nr   r   r   r   rG   rG   4   s    (r   rG   c                       \ rS rSrS rSrg)frozenset_custom_repr8   c                 D    S[        [        R                  U 5      5      -  $ r!   )r#   rJ   r   r   s    r   r   frozenset_custom_repr.__repr__9   s    3y))$/000r   r   Nr   r   r   r   rM   rM   8   s    1r   rM   c                       \ rS rSrSrg)dict2<   r   Nr   r   r   r   rR   rR   <   r   r   rR   c                       \ rS rSrS rSrg)dict3?   c                 ,    [         R                  U 5      $ r   )dictr   r   s    r   r   dict3.__repr__@   r   r   r   Nr   r   r   r   rU   rU   ?   r   r   rU   c                       \ rS rSrS rSrg)dict_custom_reprC   c                 D    S[        [        R                  U 5      5      -  $ r!   )r#   rX   r   r   s    r   r   dict_custom_repr.__repr__D   r%   r   r   Nr   r   r   r   r[   r[   C   r&   r   r[   c                   d    \ rS rSr% \\S'   \\S'   Sr\\S'   \	R                  " SSS9r\\S'   S	rg
)
dataclass1G   field1field2Ffield3   )defaultreprfield4r   N)r   r	   r
   r   str__annotations__intrd   booldataclassesfieldrh   r   r   r   r   r`   r`   G   s-    KKFD##AE:FC:r   r`   c                   *    \ rS rSr% Sr\\S'   S rSrg)
dataclass2N   re   ac                     g)N0custom repr that doesn't fit within pprint widthr   r   s    r   r   dataclass2.__repr__Q   s    Ar   r   N)	r   r	   r
   r   rr   rk   rj   r   r   r   r   r   rp   rp   N   s    AsJBr   rp   F)rg   c                   $    \ rS rSr% Sr\\S'   Srg)
dataclass3T   re   rr   r   N)r   r	   r
   r   rr   rk   rj   r   r   r   r   rw   rw   T   s    AsJr   rw   c                   .    \ rS rSr% S \S'   Sr\\S'   Srg)
dataclass4X   rr   re   br   Nr   r	   r
   r   rj   r|   rk   r   r   r   r   rz   rz   X       OAsJr   rz   c                   .    \ rS rSr% S\S'   Sr\\S'   Srg)
dataclass5]   
dataclass6rr   re   r|   r   Nr}   r   r   r   r   r   ]   r~   r   r   c                   .    \ rS rSr% S\S'   Sr\\S'   Srg)r   b   r   cre   dr   N)r   r	   r
   r   rj   r   rk   r   r   r   r   r   r   b   r~   r   r   c                       \ rS rSrS rSrg)Unorderableg   c                 *    [        [        U 5      5      $ r   )ri   idr   s    r   r   Unorderable.__repr__h   s    2d8}r   r   Nr   r   r   r   r   r   g   s    r   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)	Orderablel   c                     Xl         g r   _hash)r   hashs     r   __init__Orderable.__init__m   s    
r   c                     g)NFr   r   others     r   __lt__Orderable.__lt__o   s    r   c                 
    X:g  $ r   r   r   s     r   __gt__Orderable.__gt__q   
    }r   c                 
    X:H  $ r   r   r   s     r   __le__Orderable.__le__s   r   r   c                     g)NTr   r   s     r   __ge__Orderable.__ge__u   s    r   c                     XL $ r   r   r   s     r   __eq__Orderable.__eq__w   s
    }r   c                     XL$ r   r   r   s     r   __ne__Orderable.__ne__y   s      r   c                     U R                   $ r   r   r   s    r   __hash__Orderable.__hash__{   s    zzr   r   N)r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   l   s*    !r   r   c                   "   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/r1g0)1QueryTestCase~   c                     [        [        S5      5      U l        [        [        S5      5      U l        U R                  U R                  S'   g )Nd      i)r   rangerr   r|   r   s    r   setUpQueryTestCase.setUp   s3    eCj!eCj!ffsr   c                    [         R                  " 5       n[         R                  " SSS[        R                  " 5       SS9n[         R                  " SSS[        R                  " 5       5      n[         R                  " SS9nU R	                  [
        5         [         R                  " SSS[        R                  " 5       S5      nS S S 5        U R	                  [        [         R                  SS	9  U R	                  [        [         R                  S
S9  U R	                  [        [         R                  SS9  U R	                  [        [         R                  S
S9  g ! , (       d  f       N= f)N   (      T)indentwidthdepthstreamcompactF
sort_dictsr   r   r   r   )pprintPrettyPrinterioStringIOassertRaises	TypeError
ValueError)r   pps     r   	test_initQueryTestCase.test_init   s   !!#!!"A)+F!!!RBKKM:!!U3y)%%aQtDB **f&:&:2F*f&:&:!D*f&:&:"E*f&:&:!D *)s   .E
E'c                    [         R                  " 5       nSSSSS/SSS0S[        S5      S	S
S SU R                  U R                  4 H  nU R                  [         R                  " U5      SU< 35        U R                  [         R                  " U5      SU< 35        U R                  UR                  U5      SU< 35        U R                  UR                  U5      SU< 35        M     g )N   g       @y               @abc   )r   r   s   defs   ghiTF.expected not isrecursive for expected isreadable for )	r   r   	bytearrayrr   r|   assertFalseisrecursive
assertTrue
isreadable)r   r   safes      r   
test_basicQueryTestCase.test_basic   s    !!#RUQFFv&eT3VVTVV%D V//5BFHJOOF--d3<@BD R^^D1BFHJOOBMM$/<@BD%r   c                     [         R                  " S 5         Sn[        R                  " U5        [        R                  " 5       R                  U5        S S S 5        g ! , (       d  f       g = f)Nzthis should not fail)
contextlibredirect_stdoutr   r   )r   values     r   test_stdout_is_None!QueryTestCase.test_stdout_is_None   sD    ''-*EMM%   "))%0	 .--s   =A
A+c                    U R                   U R                  S'   0 U l        U R                  =U R                  S'   =U R                  S'   U R                  S'   [        R                  " 5       nU R                   U R                  U R                  U R                  U R                  44 H  nU R                  [        R                  " U5      S5        U R                  [        R                  " U5      S5        U R                  UR                  U5      S5        U R                  UR                  U5      S5        M     U R                  R                  5         U R                   S S 2	 U R                  S S 2	 U R                   U R                  U R                  U R                  U R                  44 H  nU R                  [        R                  " U5      SU< 35        U R                  [        R                  " U5      SU< 35        U R                  UR                  U5      SU< 35        U R                  UR                  U5      SU< 35        M     g )	Nr\   r   re   r   zexpected isrecursivezexpected not isreadabler   r   )
rr   r|   r   r   r   r   r   r   r   clear)r   r   ickyr   s       r   test_knottedQueryTestCase.test_knotted   s    VVr
,0FF2q	2DFF1Iq	!!#FFDFFDFFTVVTVV,<<DOOF..t46LMV..t46OPOOBNN402HIR]]402KL	 = 	FF1IFF1IFFDFFDFFTVVTVV,<<DV//5BFHJOOF--d3<@BD R^^D1BFHJOOBMM$/<@BD =r   c                    [         R                  " 5       n[        5       [        [         [         R                  4 H  nU R                  [         R                  " U5      SU< 35        U R                  [         R                  " U5      SU< 35        U R                  UR	                  U5      SU< 35        U R                  UR                  U5      SU< 35        M     g )Nr   zexpected not isreadable for )r   r   objectrk   r   r   r   )r   r   
unreadables      r   test_unreadableQueryTestCase.test_unreadable   s    !!# (C1C1CCJV//
;BLNPV..z:AKMO R^^J7BLNPR]]:6AKMO Dr   c           	         / SPSPSPSPSPSP[        5       PSP[        5       P[        5       P/ P[        5       P[	        5       P[        5       P[        5       P[        5       P[        5       P[        5       P[        5       P0 P[        5       P[        5       PU R                  P[        PSPSPSPS	PS
PSP[        S5      PSPS/PSS0PSPSS/PSS0P[        S5      P[        S5      P[        [        S5      5      PSS/P[        SS/5      P[	        SS/5      P[	        [        S5      5      P[        S15      P[        S15      P[        S15      P[        S15      P[        S15      P[        S15      P[        SS05      P[        SS05      P[        SSS5      PSPSPS PSP7 H  n[!        U5      nU R#                  [        R$                  " U5      U5        U R#                  [        R$                  " USSS9R'                  SS5      U5        U R#                  [        R$                  " USS9U5        U R#                  [        R(                  " U5      U5        M     g ) Nr   y                g         r   r   iy            g      x   xr   r      )re   r   r   r   r         
   ir   TF.re   r   r   
 underscore_numbers)r   r(   r+   r   r   r<   r6   r9   rJ   rD   rG   rR   rU   r   r   r   rg   assertEqualpformatreplacesaferepr)r   simplenatives      r   test_same_as_reprQueryTestCase.test_same_as_repr   sH   q ! T 3  C  !8%+X 7$)G u #f '+f !{	 %/L	 3=,	
 
 !7
 %*G  )/    % '+ -0 26 8A   S $%a&   !e '(V e} '-Um 6<E#J5G !u $QqEl -21Q%L ;@c
:K A3x "&qc -1!I !!~ (21# 9CA3 aV} ',QFm Rb)  !  #!  %)!  +.!F$ &\FV^^F3V<V^^F!AF%gdC0&:V^^FtLfUV__V4f=/r   c                    Sn[        5       [        / SQ5      [        [        U5      5      [        5       [        / SQ5      [        [        U5      5      [        5       [        / SQ5      [        [        U5      5      [	        5       [	        / SQ5      [	        [        U5      5      [        5       [        SS05      [        [        [        U5      [        U5      5      5      4 H  n[        U5      nS[        U5      -  nU R                  [        R                  " U5      U5        U R                  [        R                  " USSS9U5        U R                  [        R                  " U5      U5        M     g )	N  )re   r   r   r   r   r"   re   r   r   )r   r   r1   r?   rM   r[   ziprg   r#   r   r   r   r   )r   Ncontr  expecteds        r   #test_container_repr_override_called1QueryTestCase.test_container_repr_override_called   s    &'%g.%eAh/&(&w/&uQx0$&$W-$U1X.*,*73*584%'%q!f-%c%(58&<=D  $ZFS[(HV^^D18<V^^D!DhOV__T2H=)r   c                 2   SSSSSSSS.nSn[         [        4 H/  nU R                  [        R                  " U" U5      5      U5        M1     [        S5      nSSR                  [        [        U5      5      -  n[        [        4 H/  nU R                  [        R                  " U" U5      5      U5        M1     [        [        S5      5      nS	SR                  [        [        U5      5      -  n[        [        4 H/  nU R                  [        R                  " U" U5      5      U5        M1     [        S5      nS
SR                  [        [        U5      5      -  n[        [        4 H.  nU R                  [        R                  " U" U5      SS9U5        M0     g )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   )rX   rR   r   r   r   r   joinmapri   r   r   r.   r(   )r   oexptypes       r   test_basic_line_wrap"QueryTestCase.test_basic_line_wrap  sF   '(%&#$$)+" 5MDV^^DG4c: " #Jv{{3sA;//5MDV^^DG4c: " %*v{{3sA;//FODV^^DG4c: $ #J)..S!555MDV^^DGA>D "r   c                     [        [        S5      5      n[        SSSS9nX/nSnU R                  [        R
                  " USSS	9U5        S
nU R                  [        R
                  " USSS	9U5        g )Nr   re   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   rX   r   r   r   )r   o1o2r  r	  s        r   test_nested_indentations&QueryTestCase.test_nested_indentations;  sp    %)_!1-H. 	!2>I
 	!2>Ir   c                 F   Sn[        U5      nU R                  [        R                  " USS9U5        U R                  [        R                  " USS9U5        U R                  [        R                  " USS9U5        U R                  [        R                  " USS9S5        g )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   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_widthQueryTestCase.test_widthJ  s    	 N4h?4h?4h?4 7 	r   c                   ^ U R                  [        R                  " S5      S5        U R                  [        R                  " SSS9S5         " U4S jS[        5      mU R                  [        R                  " T" S5      5      S	5        g )
Ni 1234567Tr   	1_234_567c                   2   >^  \ rS rSrUU 4S jrS rSrU =r$ )/QueryTestCase.test_integer.<locals>.Temperatureit  c                 $   > [         TU ]  TU5      $ r   )super__new__)clscelsius_degreesTemperature	__class__s     r   r3  7QueryTestCase.test_integer.<locals>.Temperature.__new__u  s    w{ODDr   c                     U S-   nUS S3$ )Ngfffffq@z.2fu   °Kr   )r   kelvin_degreess     r   r   8QueryTestCase.test_integer.<locals>.Temperature.__repr__w  s    !%(-S11r   r   )r   r	   r
   r   r3  r   r   __classcell__)r7  r6  s   @r   r6  r0  t  s    E2 2r   r6  r  u
   1273.15°K)r   r   r   rk   )r   r6  s    @r   test_integerQueryTestCase.test_integerp  sc    0)<DI;W	2# 	2 	D(9:LIr   c                     SSSS.nU R                  [        R                  " U5      S5        U R                  [        R                  " X/5      S5        U R                  [        R                  " S/ /0 S.5      S5        g )Nre   rr   r|   r   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   r   s     r   test_sorted_dictQueryTestCase.test_sorted_dict|  sp    
 !!$*,FG/B	D 	Trd(KL2	4r   c                     [         R                  S5      nU R                  [        R                  " USS9S5        U R                  [        R                  " X/SS9S5        g )NcbaFr   z!{'c': None, 'b': None, 'a': None}zF[{'c': None, 'b': None, 'a': None}, {'c': None, 'b': None, 'a': None}])rX   fromkeysr   r   r   rA  s     r   test_sort_dictQueryTestCase.test_sort_dict  sM    MM% e<>ab5AT	Vr   c                    [         R                  " 5       nU R                  [        R                  " USS9S5        [         R                  " / 5      nU R                  [        R                  " USS9S5        SR                  5       n[         R                  " [        U[        R                  " 5       5      5      nU R                  [        R                  " U5      S5        g )Nre   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   r   wordss      r   test_ordered_dictQueryTestCase.test_ordered_dict  s    ##%3_E##B'3_E<BBD##Cy/@$AB*	
	r   c                    SR                  5       n[        [        U[        R                  " 5       5      5      n[
        R                  " U5      nU R                  [        R                  " U5      S5        [        R                  " [        U[        R                  " 5       5      5      n[
        R                  " U5      nU R                  [        R                  " U5      S5        g )NrJ  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)])))rM  rX   r  rN  rO  typesMappingProxyTyper   r   r   rK  rL  )r   rQ  r   ms       r   test_mapping_proxy QueryTestCase.test_mapping_proxy  s    <BBDUIOO-./""1%* 	- 		 ##Cy/@$AB""1%* 	-+ 		,r   c                 ~    [         R                  " 5       n[        R                  " U5      nU R	                  US5        g )Nznamespace()rU  SimpleNamespacer   r   r   r   ns	formatteds      r   test_empty_simple_namespace)QueryTestCase.test_empty_simple_namespace  s.    ""$NN2&	M2r   c                 ~    [         R                  " SSS9n[        R                  " U5      nU R	                  US5        g )Nre   r   )rr   r|   znamespace(a=1, b=2)r[  r]  s      r   test_small_simple_namespace)QueryTestCase.test_small_simple_namespace  s3    ""Q!,NN2&	$9:r   c                     [         R                  " SSSSSSSSS	S
9	n[        R                  " USSS9nU R	                  US5        g )Nr   re   r   r   r   r   r   r   r   	thequickbrownfoxjumpedoverrr   lazydogrS   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_namespace#QueryTestCase.test_simple_namespace  sV    ""

 NN2R:	 	% 		r   c                      " S S[         R                  5      nU" SSSSSSS	S
SS9	n[        R                  " USS9nU R	                  US5        g )Nc                       \ rS rSrSrg)GQueryTestCase.test_simple_namespace_subclass.<locals>.AdvancedNamespacei  r   Nr   r   r   r   AdvancedNamespacers    s    r   rt  r   re   r   r   r   r   r   r   r   rf  rS   r   zAdvancedNamespace(the=0,
                  quick=1,
                  brown=2,
                  fox=3,
                  jumped=4,
                  over=5,
                  a=6,
                  lazy=7,
                  dog=8)r[  )r   rt  r^  r_  s       r   test_simple_namespace_subclass,QueryTestCase.test_simple_namespace_subclass  s\    < 5 5<

 NN2R0	 	% 		r   c                     [         R                  " SS5      " 5       n[        R                  " U5      nU R	                  US5        g )NMyDataclassr   zMyDataclass())rm   make_dataclassr   r   r   r   dcr_  s      r   test_empty_dataclass"QueryTestCase.test_empty_dataclass  s5    ''r:<NN2&	O4r   c                 l    [        SS5      n[        R                  " U5      nU R                  US5        g )Ntext{   z3dataclass1(field1='text', field2=123, field3=False))r`   r   r   r   rz  s      r   test_small_dataclass"QueryTestCase.test_small_dataclass  s-    $NN2&	$YZr   c                     [        S[        S5      S5      n[        R                  " X/SSS9nU R	                  US5        g )Nzsome fairly long textg    _BTrS   r   r   z[   dataclass1(field1='some fairly long text',
               field2=10000000000,
               field3=True),
    dataclass1(field1='some fairly long text',
               field2=10000000000,
               field3=True)])r`   rk   r   r   r   rz  s      r   test_larger_dataclass#QueryTestCase.test_larger_dataclass  s>    /TDANNB82a@	 %  	!r   c                 f    [        5       n[        R                  " USS9nU R                  US5        g )N   r   rt   )rp   r   r   r   rz  s      r   test_dataclass_with_repr&QueryTestCase.test_dataclass_with_repr  s*    \NN2R0	$VWr   c                     [        5       n[        R                  " USS9nU R                  US[        R
                  " [        5       S35        g )Nr   r   <z.dataclass3 object at \w+>)rw   r   r   assertRegexreescaper   rz  s      r   test_dataclass_no_repr$QueryTestCase.test_dataclass_no_repr  sA    \NN2R0	8$%%?@	
r   c                 t    [        S 5      nXl        [        R                  " USS9nU R	                  US5        g )Nr   r   z!dataclass4(a=...,
           b=1))rz   rr   r   r   r   rz  s      r   test_recursive_dataclass&QueryTestCase.test_recursive_dataclass  s6    NN2R0	 % 	r   c                     [        S 5      n[        S 5      nX!l        Xl        [        R
                  " USS9nU R                  US5        g )Nr   r   zLdataclass5(a=dataclass6(c=...,
                        d=1),
           b=1))r   r   rr   r   r   r   r   )r   dc5dc6r_  s       r   test_cyclic_dataclass#QueryTestCase.test_cyclic_dataclass'  sE    NN3b1	 % 	r   c                     SSS.nSn[        5       nU R                  UR                  U5      U5        S/nSnU R                  UR                  U5      U5        S/nSnU R                  UR                  U5      U5        g )	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_subclassingQueryTestCase.test_subclassing2  s    "D%02% -.//2C8 ^//3T: //3T:r   c           	      0   U R                  [        R                  " [        5       5      S5        U R                  [        R                  " [        [	        S5      5      5      S5        U R                  [        R                  " [        [	        S5      5      SS9S5        U R                  [        R                  " [        [	        S5      5      SS9S5        U R                  [        R                  " [        [	        S5      5      SS9S	5        U R                  [        R                  " [        5       5      S
5        U R                  [        R                  " [        [	        S5      5      5      S5        U R                  [        R                  " [        [	        S5      5      SS9S5        U R                  [        R                  " [        [	        S5      5      SS9S5        U R                  [        R                  " [        [	        S5      5      SS9S5        g )Nzset()r   z	{0, 1, 2}r   r  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   r6   r9   rJ   rD   rG   r   s    r   test_set_reprsQueryTestCase.test_set_reprsE  s{   .8E!H6DE!HR@ C 	 	U1XbA D 	 	U1XbA6	8 		4mD	%((;</	1	%((;2F I 	 	
58(<BG J 	 	
58(<BG<	>r   c           
        ^ ^ SS K m[        5       n[        S5      n[        X45      nT R                  [        R                  " U5      SU< SU< S35        T R                  [        R                  " U5      [        U5      5        [        S5      nU[        X45      0nT R                  [        R                  " U5      SU< SU< SU< S	35        T R                  [        R                  " U5      [        U5      5        [        S
5      n[        S5      n[        X$45      nT R                  [        R                  " U5      [        U5      5        U U4S jn[        S5      n[        S5      nU" [        R                  " [        X$45      5      SU< SU< S3SU< SU< S3/5        U" [        R                  " [        [        S5      [        S5      45      5      / SQ5        g )Nr   )r   xyzfrozenset({z, }))onetwo{z: frozenset({z})})r  qwerty)abcdspamc           	         > TR                  X Vs/ s H"  nTR                  U5      R                  5       PM$     sn5        g s  snf r   )assertIndedentstrip)res
invariantsir   textwraps      r   check3QueryTestCase.test_set_of_sets_reprs.<locals>.check  s5    MM#JOJq 2 8 8 :JOPOs   )A
)zregular stringzother string)zthird stringzone more stringz
                frozenset({z,
                           z})
                )zxyz very-very long stringzqwerty is also absurdly long)zabcd is even longer that beforezspam is not so long)a%  
                frozenset({frozenset({'abcd is even longer that before',
                                      'spam is not so long'}),
                           frozenset({'qwerty is also absurdly long',
                                      'xyz very-very long string'})})
                a%  
                frozenset({frozenset({'abcd is even longer that before',
                                      'spam is not so long'}),
                           frozenset({'xyz very-very long string',
                                      'qwerty is also absurdly long'})})
                a%  
                frozenset({frozenset({'qwerty is also absurdly long',
                                      'xyz very-very long string'}),
                           frozenset({'abcd is even longer that before',
                                      'spam is not so long'})})
                a%  
                frozenset({frozenset({'qwerty is also absurdly long',
                                      'xyz very-very long string'}),
                           frozenset({'spam is not so long',
                                      'abcd is even longer that before'})})
                )r  rJ   r   r   r   rg   )r   fs0fs1datafs2fsr  r  s   `      @r   test_set_of_sets_reprs$QueryTestCase.test_set_of_sets_reprsq  s   . 	 k'#$-25s;	=-tDz:'Yz*+-8;S#F	H-tDz: )*()z"+T"X6	Q :;;<NN9cZ01
 C! C!		
 	NN     	 	*	
r   c                 D   SnSSSSSSS000000nSSSSSS/ //////nU R                  [        R                  " U5      [        U5      5        U R                  [        R                  " U5      [        U5      5        U R                  [        R                  " U5      [        U5      5        SnS	nS
nU R                  [        R                  " USS9U5        U R                  [        R                  " USS9U5        U R                  [        R                  " USS9U5        g )N)re   )r   )r   )r   )r   r   re   r   r   r   r   r   z
(1, (...))z
{1: {...}}z
[1, [...]]r   )r   r   r   rg   )r   nested_tuplenested_dictnested_list	lv1_tuplelv1_dictlv1_lists          r   
test_depthQueryTestCase.test_depth  s   11q1q1a&k"23451q1q1b'l"34565tL7IJ4d;6GH4d;6GH 	A>	J1=xH1=xHr   c                    Sn[        U5       Vs/ s H  n[        5       PM     nn[        R                  " U5        [	        U[
        S9nS nU R                  U" [        R                  " [        U5      5      5      SSR                  [        [        U5      5      -   S-   5        U R                  U" [        R                  " [        U5      5      5      SSR                  [        [        U5      5      -   S-   5        U R                  U" [        R                  " [        R                  U5      5      5      SSR                  S	 U 5       5      -   S-   5        U R                  [        R                  " [        S
SS
05      S[        [        5      -   S-   5        SS/nU R                  [        R                  " [        R                  US
5      5      S[!        [	        U[
        S95      -  5        g s  snf )Nr  )keyc                 F    U R                  SS5      R                  SS5      $ )Nr   r   r   )r   )ss    r   <lambda><QueryTestCase.test_sort_unorderable_values.<locals>.<lambda>  s    !))C,44T"=r   r  ,}r  r  c              3   ,   #    U  H
  nS U-  v   M     g7f)z%r:NoneNr   ).0ks     r   	<genexpr>=QueryTestCase.test_sort_unorderable_values.<locals>.<genexpr>  s     8%Q9q=%s   r   re   z{1: 0, z: 0})re   r   z{%r: 0, %r: 0})r   r   randomshufflesortedr   r   r   r   r<   r  r  rg   rJ   rX   rF  r.   )r   nr  keysskeyscleans         r   test_sort_unorderable_values*QueryTestCase.test_sort_unorderable_values  s   ',Qx0x!x0tt$=v~~c$i89#((3tU+,,s2	4v~~io>?CHHSu%566=	?v~~dmmD.ABC#((8%8883>	@ 	aA(>?"T+%66>	@ gdA(>?)E&22F,GG	I% 1s   G0c                 *   [        5       n[        [        U5      5      nU R                  X5        U R                  [	        [        U5      5      [	        [        U5      5      5        U R                  [        X!/5      X/5        U R                  [        X/5      X/5        U R                  [        R                  " [        X!/5      SS9SU< SU< S35        U R                  [        R                  " [        X/5      SS9SU< SU< S35        U R                  [        R                  " [        R                  X!/5      SS9SU< SU< S35        U R                  [        R                  " [        R                  X/5      SS9SU< SU< S35        g )Nre   r   r  r  r  z	: None,
 z: None})r   r   r   
assertLessri   r  r   r  r   r   r<   rX   rF  )r   rr   r|   s      r   *test_sort_orderable_and_unorderable_values8QueryTestCase.test_sort_orderable_and_unorderable_values  s!   Md1gDGc$q'l3!0!0QF1=)*A.	0QF1=)*A.	0 	qf(=QG56:	<qf(=QG56:	<r   c                 >   SnU R                  [        R                  " USS9S5        U R                  [        R                  " SUSS.SS9S	5        S
nU R                  [        R                  " USS9[        U5      5        U R                  [        R                  " USS9S5        U R                  [        R                  " USS9S5        U R                  [        R                  " U/////SS9S5        U R                  [        R                  " U/////SS9S5        U R                  [        R                  " U/////SS9S5        SnU R                  [        R                  " USS9[        U5      5        U R                  [        R                  " S5      S5        US-  n[	        SS5       Hj  n[        R                  " X$S9nU R                  [        U5      U5        [        R                  " U/S-  US9nU R                  [        U5      U/S-  5        Ml     g )NrJ  r   r   6('the quick brown '
 'fox jumped over '
 'a lazy dog')re   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')r  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']]]]]r   uv   [[[[['Portons dix '
     'bons "whiskys"\n'
     "à l'avocat "
     'goujat\t qui '
     'fumait au '
     'zoo']]]]]dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxP   r   ''r   r   r   )r   r   r   rg   r   r)  )r   rj  specialunwrappabler   r_  s         r   test_str_wrapQueryTestCase.test_str_wrap  s   :26 9 	 	ac(B.024	 Yr:DMJr: = 	 	r: = 	 	WI;-(9D G 	 	WI;-(9D G 	 	WI;-(9D G 	  2>[@QR+T221b\Ew<IT)_g6y1}EBIT)_wi!m<	 "r   c           	      &   [        S5       Vs/ s H  n[        [        X-  5      5      PM     sn[        S5       Vs/ s H  n[        [        U5      5      PM     sn-   nSnU R                  [        R                  " USSS9U5        g s  snf s  snf )Nr   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  r  r	  s       r   test_compactQueryTestCase.test_compactW  sv    */(3(Qd5< (3&+Ah/hd58nh/0 	TBHM 4/s
    B	Bc                 N   SnSnS/U-  n[        US-
  5       H  nU/nM     [        US-  S-   USU-  -   S-
  5       Hd  n[        R                  " X5SS9R                  5       n[	        [        [        U5      5      nU R                  Xu5        U R                  XuS-
  5        Mf     g )	Nr  r   r   re   r   r   Tr  )	r   r   r   
splitlinesmaxr  r#   assertLessEqualassertGreater)r   levelsnumberr  r  wlinesmaxwidths           r   test_compact_width QueryTestCase.test_compact_widthc  s    C&Lvz"AA #vzA~vF
':Q'>?ANN1t<GGIE3sE?+H  -xQ/	 @r   c                 |   U R                  [        R                  " SSS9S5        U R                  [        R                  " SSS9S5        SnU R                  [        R                  " USS9[        U5      5        U R                  [        R                  " US	S9S
5        U R                  [        R                  " USS9S5        U R                  [        R                  " USS9S5        [	        [        S5      5      nU R                  [        R                  " USS9[        U5      5        U R                  [        R                  " USS9S5        U R                  [        R                  " USS9S5        U R                  [        R                  " USS9S5        U R                  [        R                  " SUSS.SS9S5        U R                  [        R                  " SUSS.SS9S5        U R                  [        R                  " U//////SS9S5        U R                  [        R                  " U//////SS9S5        [        SS5       Hj  n[        R                  " X#S9nU R                  [        U5      U5        [        R                  " U/S-  US9nU R                  [        U5      U/S-  5        Ml     g )Nr   re   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}r  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   rg   bytesr   r)  )r   lettersr  r   r_  s        r   test_bytes_wrapQueryTestCase.test_bytes_wrapo  sq   15u=q99E/r:DMJr: = 	 	r: = 	 	r: = 	 b	"r:DMJr: = 	 	r: = 	 	q9 < 	
 	agA(F.024	 	agA(F.024	 	gYK=/):(;2F I 	 	gYK=/):(;2F I5 	6 1b\Ew<IT)_g6y1}EBIT)_wi!m<	 "r   c                 
   U R                  [        R                  " [        5       SS9S5        [        S5      nU R                  [        R                  " USS9[	        U5      5        U R                  [        R                  " USS9S5        U R                  [        R                  " USS9S	5        U R                  [        R                  " US
S9S	5        [        [        S5      5      nU R                  [        R                  " USS9[	        U5      5        U R                  [        R                  " USS9S5        U R                  [        R                  " USS9S5        U R                  [        R                  " USS9S5        U R                  [        R                  " SUSS.SS9S5        U R                  [        R                  " U/////SS9S5        U R                  [        R                  " U/////SS9S5        g )Nre   r   zbytearray(b'')r  r      z6bytearray(b'abcdefghijkl'
          b'mnopqrstuvwxyz')r)   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   rg   r   )r   r  r  s      r   test_bytearray_wrap!QueryTestCase.test_bytearray_wrap  s   	1=?OP9:r:DMJr: =  	! 	r: = 	 	r: = 	 E"I&r:DMJr: =$ 	% 	r: =$ 	% 	q9 <$ 	%
 	agA(F.024	 	WI;-(9D G& 	' 	WI;-(9D G> 	?r   c                 ^   [         R                  " [        5      nU R                  [        R
                  " USS9S5        SR                  5       n[         R                  " [        [        U[        R                  " 5       5      5      nU R                  [        R
                  " U5      S5        g )Nre   r   zdefaultdict(<class 'int'>, {})rJ  zdefaultdict(<class 'int'>,
            {'a': 6,
             'brown': 2,
             'dog': 8,
             'fox': 3,
             'jumped': 4,
             'lazy': 7,
             'over': 5,
             'quick': 1,
             'the': 0}))
rK  defaultdictrk   r   r   r   rM  r  rN  rO  rP  s      r   test_default_dictQueryTestCase.test_default_dict  sz    ##C(35UV<BBD##CUIOO4E)FG*
	r   c                     [         R                  " 5       nU R                  [        R                  " USS9S5        [         R                  " S5      nU R                  [        R                  " USS9S5        g )Nre   r   z	Counter()senselessnessr   zDCounter({'s': 6,
         'e': 4,
         'n': 2,
         'l': 1}))rK  Counterr   r   r   rA  s     r   test_counterQueryTestCase.test_counter  s[    !3[A04	r   c                 &   [         R                  " 5       nU R                  [        R                  " USS9S5        SR                  5       n[        [        U[        R                  " 5       5      5      n[         R                  " [        U5      5      nU R                  [        R                  " U5      S5        [         R                  " [        U5      [         R                  " U5      5      nU R                  [        R                  " U5      S5        g )Nre   r   zChainMap({})rJ  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)])))rK  ChainMapr   r   r   rM  r   r  rN  rO  rX   rL  )r   r   rQ  itemss       r   test_chainmapQueryTestCase.test_chainmap  s      "3^D<BBDS	 123  e-*	
	   ek.E.Ee.LM*'	(r   c                 l   [         R                  " 5       nU R                  [        R                  " USS9S5        [         R                  " SS9nU R                  [        R                  " USS9S5        SR                  5       n[         R                  " [        U[        R                  " 5       5      5      nU R                  [        R                  " U5      S5        [         R                  " [        U[        R                  " 5       5      SS9nU R                  [        R                  " U5      S	5        g )
Nre   r   z	deque([])r   )maxlenzdeque([], maxlen=7)rJ  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))	rK  dequer   r   r   rM  r  rN  rO  rP  s      r   
test_dequeQueryTestCase.test_deque  s    3[AQ'35JK<BBDc%):;<*	
	 c%):;AF*		r   c                 J   [         R                  " 5       nU R                  [        R                  " USS9S5        SR                  5       n[         R                  " [        U[        R                  " 5       5      5      nU R                  [        R                  " U5      S5        g )Nre   r   z{}rJ  zi{'a': 6,
 'brown': 2,
 'dog': 8,
 'fox': 3,
 'jumped': 4,
 'lazy': 7,
 'over': 5,
 'quick': 1,
 'the': 0})	rK  UserDictr   r   r   rM  r  rN  rO  rP  s      r   test_user_dictQueryTestCase.test_user_dict5  su      "3T:<BBD  UIOO,=!>?*	
	r   c                 J   [         R                  " 5       nU R                  [        R                  " USS9S5        SR                  5       n[         R                  " [        U[        R                  " 5       5      5      nU R                  [        R                  " U5      S5        g )Nre   r   z[]rJ  z{[('the', 0),
 ('quick', 1),
 ('brown', 2),
 ('fox', 3),
 ('jumped', 4),
 ('over', 5),
 ('a', 6),
 ('lazy', 7),
 ('dog', 8)])	rK  UserListr   r   r   rM  r  rN  rO  rP  s      r   test_user_listQueryTestCase.test_user_listF  su      "3T:<BBD  UIOO,=!>?*	
	r   c                 >   [         R                  " S5      nU R                  [        R                  " USS9S5        [         R                  " S5      nU R                  [        R                  " USS9S5        U R                  [        R                  " SU0SS9S5        g )	Nr   re   r   r  rJ  r  r  zF{1: 'the quick '
    'brown fox '
    'jumped over a '
    'lazy dog'})rK  
UserStringr   r   r   rA  s     r   test_user_stringQueryTestCase.test_user_stringW  s    ""2&3T:""#OP4	
 	Ab9	r   )rr   r|   r   N)2r   r	   r
   r   r   r   r   r   r   r   r  r
  r  r#  r*  r=  rB  rG  rR  rX  r`  rc  ro  ru  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r$  r(  r,  r0  r   r   r   r   r   r   ~   s    
ED"1DBO!>F>4"EHJ$L
J4$V&,63
;
025
[
	!X

	;&*>Xm
^II0<(:=x
N
07=r)?V$	%(N<""r   r   c                       \ rS rSrS rSrg)r  ih  c                     [        U[        5      (       a  SU;   a  [        U5      SS4$ USS4$ [        R                  R                  XX#U5      $ )Nr   re   r   )
isinstanceri   rg   r   r   format)r   r   context	maxlevelslevels        r   r5  DottedPrettyPrinter.formatj  sS    fc""f}F|Q))q!|#''..g%9 9r   r   N)r   r	   r
   r   r5  r   r   r   r   r  r  h  s    9r   r  __main__)/rK  r   rm   r   rN  r   r  r  test.supporttestrU  unittestr   r   r   r   r.   r(   r+   r1   r<   r6   r9   r?   rJ   rD   rG   rM   rX   rR   rU   r[   	dataclassr`   rp   rw   rz   r   r   r   r   TestCaser   r   r  r   mainr   r   r   <module>rA     s      	    	   	D 	#D #,t ,	U 	$U $- -	3 	"3 "+c +	 	( (1I 1	D 	#D #,t , ; ; ; B B B
 E"  #          
 $gH%% gT
9&.. 
9 zMMO r   