B
    u9aõ­  ã               @   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	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ƒZG dd„ dƒZG dd„ de	jƒZG dd„ dejƒZedkr:e	  ¡  dS )é    Nc               @   s   e Zd ZdS )Úlist2N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú!/usr/lib/python3.7/test_pprint.pyr      s   r   c               @   s   e Zd Zdd„ ZdS )Úlist3c             C   s
   t  | ¡S )N)ÚlistÚ__repr__)Úselfr   r   r   r
      s    zlist3.__repr__N)r   r   r   r
   r   r   r   r   r      s   r   c               @   s   e Zd ZdS )Útuple2N)r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd Zdd„ ZdS )Útuple3c             C   s
   t  | ¡S )N)Útupler
   )r   r   r   r   r
      s    ztuple3.__repr__N)r   r   r   r
   r   r   r   r   r      s   r   c               @   s   e Zd ZdS )Úset2N)r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd Zdd„ ZdS )Úset3c             C   s
   t  | ¡S )N)Úsetr
   )r   r   r   r   r
       s    zset3.__repr__N)r   r   r   r
   r   r   r   r   r      s   r   c               @   s   e Zd ZdS )Ú
frozenset2N)r   r   r   r   r   r   r   r   #   s   r   c               @   s   e Zd Zdd„ ZdS )Ú
frozenset3c             C   s
   t  | ¡S )N)Ú	frozensetr
   )r   r   r   r   r
   '   s    zfrozenset3.__repr__N)r   r   r   r
   r   r   r   r   r   &   s   r   c               @   s   e Zd ZdS )Údict2N)r   r   r   r   r   r   r   r   *   s   r   c               @   s   e Zd Zdd„ ZdS )Údict3c             C   s
   t  | ¡S )N)Údictr
   )r   r   r   r   r
   .   s    zdict3.__repr__N)r   r   r   r
   r   r   r   r   r   -   s   r   c               @   s   e Zd Zdd„ ZdS )ÚUnorderablec             C   s   t t| ƒƒS )N)ÚstrÚid)r   r   r   r   r
   2   s    zUnorderable.__repr__N)r   r   r   r
   r   r   r   r   r   1   s   r   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 )N)Ú_hash)r   Úhashr   r   r   Ú__init__7   s    zOrderable.__init__c             C   s   dS )NFr   )r   Úotherr   r   r   Ú__lt__9   s    zOrderable.__lt__c             C   s   | |kS )Nr   )r   r   r   r   r   Ú__gt__;   s    zOrderable.__gt__c             C   s   | |kS )Nr   )r   r   r   r   r   Ú__le__=   s    zOrderable.__le__c             C   s   dS )NTr   )r   r   r   r   r   Ú__ge__?   s    zOrderable.__ge__c             C   s   | |kS )Nr   )r   r   r   r   r   Ú__eq__A   s    zOrderable.__eq__c             C   s   | |k	S )Nr   )r   r   r   r   r   Ú__ne__C   s    zOrderable.__ne__c             C   s   | j S )N)r   )r   r   r   r   Ú__hash__E   s    zOrderable.__hash__N)r   r   r   r   r    r!   r"   r#   r$   r%   r&   r   r   r   r   r   6   s   r   c               @   s
  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ejejj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#d9d:„ Z$d;d<„ Z%d=S )>ÚQueryTestCasec             C   s,   t tdƒƒ| _t tdƒƒ| _| j| jd< d S )Néd   éÈ   iôÿÿÿ)r	   ÚrangeÚaÚb)r   r   r   r   ÚsetUpJ   s    zQueryTestCase.setUpc          	   C   s¬   t  ¡ }t jdddt ¡ dd}t  dddt ¡ ¡}|  t¡ t  dddt ¡ d¡}W d Q R X | 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Úcompactéÿÿÿÿ)r1   r   )r3   )r2   )ÚpprintÚPrettyPrinterÚioÚStringIOZassertRaisesÚ	TypeErrorÚ
ValueError)r   Úppr   r   r   Ú	test_initO   s    
 zQueryTestCase.test_initc             C   s¦   t  ¡ }x˜dddddgdddidtdƒd	d
d d| j| jfD ]d}|  t  |¡d|f ¡ |  t  |¡d|f ¡ |  | |¡d|f ¡ |  | |¡d|f ¡ q:W d S )Né   g       @y               @Úabcé   )r?   r?   s   defs   ghiTF.zexpected not isrecursive for %rzexpected isreadable for %r)	r7   r8   Ú	bytearrayr+   r,   ÚassertFalseÚisrecursiveÚ
assertTrueÚ
isreadable)r   r=   Úsafer   r   r   Ú
test_basic[   s    zQueryTestCase.test_basicc             C   sP  | j | jd< i | _| j | jd<  | jd< | jd< t ¡ }xj| j | j| j| j| jffD ]L}|  t |¡d¡ |  t |¡d¡ |  | |¡d¡ |  | |¡d¡ qVW | j 	¡  | j d d …= | jd d …= x‚| j | j| j| j| jffD ]d}|  t |¡d|f ¡ |  t |¡d|f ¡ |  | |¡d|f ¡ |  | |¡d|f ¡ qäW d S )	NéC   r   é   r?   zexpected isrecursivezexpected not isreadablezexpected not isrecursive for %rzexpected isreadable for %r)
r+   r,   Údr7   r8   rE   rD   rC   rF   Úclear)r   r=   ZickyrG   r   r   r   Útest_knottedl   s*      
 zQueryTestCase.test_knottedc             C   s†   t  ¡ }xxtdƒt t jfD ]d}|  t  |¡d|f ¡ |  t  |¡d|f ¡ |  | |¡d|f ¡ |  | |¡d|f ¡ qW d S )NrA   zexpected not isrecursive for %rzexpected not isreadable for %r)r7   r8   ÚtyperD   rC   rF   )r   r=   Z
unreadabler   r   r   Útest_unreadable   s    zQueryTestCase.test_unreadablec          9   C   sj  xbd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f9D ]R}t|ƒ}|  t |¡|¡ |  tj|ddd dd¡|¡ |  t |¡|¡ qW d S )Nr   y                g        Ú ó    r   iúÿÿÿy      À      Àg      ø¿Úxó   x)rA   rA   é   )rJ   r?   r.   r0   r(   é   é   é
   iõÿÿÿr6   TF.rJ   )r2   r1   Ú
ú )rB   r   r   r   r   r   r   r   r   r   r   r   r   rE   r7   r*   ÚreprÚassertEqualÚpformatÚreplaceZsaferepr)r   ZsimpleZnativer   r   r   Útest_same_as_reprœ   s,    	


$
zQueryTestCase.test_same_as_reprc             C   s  ddddddddœ}d}x&t tgD ]}|  t ||ƒ¡|¡ q"W tdƒ}dd tt|ƒ¡ }x&t	t
gD ]}|  t ||ƒ¡|¡ qfW ttdƒƒ}d	d tt|ƒ¡ }x&ttgD ]}|  t ||ƒ¡|¡ q®W tdƒ}d
d tt|ƒ¡ }x*t	t
gD ]}|  tj||ƒdd|¡ qòW d 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}r(   z[%s]z,
 z(%s)z[   %s]z,
    r.   )r1   )r   r   r[   r7   r\   r*   ÚjoinÚmapr   r	   r   r   r   )r   ÚoÚexprN   r   r   r   Útest_basic_line_wrap½   s,    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 )NrW   rJ   r?   rA   )ÚfirstÚsecondZthirdzN[   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    {'first': 1, 'second': 2, 'third': 3}]r.   é*   )r1   r2   za[   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    {   'first': 1,
        'second': 2,
        'third': 3}]é)   )r	   r*   r   r[   r7   r\   )r   Zo1Zo2ra   Úexpectedr   r   r   Útest_nested_indentationsá   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']]]]]é   )r2   é   é   é   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[   r7   r\   )r   rh   ra   r   r   r   Ú
test_widthð   s    
zQueryTestCase.test_widthc             C   sT   ddddœ}|   t |¡d¡ |   t ||g¡d¡ |   t dg gi dœ¡d¡ d S )NrJ   )r+   r,   Úcz{'a': 1, 'b': 1, 'c': 1}z4[{'a': 1, 'b': 1, 'c': 1}, {'a': 1, 'b': 1, 'c': 1}])rA   )zxy	ab
r0   r   z#{5: [[]], 'xy\tab\n': (3,), (): {}})r[   r7   r\   )r   rK   r   r   r   Útest_sorted_dict  s    zQueryTestCase.test_sorted_dictc             C   sp   t  ¡ }|  tj|ddd¡ t  g ¡}|  tj|ddd¡ d ¡ }t  t|t ¡ ƒ¡}|  t |¡d¡ d S )NrJ   )r2   zOrderedDict()z*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[   r7   r\   ÚsplitÚzipÚ	itertoolsÚcount)r   rK   Ú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 )Nz*the quick brown fox jumped over a lazy dogzß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)])))rt   r   ru   rv   rw   ÚtypesÚMappingProxyTyper[   r7   r\   rr   rs   )r   rx   rK   Úmr   r   r   Útest_mapping_proxy;  s    
	
	z QueryTestCase.test_mapping_proxyc             C   s&   dddœ}d}|   tƒ  |¡|¡ 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})r[   ÚDottedPrettyPrinterr\   )r   ra   rb   r   r   r   Útest_subclassingV  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()rA   z	{0, 1, 2}rU   é   )r2   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[   r7   r\   r   r*   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})})}rA   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[   r7   r\   Z	linegraph)r   Zcube_repr_tgtrƒ   Zcubo_repr_tgtZcubor   r   r   Útest_set_of_sets_reprsŠ  s    0 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)rJ   )r?   )rA   )r.   )r0   rT   rJ   r?   rA   r.   r0   rT   z
(1, (...))z
{1: {...}}z
[1, [...]])r3   )r[   r7   r\   rZ   )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   )r   )Ú.0Úir   r   r   ú
<listcomp>p  s    z>QueryTestCase.test_sort_unorderable_values.<locals>.<listcomp>)Úkeyc             S   s   |   dd¡  dd¡S )NrY   rP   rX   )r]   )Úsr   r   r   Ú<lambda>s  rQ   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>z  s    z=QueryTestCase.test_sort_unorderable_values.<locals>.<genexpr>r   rJ   z{1: 0, z: 0})rJ   )Nz{%r: 0, %r: 0})r*   ÚrandomZshuffleÚsortedr   r[   r7   r\   r   r_   r`   rZ   r   r   Úfromkeysr   r   )r   ÚnÚkeysZskeysZcleanr   r   r   Útest_sort_unorderable_valuesm  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 )NrJ   )r2   z	{%r,
 %r}z{%r: None,
 %r: None})r   r   r   Z
assertLessr   rN   r[   r’   r7   r\   r   r   r“   )r   r+   r,   r   r   r   Ú*test_sort_orderable_and_unorderable_values…  s    z8QueryTestCase.test_sort_orderable_and_unorderable_valuesc             C   s|  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 }x\tddƒD ]N}tj||d}|   t|ƒ|¡ tj|gd |d}|   t|ƒ|gd ¡ q&W d S )Nz*the quick brown fox jumped over a lazy dogé   )r2   z6('the quick brown '
 'fox jumped over '
 'a lazy dog')rJ   r?   )r+   r,   rp   rl   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   rP   z''rW   rA   r/   )r[   r7   r\   rZ   r*   rn   )r   ZfoxÚspecialZunwrappabler2   Ú	formattedr   r   r   Útest_str_wrap™  s6    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	   r*   )r†   r‡   r   r   r   rˆ   Ö  s    z.QueryTestCase.test_compact.<locals>.<listcomp>r0   c             S   s   g | ]}t t|ƒƒ‘qS r   )r	   r*   )r†   r‡   r   r   r   rˆ   ×  s    rT   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)r2   r5   )r*   r[   r7   r\   )r   ra   rh   r   r   r   Útest_compactÕ  s    zQueryTestCase.test_compactc             C   s˜   d}d}dg| }xt |d ƒD ]
}|g}q W xdt |d d |d|  d ƒD ]B}tj||dd ¡ }ttt|ƒƒ}|  ||¡ |  ||d ¡ qNW d S )	Nr€   rW   r   rJ   r?   rA   T)r2   r5   )	r*   r7   r\   Ú
splitlinesÚmaxr`   ÚlenZassertLessEqualZassertGreater)r   ZlevelsZnumberra   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¡ x\tddƒD ]N}tj||d}|   t|ƒ|¡ tj|gd |d}|   t|ƒ|gd ¡ q€W d S )NrQ   rJ   )r2   zb''s   abcdzb'abcd's   abcdefghijklmnopqrstuvwxyzé   r˜   z$(b'abcdefghijkl'
 b'mnopqrstuvwxyz')é   z)(b'abcdefghijkl'
 b'mnopqrstuvwx'
 b'yz')rk   é=   é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+   r,   rp   é   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}rl   z3[[[[[[b'abcdefghijklmnop'
      b'qrstuvwxyz']]]]]]rg   zS[[[[[[b'\x00\x01\x02\x03\x04\x05\x06\x07'
      b'\x08\t\n\x0b\x0c\r\x0e\x0f']]]]]]é@   )r[   r7   r\   rZ   Úbytesr*   rn   )r   Úlettersrž   r2   rŸ   r   r   r   Útest_bytes_wrapí  sB    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 )NrJ   )r2   zbytearray(b'')s   abcdefghijklmnopqrstuvwxyzr/   é   z6bytearray(b'abcdefghijkl'
          b'mnopqrstuvwxyz')é   zDbytearray(b'abcdefghijkl'
          b'mnopqrstuvwx'
          b'yz')rl   rk   éH   é9   zVbytearray(b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b'
          b'\x0c\r\x0e\x0f')rg   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,   rp   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[   r7   r\   rB   rZ   r*   )r   r±   rž   r   r   r   Útest_bytearray_wrap&  s0    z!QueryTestCase.test_bytearray_wrapc             C   sT   t  t¡}|  tj|ddd¡ d ¡ }t  tt|t 	¡ ƒ¡}|  t |¡d¡ d S )NrJ   )r2   zdefaultdict(<class 'int'>, {})z*the quick brown fox jumped over a lazy dogzñdefaultdict(<class 'int'>,
            {'a': 6,
             'brown': 2,
             'dog': 8,
             'fox': 3,
             'jumped': 4,
             'lazy': 7,
             'over': 5,
             'quick': 1,
             'the': 0}))
rr   ÚdefaultdictÚintr[   r7   r\   rt   ru   rv   rw   )r   rK   rx   r   r   r   Útest_default_dictQ  s    
zQueryTestCase.test_default_dictc             C   sB   t  ¡ }|  tj|ddd¡ t  d¡}|  tj|ddd¡ d S )NrJ   )r2   z	Counter()Zsenselessnessr/   zDCounter({'s': 6,
         'e': 4,
         'n': 2,
         'l': 1}))rr   ÚCounterr[   r7   r\   )r   rK   r   r   r   Útest_counterc  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 )NrJ   )r2   zChainMap({})z*the quick brown fox jumped over a lazy dogz»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)])))rr   ÚChainMapr[   r7   r\   rt   r	   ru   rv   rw   r   rs   )r   rK   rx   Úitemsr   r   r   Útest_chainmapn  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 )
NrJ   )r2   z	deque([])rU   )Úmaxlenzdeque([], maxlen=7)z*the quick brown fox jumped over a lazy dogz²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))	rr   Údequer[   r7   r\   rt   ru   rv   rw   )r   rK   rx   r   r   r   Ú
test_deque•  s    
	zQueryTestCase.test_dequec             C   sP   t  ¡ }|  tj|ddd¡ d ¡ }t  t|t ¡ ƒ¡}|  t |¡d¡ d S )NrJ   )r2   z{}z*the quick brown fox jumped over a lazy dogzi{'a': 6,
 'brown': 2,
 'dog': 8,
 'fox': 3,
 'jumped': 4,
 'lazy': 7,
 'over': 5,
 'quick': 1,
 'the': 0})	rr   ÚUserDictr[   r7   r\   rt   ru   rv   rw   )r   rK   rx   r   r   r   Útest_user_dict³  s    
zQueryTestCase.test_user_dictc             C   sP   t  ¡ }|  tj|ddd¡ d ¡ }t  t|t ¡ ƒ¡}|  t |¡d¡ d S )NrJ   )r2   z[]z*the quick brown fox jumped over a lazy dogz{[('the', 0),
 ('quick', 1),
 ('brown', 2),
 ('fox', 3),
 ('jumped', 4),
 ('over', 5),
 ('a', 6),
 ('lazy', 7),
 ('dog', 8)])	rr   ÚUserListr[   r7   r\   rt   ru   rv   rw   )r   rK   rx   r   r   r   Útest_user_listÄ  s    
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 )	NrP   rJ   )r2   z''z*the quick brown fox jumped over a lazy dogr€   z6('the quick brown '
 'fox jumped over '
 'a lazy dog')zF{1: 'the quick '
    'brown fox '
    'jumped over a '
    'lazy dog'})rr   Ú
UserStringr[   r7   r\   )r   rK   r   r   r   Útest_user_stringÕ  s    

zQueryTestCase.test_user_stringN)&r   r   r   r-   r>   rH   rM   rO   r^   rc   ri   ro   rq   ry   r}   r   r   ÚunittestZexpectedFailurer‚   ZsupportZcpython_onlyr„   r…   r–   r—   r    r¢   r¨   r²   r¹   r¼   r¾   rÁ   rÄ   rÆ   rÈ   rÊ   r   r   r   r   r'   H   s@   !!$&, S<9+'r'   c               @   s   e Zd Zdd„ ZdS )r~   c             C   sD   t |tƒr,d|kr t|ƒddfS |ddfS ntj | ||||¡S d S )NrY   rJ   r   )Ú
isinstancer   rZ   r7   r8   Úformat)r   ÚobjectÚcontextÚ	maxlevelsÚlevelr   r   r   rÍ   è  s    
zDottedPrettyPrinter.formatN)r   r   r   rÍ   r   r   r   r   r~   æ  s   r~   Ú__main__)!rr   r9   rv   r7   r‘   Ztest.supportr‚   Ztest.test_setrz   rË   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ZTestCaser'   r8   r~   r   Úmainr   r   r   r   Ú<module>   s>          %
