
    }eP                     V   d Z ddlZddlZddlZddlmZ ddlZddlmZ ej                  j                  dd      d        Zd Zej                  j                  d	d
dg      d        Zej                  j                  d	d
dg      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)zTests for IPython.utils.text    N)Path)textz"expected, width, row_first, spread))aaaaa  bbbbb  ccccc  ddddd
P   FF)aaaaa  ccccc
bbbbb  ddddd
   FF)r      FF)aaaaa
bbbbb
ccccc
ddddd

   FF)r   r   TF)aaaaa  bbbbb
ccccc  ddddd
r   TF)r   r	   TF)r
   r   TF)z'aaaaa      bbbbb      ccccc      ddddd
(   FT)z*aaaaa          ccccc
bbbbb          ddddd
   FT)r   r	   FT)r
   r   FTc                     d}dD cg c]  }||z  	 }}t        j                  t              5  t        j                  ||||      }|| k(  sJ 	 ddd       yc c}w # 1 sw Y   yxY w)zBasic columnize tests.   abcd)displaywidth	row_firstspreadN)pytestwarnsPendingDeprecationWarningr   	columnize)expectedwidthr   r   sizelitemsouts           ?/usr/lib/python3/dist-packages/IPython/utils/tests/test_text.pytest_columnizer       sr    ^ D#$QtV$E$	/	0 nn6
 h	  % s   A!AA'c                     dD ]  } t        dd      D cg c]  }t        j                  dd       c}D ]  }t        j                  dd      }t        |      D cg c]  }t        j                  d|       }}|D cg c]  }d|z  	 }}t        j                  t
              5  t        j                  || |      }ddd       t        j                  d	      D cg c]  }t        |       c}      }	t        |      }
|	|k  rJ d
|	 d|
 d| d| d| d|  d	        " yc c}w c c}w c c}w # 1 sw Y   yxY wc c}w )z4Test with random input to hopefully catch edge case )TF   r   F      xr   r   N
z8Columnize displayed something lager than displaywidth : z
longer element : z
displaywidth : z
number of element : z
size of each element : z
row_first=)rangerandomrandintr   r   r   r   r   maxsplitlen)r   initemsr   rand_lenr   r   r   r%   longer_linelonger_elements              r   test_columnize_randomr3   v   sM   " 	5:1R[Av~~a+A 	F!>>"S1L@EfN1q6NHN$,-qSU-E-78 nnY\ syy?!s1v?@K ]N,. J;- X$$2#3 4"". 0''-h /**2 4&Kr+.	AN-  @s#   D'D,>D1%D6E6D?r   TFc                    d}dD cg c]  }||z  	 }}t        j                  t              5  t        j                  || d      }ddd       dj                  |dgz         k(  sJ dj                  |              yc c}w # 1 sw Y   =xY w)	z0Test with inputs than shouldn't be wider than 80r   abcr   r&   Nr'    row_first={0}r   r   r   r   r   joinformatr   r   r   r   r   s        r   test_columnize_mediumr<      s     D"#QtV#E#	/	0 JnnUibIJ$))ERDL))L?+A+A)+LL) $J Js   A>BBc                 $   d}dD cg c]  }||z  	 }}t        j                  t              5  t        j                  || |dz
        }ddd       dj                  |dgz         k(  sJ dj                  |              yc c}w # 1 sw Y   =xY w)	z9Test columnize with inputs longer than the display window   r5      r&   Nr'   r6   r7   r8   r;   s        r   test_columnize_longr@      s     D"#QtV#E#	/	0 PnnUidQhOP$))ERDL))L?+A+A)+LL) $P Ps   BBBc           	      j   t        dt        j                  dt        dd      } | j                  di |}|dk(  sJ  | j                  dj                  t        dd      D cg c]  }d	|z  	 c}      fi |}|d
k(  sJ  | j                  di |}|dk(  sJ  | j                  di |}||d   k(  sJ  | j                  di |}|t        |d         k(  sJ  | j                  di |}||d   k(  sJ  | j                  di |}t        j                  t        | j                  dfi | y c c}w )Nr	   hello thereu   café)npistuffosubz
12 3 hello r?      z{n//%i}z12 6 4 3 2 2 1z[12, 6, 4, 3, 2, 2, 1]rE   rG   z{dne})z{n} {n//4} {stuff.split()[0]})z{[n//i for i in range(1,8)]})z	{stuff!s})z	{stuff!r})z{u})z{b})dictmathrD   rF   r:   r9   r(   reprr   raises	NameError)fnssr.   s       r   eval_formatter_checkrS      sD   	twwmh'	RB7B7A%1+>Q9q=>?F2FA    626A((((##A7##AR[!!!! 	"A3<<"A
MM)QXXw5"5 ?s   "D0c                 :   t        dt        j                  dt              } | j                  d	i |}|dk(  sJ  | j                  d
i |}|dk(  sJ  | j                  di |}||d   d d d   k(  sJ t        j                  t        | j                  dfi | y )Nr	   rB   rC   rD   rE   rF   z ['hello', 'there'] z ['there', 'hello'] rE   r"   z{n:x})z {stuff.split()[:]} )z {stuff.split()[::-1]} )z{stuff[::2]})rK   rL   rD   rF   r:   r   rN   SyntaxErrorrP   rQ   rR   s      r   eval_formatter_slicing_checkrX      s    	twwm	;B.2.A&&&&1b1A&&&&&2&A7CaC    
MM+qxx7B7    c                     t        dt        j                  dt              } | j                  di |}|dk(  sJ  | j                  di |}|dk(  sJ | j	                  dddg	      }|d
k(  sJ y )Nr	   rB   rU   zc +9.869604ellz{a[:]}r?   r"   )az[1, 2])z{n:x} {pi**2:+f})z{stuff[slice(1,4)]})rK   rL   rD   rF   r:   rW   s      r   eval_formatter_no_slicing_checkr]      sx    	twwm	;B*r*A-"-A::	aV$A==rY   c                  X    t        j                         } t        |        t        |        y N)r   EvalFormatterrS   r]   rP   s    r   test_eval_formatterrb      s     A#A&rY   c                  X    t        j                         } t        |        t        |        y r_   )r   FullEvalFormatterrS   rX   ra   s    r   test_full_eval_formatterre      s      A #rY   c                     t        j                         } t        |        t        |        t	        dt
        j                  dt              } | j                  di |}|dk(  sJ  | j                  di |}|dk(  sJ  | j                  di |}|dk(  sJ  | j                  di |}|dk(  sJ | j                  dd	      }|d
k(  sJ y )Nr	   rB   rU   12z12/helloz12 $HOMEz${foo}HOME)fooz$HOME)z$n)z$n.real)z$n/{stuff[:5]})z	$n $$HOME)	r   DollarFormatterrS   rX   rK   rL   rD   rF   r:   rW   s      r   test_dollar_formatterrk      s    A #	twwm	;BA99!b!A99(R(A
??##A
??	v&A<<rY   c                  @    d} d}t        j                  |       |k(  sJ y )Nz_        >> >>> def f(x):
        >> ...   return x+1
        >> ... 
        >> >>> zz = f(2.5)z3>>> def f(x):
...   return x+1
... 
>>> zz = f(2.5)r   strip_email_quotessrcclns     r   test_strip_emailrr      s+    C
C
 ""3'3...rY   c                  @    d} d}t        j                  |       |k(  sJ y )Nz> > > list()zlist()rm   ro   s     r   test_strip_email2rt      s%    
C
C""3'3...rY   c                     t        j                  d      } | j                  ddgk(  sJ | j                  dk(  sJ t        j                  t	        j
                               } t        | j                  d   t              sJ y )Nzabc
defr5   defzabc defr   )	r   LSStringr   rR   rF   getcwd
isinstancepr   )lsss    r   test_LSStringr|      sd    
--

#C55UEN"""55I
--		
$CceeAh%%%rY   c                  ~   t        j                  g d      } | j                  dk(  sJ | j                  dk(  sJ | j	                  d       t        j                  ddg      k(  sJ | j                  d      t        j                  g d      k(  sJ | j                  d	d
      t        j                  g d      k(  sJ y )N)a 11b 1a 2za 11
b 1
a 2za 11 b 1 a 2c                 $    | j                  d      S )Nr\   )
startswith)r%   s    r   <lambda>ztest_SList.<locals>.<lambda>
  s    Q\\#. rY   r~   r   r   )r\   rH   r\   r?   T)fieldnums)r   r   r~   )r   SListrC   rR   grepfieldssort)sls    r   
test_SListr     s    	*	+B44####44>!!!77./4::vuo3NNNN99Q<4::o6666777&$**5K*LLLLrY   )__doc__rF   rL   r)   pathlibr   r   IPython.utilsr   markparametrizer    r3   r<   r@   rS   rX   r]   rb   re   rk   rr   rt   r|   r    rY   r   <module>r      s    " 
      (ILZ[LZ. tUm4M 5M tUm4M 5M6,	8
'
$
$//&MrY   