B
    18™\õ­  ã               @   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   úT/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/test/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ÚStringIOÚ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   rF   rE   rD   rG   Úclear)r   r>   ZickyrH   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 )NrB   zexpected not isrecursive for %rzexpected not isreadable for %r)r7   r8   ÚtyperE   rD   rG   )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)rB   rB   é   )rK   r@   r.   r0   r(   é   é   é
   iõÿÿÿr6   TF.rK   )r2   r1   Ú
ú )rC   r   r   r   r   r   r   r   r   r   r   r   r   rF   r7   r*   ÚreprÚassertEqualÚpformatÚreplaceÚ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ÚexprO   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 )NrX   rK   r@   rB   )Ú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o2rc   Ú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   rj   rc   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 )NrK   )r+   r,   Úcz{'a': 1, 'b': 1, 'c': 1}z4[{'a': 1, 'b': 1, 'c': 1}, {'a': 1, 'b': 1, 'c': 1}])rB   )zxy	ab
r0   r   z#{5: [[]], 'xy\tab\n': (3,), (): {}})r\   r7   r]   )r   rL   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 )NrK   )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   rL   Ú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)])))rv   r   rw   rx   ry   ÚtypesÚMappingProxyTyper\   r7   r]   rt   ru   )r   rz   rL   Ú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   rc   rd   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()rB   z	{0, 1, 2}rV   é   )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})})}rB   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)rK   )r@   )rB   )r.   )r0   rU   rK   r@   rB   r.   r0   rU   z
(1, (...))z
{1: {...}}z
[1, [...]])r3   )r\   r7   r]   r[   )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 )NrZ   rQ   rY   )r^   )Úsr   r   r   Ú<lambda>s  rR   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   rK   z{1: 0, z: 0})rK   )Nz{%r: 0, %r: 0})r*   ÚrandomÚshuffleÚsortedr   r\   r7   r]   r   ra   rb   r[   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 )NrK   )r2   z	{%r,
 %r}z{%r: None,
 %r: None})r   r   r   Ú
assertLessr   rO   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')rK   r@   )r+   r,   rr   rn   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   rQ   z''rX   rB   r/   )r\   r7   r]   r[   r*   rp   )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    rU   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   rc   rj   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‚   rX   r   rK   r@   rB   T)r2   r5   )	r*   r7   r]   Ú
splitlinesÚmaxrb   ÚlenÚassertLessEqualÚassertGreater)r   ZlevelsÚnumberrc   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 )NrR   rK   )r2   zb''s   abcdzb'abcd's   abcdefghijklmnopqrstuvwxyzé   rœ   z$(b'abcdefghijkl'
 b'mnopqrstuvwxyz')é   z)(b'abcdefghijkl'
 b'mnopqrstuvwx'
 b'yz')rm   é=   é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,   rr   é   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}rn   z3[[[[[[b'abcdefghijklmnop'
      b'qrstuvwxyz']]]]]]ri   zS[[[[[[b'\x00\x01\x02\x03\x04\x05\x06\x07'
      b'\x08\t\n\x0b\x0c\r\x0e\x0f']]]]]]é@   )r\   r7   r]   r[   Úbytesr*   rp   )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 )NrK   )r2   zbytearray(b'')s   abcdefghijklmnopqrstuvwxyzr/   é   z6bytearray(b'abcdefghijkl'
          b'mnopqrstuvwxyz')é   zDbytearray(b'abcdefghijkl'
          b'mnopqrstuvwx'
          b'yz')rn   rm   éH   é9   zVbytearray(b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b'
          b'\x0c\r\x0e\x0f')ri   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,   rr   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]   rC   r[   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 )NrK   )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}))
rt   ÚdefaultdictÚintr\   r7   r]   rv   rw   rx   ry   )r   rL   rz   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 )NrK   )r2   z	Counter()Zsenselessnessr/   zDCounter({'s': 6,
         'e': 4,
         'n': 2,
         'l': 1}))rt   ÚCounterr\   r7   r]   )r   rL   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 )NrK   )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)])))rt   ÚChainMapr\   r7   r]   rv   r	   rw   rx   ry   r   ru   )r   rL   rz   Ú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 )
NrK   )r2   z	deque([])rV   )Ú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))	rt   Údequer\   r7   r]   rv   rw   rx   ry   )r   rL   rz   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 )NrK   )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})	rt   ÚUserDictr\   r7   r]   rv   rw   rx   ry   )r   rL   rz   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 )NrK   )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)])	rt   ÚUserListr\   r7   r]   rv   rw   rx   ry   )r   rL   rz   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 )	NrQ   rK   )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'})rt   Ú
UserStringr\   r7   r]   )r   rL   r   r   r   Útest_user_stringÕ  s    

zQueryTestCase.test_user_stringN)&r   r   r   r-   r?   rI   rN   rP   r`   re   rk   rq   rs   r{   r   r   rƒ   ÚunittestÚexpectedFailurer„   ÚsupportÚ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 )NrZ   rK   r   )Ú
isinstancer   r[   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__)!rt   r9   rx   r7   r“   Ztest.supportr„   Ztest.test_setr|   rÒ   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ÚTestCaser'   r8   r€   r   Úmainr   r   r   r   Ú<module>   s>          %
