o
    HXîh9É  ã                   @   s  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„ deƒZG dd„ deƒZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZejG d d!„ d!ƒƒZ ejG d"d#„ d#ƒƒZ!ejd$d%G d&d'„ d'ƒƒZ"ejG d(d)„ d)ƒƒZ#ejG d*d+„ d+ƒƒZ$ejG d,d-„ d-ƒƒZ%G d.d/„ d/ƒZ&G d0d1„ d1ƒZ'G d2d3„ d3e
j(ƒZ)G d4d5„ d5ej*ƒZ+e,d6kr
e
 -¡  dS dS )7é    Nc                   @   ó   e Zd ZdS )Úlist2N©Ú__name__Ú
__module__Ú__qualname__© r   r   ú:/opt/python-3.10.19/usr/lib/python3.10/test/test_pprint.pyr      ó    r   c                   @   ó   e Zd Zdd„ ZdS )Úlist3c                 C   ó
   t  | ¡S ©N)ÚlistÚ__repr__©Úselfr   r   r	   r      ó   
zlist3.__repr__N©r   r   r   r   r   r   r   r	   r      ó    r   c                   @   r   )Úlist_custom_reprc                 C   ó   dt t | ¡ƒ S ©NÚ*)Úlenr   r   r   r   r   r	   r      ó   zlist_custom_repr.__repr__Nr   r   r   r   r	   r      r   r   c                   @   r   )Útuple2Nr   r   r   r   r	   r      r
   r   c                   @   r   )Útuple3c                 C   r   r   )Útupler   r   r   r   r	   r      r   ztuple3.__repr__Nr   r   r   r   r	   r      r   r   c                   @   r   )Útuple_custom_reprc                 C   r   r   )r   r   r   r   r   r   r	   r   "   r   ztuple_custom_repr.__repr__Nr   r   r   r   r	   r   !   r   r   c                   @   r   )Úset2Nr   r   r   r   r	   r    %   r
   r    c                   @   r   )Úset3c                 C   r   r   )Úsetr   r   r   r   r	   r   )   r   zset3.__repr__Nr   r   r   r   r	   r!   (   r   r!   c                   @   r   )Úset_custom_reprc                 C   r   r   )r   r"   r   r   r   r   r	   r   -   r   zset_custom_repr.__repr__Nr   r   r   r   r	   r#   ,   r   r#   c                   @   r   )Ú
frozenset2Nr   r   r   r   r	   r$   0   r
   r$   c                   @   r   )Ú
frozenset3c                 C   r   r   )Ú	frozensetr   r   r   r   r	   r   4   r   zfrozenset3.__repr__Nr   r   r   r   r	   r%   3   r   r%   c                   @   r   )Úfrozenset_custom_reprc                 C   r   r   )r   r&   r   r   r   r   r	   r   8   r   zfrozenset_custom_repr.__repr__Nr   r   r   r   r	   r'   7   r   r'   c                   @   r   )Údict2Nr   r   r   r   r	   r(   ;   r
   r(   c                   @   r   )Údict3c                 C   r   r   )Údictr   r   r   r   r	   r   ?   r   zdict3.__repr__Nr   r   r   r   r	   r)   >   r   r)   c                   @   r   )Údict_custom_reprc                 C   r   r   )r   r*   r   r   r   r   r	   r   C   r   zdict_custom_repr.__repr__Nr   r   r   r   r	   r+   B   r   r+   c                   @   s@   e Zd ZU eed< eed< dZeed< ej	dddZ
eed< dS )	Ú
dataclass1Zfield1Zfield2FÚfield3é   )ÚdefaultÚreprÚfield4N)r   r   r   ÚstrÚ__annotations__Úintr-   ÚboolÚdataclassesZfieldr1   r   r   r   r	   r,   F   s
   
 r,   c                   @   s"   e Zd ZU dZeed< dd„ ZdS )Ú
dataclass2r.   Úac                 C   ó   dS )Nú0custom repr that doesn't fit within pprint widthr   r   r   r   r	   r   P   ó   zdataclass2.__repr__N)r   r   r   r8   r4   r3   r   r   r   r   r	   r7   M   s   
 r7   F)r0   c                   @   s   e Zd ZU dZeed< dS )Ú
dataclass3r.   r8   N)r   r   r   r8   r4   r3   r   r   r   r	   r<   S   s   
 r<   c                   @   s"   e Zd ZU d ed< dZeed< dS )Ú
dataclass4r8   r.   ÚbN©r   r   r   r3   r>   r4   r   r   r   r	   r=   W   ó   
 r=   c                   @   ó"   e Zd ZU ded< dZeed< dS )Ú
dataclass5Ú
dataclass6r8   r.   r>   Nr?   r   r   r   r	   rB   \   r@   rB   c                   @   rA   )rC   rB   Úcr.   ÚdN)r   r   r   r3   rE   r4   r   r   r   r	   rC   a   r@   rC   c                   @   r   )ÚUnorderablec                 C   s   t t| ƒƒS r   )r2   Úidr   r   r   r	   r   g   s   zUnorderable.__repr__Nr   r   r   r   r	   rF   f   r   rF   c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )Ú	Orderablec                 C   s
   || _ d S r   ©Ú_hash)r   Úhashr   r   r	   Ú__init__l   r   zOrderable.__init__c                 C   r9   )NFr   ©r   Úotherr   r   r	   Ú__lt__n   r;   zOrderable.__lt__c                 C   s   | |kS r   r   rM   r   r   r	   Ú__gt__p   ó   zOrderable.__gt__c                 C   s   | |kS r   r   rM   r   r   r	   Ú__le__r   rQ   zOrderable.__le__c                 C   r9   )NTr   rM   r   r   r	   Ú__ge__t   r;   zOrderable.__ge__c                 C   s   | |u S r   r   rM   r   r   r	   Ú__eq__v   rQ   zOrderable.__eq__c                 C   s   | |uS r   r   rM   r   r   r	   Ú__ne__x   rQ   zOrderable.__ne__c                 C   s   | j S r   rI   r   r   r   r	   Ú__hash__z   s   zOrderable.__hash__N)r   r   r   rL   rO   rP   rR   rS   rT   rU   rV   r   r   r   r	   rH   k   s    rH   c                   @   sz  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zej e!j"j#d9d:„ ƒƒZ$d;d<„ Z%d=d>„ Z&d?d@„ Z'dAdB„ Z(dCdD„ Z)dEdF„ Z*dGdH„ Z+dIdJ„ Z,dKdL„ Z-dMdN„ Z.dOdP„ Z/dQdR„ Z0dSdT„ Z1dUdV„ Z2dWdX„ Z3dYS )ZÚQueryTestCasec                 C   s,   t tdƒƒ| _t tdƒƒ| _| j| jd< d S )Néd   éÈ   iôÿÿÿ)r   Úranger8   r>   r   r   r   r	   ÚsetUp   s   zQueryTestCase.setUpc                 C   sÌ   t  ¡ }t jdddt ¡ dd}t  dddt ¡ ¡}t jdd}|  t¡ t  dddt ¡ d¡}W d   ƒ n1 s;w   Y  | jtt jdd	 | jtt jd
d | jtt jdd | jtt jd
d d S )Né   é(   é   T)ÚindentÚwidthÚdepthÚstreamÚcompactF©Z
sort_dictséÿÿÿÿ©r_   r   ©ra   ©r`   )ÚpprintÚPrettyPrinterÚioÚStringIOZassertRaisesÚ	TypeErrorÚ
ValueError)r   Úppr   r   r	   Ú	test_init„   s   
ÿÿzQueryTestCase.test_initc                 C   s¢   t  ¡ }dddddgdddidtdƒd	d
d d| j| jfD ]2}|  t  |¡d|f ¡ |  t  |¡d|f ¡ |  | |¡d|f ¡ |  | |¡d|f ¡ qd S )Né   g       @y               @Úabcé   )rq   rq   s   defs   ghiTF.úexpected not isrecursive for %rúexpected isreadable for %r)	ri   rj   Ú	bytearrayr8   r>   ÚassertFalseÚisrecursiveÚ
assertTrueÚ
isreadable)r   ro   Úsafer   r   r	   Ú
test_basic‘   s$   þÿÿÿÿõzQueryTestCase.test_basicc                 C   sH  | j | jd< i | _| j | jd<  | jd< | jd< t ¡ }| j | j| j| j| jffD ]&}|  t |¡d¡ |  t |¡d¡ |  | |¡d¡ |  | |¡d¡ q*| j 	¡  | j d d …= | jd d …= | j | j| j| j| jffD ]2}|  t |¡d|f ¡ |  t |¡d|f ¡ |  | |¡d|f ¡ |  | |¡d|f ¡ qod S )	NéC   r   r.   rq   zexpected isrecursivezexpected not isreadablert   ru   )
r8   r>   rE   ri   rj   ry   rx   rw   rz   Úclear)r   ro   Zickyr{   r   r   r	   Útest_knotted¢   s4    
ÿÿÿÿ÷zQueryTestCase.test_knottedc                 C   s‚   t  ¡ }tdƒt t jfD ]2}|  t  |¡d|f ¡ |  t  |¡d|f ¡ |  | |¡d|f ¡ |  | |¡d|f ¡ qd S )Nrs   rt   zexpected not isreadable for %r)ri   rj   Útyperx   rw   rz   )r   ro   Z
unreadabler   r   r	   Útest_unreadableÃ   s   ÿÿÿÿ÷zQueryTestCase.test_unreadablec                 C   sì  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 ]3}t|ƒ}|  t |¡|¡ |  tj|ddd dd¡|¡ |  tj|dd|¡ |  t |¡|¡ qÀd S ) Nr   y                g        Ú ó    r   iúÿÿÿy      À      Àg      ø¿Úxó   x©rs   rs   é   )r.   rq   r\   r^   rX   é   é   é
   iõÿÿÿre   TF.r.   ©r`   r_   Ú
ú ©Zunderscore_numbers)rv   r   r   r   r   r"   r    r!   r&   r$   r%   r(   r)   ry   ri   rZ   r0   ÚassertEqualÚpformatÚreplaceÚsaferepr)r   ÚsimpleÚnativer   r   r	   Útest_same_as_reprÒ   sÚ    
ÿÿÿþþþýýýüüüûûûúúùùùùùùùøøø	÷	÷	÷
ö
ö

öõ
õ
õ
õôôôóóó
ò
ò
ñððð
ð
ÿézQueryTestCase.test_same_as_reprc                 C   sä   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|ƒ }|  	t
 |¡|¡ |  	t
j|ddd|¡ |  	t
 |¡|¡ qEd S )	Néè  )r.   rq   rs   r^   r‡   r   r.   r   r‹   )r   rZ   r   r#   r'   r+   Úzipr0   r   r   ri   r   r’   )r   ÚNZcontr”   Úexpectedr   r   r	   Ú#test_container_repr_override_calledõ   s.   








òìz1QueryTestCase.test_container_repr_override_calledc                 C   s  ddddddddœ}d}t tfD ]}|  t ||ƒ¡|¡ qtdƒ}dd tt|ƒ¡ }t	t
fD ]}|  t ||ƒ¡|¡ q0ttdƒƒ}d	d tt|ƒ¡ }ttfD ]}|  t ||ƒ¡|¡ qRtdƒ}d
d tt|ƒ¡ }t	t
fD ]}|  tj||ƒdd|¡ qrd S )Nr   i»»  iªª  )ZRPM_calZRPM_cal2Z	Speed_calZcontroldesk_runtime_usZmain_code_runtime_usZread_io_runtime_usZ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}rX   z[%s]z,
 z(%s)z[   %s]z,
    r\   rf   )r*   r(   r   ri   r   rZ   ÚjoinÚmapr2   r   r   r   r   )r   ÚoÚexpr€   r   r   r	   Útest_basic_line_wrap  s0   úÿz"QueryTestCase.test_basic_line_wrapc                 C   s^   t tdƒƒ}tdddd}||g}d}|  tj|ddd	|¡ d
}|  tj|ddd	|¡ d S )NrŠ   r.   rq   rs   )Ú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   rZ   r*   r   ri   r   )r   Úo1Úo2r   r™   r   r   r	   Útest_nested_indentations3  s   z&QueryTestCase.test_nested_indentationsc                 C   sh   d}t |ƒ}|  tj|dd|¡ |  tj|dd|¡ |  tj|dd|¡ |  tj|d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']]]]]é   rh   é   é   é   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   ri   r   )r   r™   r   r   r   r	   Ú
test_widthB  s   
zQueryTestCase.test_widthc                    sV   |   t d¡d¡ |   tjdddd¡ G ‡ fdd„dtƒ‰ |   t ˆ dƒ¡d	¡ d S )
Ni‡Ö Z1234567TrŽ   Z	1_234_567c                       s&   e Zd Z‡‡ fdd„Zdd„ Z‡  ZS )z/QueryTestCase.test_integer.<locals>.Temperaturec                    s   t ƒ  ˆ |¡S r   )ÚsuperÚ__new__)ÚclsZcelsius_degrees)ÚTemperatureÚ	__class__r   r	   r¯   m  s   z7QueryTestCase.test_integer.<locals>.Temperature.__new__c                 S   s   | d }|› dS )Ngfffffq@u   Â°Kr   )r   Zkelvin_degreesr   r   r	   r   o  s   
z8QueryTestCase.test_integer.<locals>.Temperature.__repr__)r   r   r   r¯   r   Ú__classcell__r   ©r±   )r²   r	   r±   l  s    r±   r–   u
   1273.15Â°K)r   ri   r   r4   r   r   r´   r	   Útest_integerh  s   zQueryTestCase.test_integerc                 C   sT   ddddœ}|   t |¡d¡ |   t ||g¡d¡ |   t dg gi dœ¡d¡ d S )Nr.   ©r8   r>   rD   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   ri   r   ©r   rE   r   r   r	   Útest_sorted_dictt  s   ÿÿzQueryTestCase.test_sorted_dictc                 C   s>   t  d¡}|  tj|ddd¡ |  tj||gddd¡ d S )NZcbaFrd   z!{'c': None, 'b': None, 'a': None}zF[{'c': None, 'b': None, 'a': None}, {'c': None, 'b': None, 'a': None}])r*   Úfromkeysr   ri   r   r·   r   r   r	   Útest_sort_dict†  s
   
ÿzQueryTestCase.test_sort_dictc                 C   sp   t  ¡ }|  tj|ddd¡ t  g ¡}|  tj|ddd¡ d ¡ }t  t|t ¡ ƒ¡}|  t |¡d¡ d S )Nr.   rh   zOrderedDict()ú*the quick brown fox jumped over a lazy dogzèOrderedDict([('the', 0),
             ('quick', 1),
             ('brown', 2),
             ('fox', 3),
             ('jumped', 4),
             ('over', 5),
             ('a', 6),
             ('lazy', 7),
             ('dog', 8)]))	ÚcollectionsÚOrderedDictr   ri   r   Úsplitr—   Ú	itertoolsÚcount©r   rE   Úwordsr   r   r	   Útest_ordered_dictŒ  s   
ÿzQueryTestCase.test_ordered_dictc                 C   sj   d  ¡ }tt|t ¡ ƒƒ}t |¡}|  t 	|¡d¡ t
 t|t ¡ ƒ¡}t |¡}|  t 	|¡d¡ d S )Nr»   zßmappingproxy({'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   ri   r   r¼   r½   )r   rÂ   rE   Úmr   r   r	   Útest_mapping_proxyŸ  s   


z QueryTestCase.test_mapping_proxyc                 C   s"   t  ¡ }t |¡}|  |d¡ d S )Nznamespace()©rÄ   ÚSimpleNamespaceri   r   r   ©r   ÚnsÚ	formattedr   r   r	   Útest_empty_simple_namespaceº  s   
z)QueryTestCase.test_empty_simple_namespacec                 C   s(   t jddd}t |¡}|  |d¡ d S )Nr.   rq   )r8   r>   znamespace(a=1, b=2)rÈ   rÊ   r   r   r	   Útest_small_simple_namespace¿  ó   
z)QueryTestCase.test_small_simple_namespacec                 C   s<   t jddddddddd	d
	}tj|ddd}|  |d¡ d S )Nr   r.   rq   rs   r\   r^   r‡   rˆ   r‰   ©	ZtheZquickZbrownÚfoxZjumpedZoverr8   ZlazyZdogé<   r‹   zŸnamespace(the=0,
          quick=1,
          brown=2,
          fox=3,
          jumped=4,
          over=5,
          a=6,
          lazy=7,
          dog=8)rÈ   rÊ   r   r   r	   Útest_simple_namespaceÄ  s   ÷z#QueryTestCase.test_simple_namespacec                 C   sJ   G dd„ dt jƒ}|ddddddd	d
dd	}tj|dd}|  |d¡ d S )Nc                   @   r   )zGQueryTestCase.test_simple_namespace_subclass.<locals>.AdvancedNamespaceNr   r   r   r   r	   ÚAdvancedNamespaceÝ  s    rÔ   r   r.   rq   rs   r\   r^   r‡   rˆ   r‰   rÐ   rÒ   rh   zçAdvancedNamespace(the=0,
                  quick=1,
                  brown=2,
                  fox=3,
                  jumped=4,
                  over=5,
                  a=6,
                  lazy=7,
                  dog=8)rÈ   )r   rÔ   rË   rÌ   r   r   r	   Útest_simple_namespace_subclassÜ  s   ÷z,QueryTestCase.test_simple_namespace_subclassc                 C   s(   t  dd¡ƒ }t |¡}|  |d¡ d S )NZMyDataclassr   zMyDataclass())r6   Zmake_dataclassri   r   r   ©r   ZdcrÌ   r   r   r	   Útest_empty_dataclassõ  rÏ   z"QueryTestCase.test_empty_dataclassc                 C   s$   t ddƒ}t |¡}|  |d¡ d S )NÚtexté{   z3dataclass1(field1='text', field2=123, field3=False))r,   ri   r   r   rÖ   r   r   r	   Útest_small_dataclassú  s   

z"QueryTestCase.test_small_dataclassc                 C   s4   t dtdƒdƒ}tj||gd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)])r,   r4   ri   r   r   rÖ   r   r   r	   Útest_larger_dataclassÿ  s   z#QueryTestCase.test_larger_dataclassc                 C   ó$   t ƒ }tj|dd}|  |d¡ d S )Né   rh   r:   )r7   ri   r   r   rÖ   r   r   r	   Útest_dataclass_with_repr
  ó   z&QueryTestCase.test_dataclass_with_reprc                 C   rÜ   )NrŠ   rh   z+<test.test_pprint.dataclass3 object at \w+>)r<   ri   r   ZassertRegexrÖ   r   r   r	   Útest_dataclass_no_repr  rß   z$QueryTestCase.test_dataclass_no_reprc                 C   s,   t d ƒ}||_tj|dd}|  |d¡ d S )NrŠ   rh   z!dataclass4(a=...,
           b=1))r=   r8   ri   r   r   rÖ   r   r   r	   Útest_recursive_dataclass  s   z&QueryTestCase.test_recursive_dataclassc                 C   s:   t d ƒ}td ƒ}||_||_tj|dd}|  |d¡ d S )NrŠ   rh   zLdataclass5(a=dataclass6(c=...,
                        d=1),
           b=1))rB   rC   r8   rD   ri   r   r   )r   Zdc5Zdc6rÌ   r   r   r	   Útest_cyclic_dataclass  s   z#QueryTestCase.test_cyclic_dataclassc                 C   sb   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ž   Zdotted_printerr¥   Zexp1r¦   Zexp2r   r   r	   Útest_subclassing'  s   ÿzQueryTestCase.test_subclassingc                 C   s  |   t tƒ ¡d¡ |   t ttdƒƒ¡d¡ |   tjttdƒƒddd¡ |   tjttdƒƒddd¡ |   tjttdƒƒddd	¡ |   t tƒ ¡d
¡ |   t ttdƒƒ¡d¡ |   tjttdƒƒddd¡ |   tjttdƒƒddd¡ |   tjt	tdƒƒddd¡ d S )Nzset()rs   z	{0, 1, 2}rˆ   rÝ   rh   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   ri   r   r"   rZ   r    r!   r&   r$   r%   r   r   r   r	   Útest_set_reprs:  s    ÿÿÿzQueryTestCase.test_set_reprsc                 C   sH   d}t j d¡}|  t |¡|¡ d}t j |¡}|  t |¡|¡ 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})})}rs   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})})})})ÚtestZtest_setÚcuber   ri   r   Z	linegraph)r   Zcube_repr_tgtrç   Zcubo_repr_tgtZcubor   r   r	   Útest_set_of_sets_reprsf  s    z$QueryTestCase.test_set_of_sets_reprsc                 C   sÐ   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 |¡t|ƒ¡ |   t |¡t|ƒ¡ |   t |¡t|ƒ¡ d}d	}d
}|   tj|dd|¡ |   tj|dd|¡ |   tj|dd|¡ d S )N)r.   )rq   )rs   )r\   )r^   r‡   r.   rq   rs   r\   r^   r‡   z
(1, (...))z
{1: {...}}z
[1, [...]]rg   )r   ri   r   r0   )r   Znested_tupleZnested_dictZnested_listZ	lv1_tupleZlv1_dictZlv1_listr   r   r	   Ú
test_depth:  s   zQueryTestCase.test_depthc              	   C   s   d}dd„ t |ƒD ƒ}t |¡ t|td}dd„ }|  |t t|ƒ¡ƒdd 	t
t|ƒ¡ d	 ¡ |  |t t|ƒ¡ƒd
d 	t
t|ƒ¡ d ¡ |  |t t |¡¡ƒdd 	dd„ |D ƒ¡ d	 ¡ |  t tdddi¡dttƒ d ¡ ddg}|  t t |d¡¡dtt|tdƒ ¡ d S )NrÝ   c                 S   s   g | ]}t ƒ ‘qS r   )rF   ©Ú.0Úir   r   r	   Ú
<listcomp>L  s    z>QueryTestCase.test_sort_unorderable_values.<locals>.<listcomp>)Úkeyc                 S   s   |   dd¡  dd¡S )Nr   r‚   rŒ   )r‘   )Úsr   r   r	   Ú<lambda>O  s    z<QueryTestCase.test_sort_unorderable_values.<locals>.<lambda>ú{ú,ú}zfrozenset({z})c                 s   s    | ]}d | V  qdS )z%r:NoneNr   )rë   Úkr   r   r	   Ú	<genexpr>V  s   € z=QueryTestCase.test_sort_unorderable_values.<locals>.<genexpr>r   r.   z{1: 0, z: 0})r.   r   z{%r: 0, %r: 0})rZ   ÚrandomÚshuffleÚsortedrG   r   ri   r   r"   r›   rœ   r0   r&   r*   r¹   rF   r   )r   ÚnÚkeysZskeysZcleanr   r   r	   Útest_sort_unorderable_valuesI  s*   
ÿÿÿÿÿz*QueryTestCase.test_sort_unorderable_valuesc                 C   s
  t ƒ }tt|ƒƒ}|  ||¡ |  tt|ƒƒtt|ƒƒ¡ |  t||gƒ||g¡ |  t||gƒ||g¡ |  tj	t
||gƒddd||f ¡ |  tj	t
||gƒddd||f ¡ |  tj	t ||g¡ddd||f ¡ |  tj	t ||g¡ddd||f ¡ d S )Nr.   rh   z	{%r,
 %r}z{%r: None,
 %r: None})rF   rH   rK   Z
assertLessr2   r€   r   rø   ri   r   r"   r*   r¹   )r   r8   r>   r   r   r	   Ú*test_sort_orderable_and_unorderable_valuesa  s$   
ÿ
ÿ
ÿ
ÿz8QueryTestCase.test_sort_orderable_and_unorderable_valuesc                 C   sv  d}|   tj|ddd¡ |   tjd|ddœddd	¡ d
}|   tj|ddt|ƒ¡ |   tj|ddd¡ |   tj|ddd¡ |   tj|gggggddd¡ |   tj|gggggddd¡ |   tj|gggggddd¡ d}|   tj|ddt|ƒ¡ |   t d¡d¡ |d9 }tddƒD ]&}tj||d}|   t|ƒ|¡ tj|gd |d}|   t|ƒ|gd ¡ q’d S )Nr»   é   rh   ú6('the quick brown '
 'fox jumped over '
 'a lazy dog')r.   rq   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 zooéD   é   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']]]]]é   uv   [[[[['Portons dix '
     'bons "whiskys"\n'
     "Ã  l'avocat "
     'goujat\t qui '
     'fumait au '
     'zoo']]]]]ZdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxéP   r‚   ú''rŠ   rs   r]   )r   ri   r   r0   rZ   r¬   )r   rÑ   ÚspecialZunwrappabler`   rÌ   r   r   r	   Útest_str_wrapu  s0   ÿÿ   üzQueryTestCase.test_str_wrapc                 C   sD   dd„ t dƒD ƒdd„ t dƒD ƒ }d}|  tj|ddd	|¡ d S )
Nc                 S   s   g | ]
}t t|| ƒƒ‘qS r   ©r   rZ   rê   r   r   r	   rí   ²  s    z.QueryTestCase.test_compact.<locals>.<listcomp>r^   c                 S   s   g | ]}t t|ƒƒ‘qS r   r  rê   r   r   r	   rí   ³  s    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`   rc   )rZ   r   ri   r   )r   r   r™   r   r   r	   Útest_compact±  s
   ÿzQueryTestCase.test_compactc                 C   s   d}d}dg| }t |d ƒD ]}|g}qt |d d |d|  d ƒD ]!}tj||dd ¡ }ttt|ƒƒ}|  ||¡ |  ||d ¡ q$d S )	NrÝ   rŠ   r   r.   rq   rs   Tr	  )	rZ   ri   r   Ú
splitlinesÚmaxrœ   r   ZassertLessEqualZassertGreater)r   ZlevelsÚnumberr   rì   ÚwÚlinesZmaxwidthr   r   r	   Útest_compact_width½  s   
"üz QueryTestCase.test_compact_widthc                 C   sÐ  |   tjdddd¡ |   tjdddd¡ d}|   tj|ddt|ƒ¡ |   tj|d	dd
¡ |   tj|ddd¡ |   tj|ddd¡ ttdƒƒ}|   tj|ddt|ƒ¡ |   tj|ddd¡ |   tj|ddd¡ |   tj|ddd¡ |   tjd|ddœddd¡ |   tjd|ddœddd¡ |   tj|ggggggddd¡ |   tj|ggggggddd¡ tddƒD ]&}tj||d}|   t|ƒ|¡ tj|gd |d}|   t|ƒ|gd ¡ q¿d S )Nrƒ   r.   rh   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')rq   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   ri   r   r0   ÚbytesrZ   r¬   )r   Úlettersr  r`   rÌ   r   r   r	   Útest_bytes_wrapÉ  s<   ÿÿÿÿ""üzQueryTestCase.test_bytes_wrapc                 C   sF  |   tjtƒ ddd¡ tdƒ}|   tj|ddt|ƒ¡ |   tj|ddd¡ |   tj|ddd	¡ |   tj|d
dd	¡ ttdƒƒ}|   tj|ddt|ƒ¡ |   tj|ddd¡ |   tj|ddd¡ |   tj|ddd¡ |   tjd|ddœddd¡ |   tj|gggggddd¡ |   tj|gggggddd¡ d S )Nr.   rh   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')rq   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   ri   r   rv   r0   rZ   )r   r  r  r   r   r	   Útest_bytearray_wrap  s$   ÿÿ $z!QueryTestCase.test_bytearray_wrapc                 C   sT   t  t¡}|  tj|ddd¡ d ¡ }t  tt|t 	¡ ƒ¡}|  t |¡d¡ d S )Nr.   rh   zdefaultdict(<class 'int'>, {})r»   zñdefaultdict(<class 'int'>,
            {'a': 6,
             'brown': 2,
             'dog': 8,
             'fox': 3,
             'jumped': 4,
             'lazy': 7,
             'over': 5,
             'quick': 1,
             'the': 0}))
r¼   Údefaultdictr4   r   ri   r   r¾   r—   r¿   rÀ   rÁ   r   r   r	   Útest_default_dict-  s   
ÿzQueryTestCase.test_default_dictc                 C   sB   t  ¡ }|  tj|ddd¡ t  d¡}|  tj|ddd¡ d S )Nr.   rh   z	Counter()Zsenselessnessr]   zDCounter({'s': 6,
         'e': 4,
         'n': 2,
         'l': 1}))r¼   ÚCounterr   ri   r   r·   r   r   r	   Útest_counter?  s   
ÿzQueryTestCase.test_counterc                 C   s„   t  ¡ }|  tj|ddd¡ d ¡ }tt|t 	¡ ƒƒ}t  t
|ƒ¡}|  t |¡d¡ t  t
|ƒt  |¡¡}|  t |¡d¡ d S )Nr.   rh   zChainMap({})r»   z»ChainMap({'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   ri   r   r¾   r   r—   r¿   rÀ   r*   r½   )r   rE   rÂ   Úitemsr   r   r	   Útest_chainmapJ  s   ÿÿzQueryTestCase.test_chainmapc                 C   sœ   t  ¡ }|  tj|ddd¡ t jdd}|  tj|ddd¡ d ¡ }t  t|t ¡ ƒ¡}|  t |¡d¡ t jt|t ¡ ƒdd}|  t |¡d	¡ d S )
Nr.   rh   z	deque([])rˆ   )Úmaxlenzdeque([], maxlen=7)r»   z²deque([('the', 0),
       ('quick', 1),
       ('brown', 2),
       ('fox', 3),
       ('jumped', 4),
       ('over', 5),
       ('a', 6),
       ('lazy', 7),
       ('dog', 8)])zšdeque([('brown', 2),
       ('fox', 3),
       ('jumped', 4),
       ('over', 5),
       ('a', 6),
       ('lazy', 7),
       ('dog', 8)],
      maxlen=7))	r¼   Údequer   ri   r   r¾   r—   r¿   rÀ   rÁ   r   r   r	   Ú
test_dequeq  s   ÿÿzQueryTestCase.test_dequec                 C   óP   t  ¡ }|  tj|ddd¡ d ¡ }t  t|t ¡ ƒ¡}|  t |¡d¡ d S )Nr.   rh   z{}r»   zi{'a': 6,
 'brown': 2,
 'dog': 8,
 'fox': 3,
 'jumped': 4,
 'lazy': 7,
 'over': 5,
 'quick': 1,
 'the': 0})	r¼   ÚUserDictr   ri   r   r¾   r—   r¿   rÀ   rÁ   r   r   r	   Útest_user_dict  ó   ÿzQueryTestCase.test_user_dictc                 C   r-  )Nr.   rh   z[]r»   z{[('the', 0),
 ('quick', 1),
 ('brown', 2),
 ('fox', 3),
 ('jumped', 4),
 ('over', 5),
 ('a', 6),
 ('lazy', 7),
 ('dog', 8)])	r¼   ÚUserListr   ri   r   r¾   r—   r¿   rÀ   rÁ   r   r   r	   Útest_user_list   r0  zQueryTestCase.test_user_listc                 C   s^   t  d¡}|  tj|ddd¡ t  d¡}|  tj|ddd¡ |  tjd|iddd¡ d S )	Nr‚   r.   rh   r  r»   rÝ   rþ   zF{1: 'the quick '
    'brown fox '
    'jumped over a '
    'lazy dog'})r¼   Ú
UserStringr   ri   r   r·   r   r   r	   Útest_user_string±  s   

ÿÿzQueryTestCase.test_user_stringN)4r   r   r   r[   rp   r|   r   r   r•   rš   rŸ   r§   r­   rµ   r¸   rº   rÃ   rÇ   rÍ   rÎ   rÓ   rÕ   r×   rÚ   rÛ   rÞ   rà   rá   râ   rä   rå   ÚunittestZexpectedFailureræ   ÚsupportZcpython_onlyrè   ré   rû   rü   r  r
  r  r  r"  r$  r&  r)  r,  r/  r2  r4  r   r   r   r	   rW   }   s`    !#$&, R<9+'rW   c                   @   r   )rã   c                 C   s>   t |tƒrd|v rt|ƒddfS |ddfS tj | ||||¡S )Nr   r.   r   )Ú
isinstancer2   r0   ri   rj   Úformat)r   ÚobjectÚcontextÚ	maxlevelsÚlevelr   r   r	   r8  Ä  s   


ÿzDottedPrettyPrinter.formatN)r   r   r   r8  r   r   r   r	   rã   Â  s    rã   Ú__main__).r¼   r6   rk   r¿   ri   rö   Ztest.supportræ   Ztest.test_setrÄ   r5  r   r   r   r   r   r   r   r   r"   r    r!   r#   r&   r$   r%   r'   r*   r(   r)   r+   Z	dataclassr,   r7   r<   r=   rB   rC   rF   rH   ZTestCaserW   rj   rã   r   Úmainr   r   r   r	   Ú<module>   sh   
        M
ÿ