
    ^hP                     V   S r SSKrSSKrSSKrSSKJr  SSKrSSKJr  \R                  R                  SS5      S 5       rS r\R                  R                  S	S
S/5      S 5       r\R                  R                  S	S
S/5      S 5       rS rS rS rS rS rS rS rS rS rS rg)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                     SnS Vs/ s H  oUU-  PM	     nn[         R                  " [        5         [        R                  " XaX#S9nXp:X  d   e SSS5        gs  snf ! , (       d  f       g= f)zBasic columnize tests.   abcd)displaywidth	row_firstspreadN)pytestwarnsPendingDeprecationWarningr   	columnize)expectedwidthr   r   sizelitemsouts           W/home/james-whalen/.local/lib/python3.13/site-packages/IPython/utils/tests/test_text.pytest_columnizer       s`    ^ D#$VtVVE$	/	0nn
 	 
1	0 %	0	0s   AA
A+c                     S GH/  n [        SS5       Vs/ s H  n[        R                  " SS5      PM     sn H  n[        R                  " SS5      n[        U5       Vs/ s H  n[        R                  " SU5      PM     nnU Vs/ s H  nSU-  PM
     nn[        R                  " [
        5         [        R                  " X`US9nSSS5        [        WR                  S	5       Vs/ s H  n[        U5      PM     sn5      n	[        U5      n
X::  a  M   S
U	 SU
 SU SU SU SU  S	35       e   GM2     gs  snf s  snf s  snf ! , (       d  f       N= fs  snf )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   sA   "	5:1R[A[v~~a+[AF!>>"S1L@EfN1q6HN$,-HqSUHE-78nn\ 9 syy?!s1v?@K ]N. J;- X$$2#3 4"". 0''-h /**2 4&Kr+. B #AN-88 @s#   !D8 !D=E2E(E
Er   TFc                 *   SnS Vs/ s H  o"U-  PM	     nn[         R                  " [        5         [        R                  " X0SS9nSSS5        WSR                  US/-   5      :X  d   SR                  U 5      5       egs  snf ! , (       d  f       NC= f)	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<      sz     D"#UtVUE#	/	0nnUbI 
1$))ERDL))L?+A+A)+LL) $	0	0s   A?B
Bc                 0   SnS Vs/ s H  o"U-  PM	     nn[         R                  " [        5         [        R                  " X0US-
  S9nSSS5        WSR                  US/-   5      :X  d   SR                  U 5      5       egs  snf ! , (       d  f       NC= f)	z9Test columnize with inputs longer than the display window   r5      r&   Nr'   r6   r7   r8   r;   s        r   test_columnize_longr@      s~     D"#UtVUE#	/	0nnUdQhO 
1$))ERDL))L?+A+A)+LL) $	0	0s   BB
Bc           	      t   [        S[        R                  S[        SSS9nU R                  " S0 UD6nUS:X  d   eU R                  " SR                  [        SS5       Vs/ s H  nS	U-  PM
     sn5      40 UD6nUS
:X  d   eU R                  " S0 UD6nUS:X  d   eU R                  " S0 UD6nX!S   :X  d   eU R                  " S0 UD6nU[        US   5      :X  d   eU R                  " S0 UD6nX!S   :X  d   eU R                  " S0 UD6n[        R                  " [        U R                  S40 UD6  g s  snf )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      s6   	twwmh'	RB	7B7A	%1+>+Q9q=+>?F2FA    	626A((((	##A7	##AR[!!!! 	
"A3<<	"A
MM)QXXw5"5 ?s    D5c                 :   [        S[        R                  S[        S9nU R                  " S	0 UD6nUS:X  d   eU R                  " S
0 UD6nUS:X  d   eU R                  " S0 UD6nX!S   S S S2   :X  d   e[
        R                  " [        U R                  S40 UD6  g )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                     [        S[        R                  S[        S9nU R                  " S0 UD6nUS:X  d   eU R                  " S0 UD6nUS:X  d   eU R	                  SSS/S	9nUS
:X  d   eg )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]      st    	twwm	;B	*r*A	-"-A::	aV$A==rY   c                  Z    [         R                  " 5       n [        U 5        [        U 5        g N)r   EvalFormatterrS   r]   rP   s    r   test_eval_formatterrb      s     A#A&rY   c                  Z    [         R                  " 5       n [        U 5        [        U 5        g r_   )r   FullEvalFormatterrS   rX   ra   s    r   test_full_eval_formatterre      s      A #rY   c                     [         R                  " 5       n [        U 5        [        U 5        [	        S[
        R                  S[        S9nU R                  " S0 UD6nUS:X  d   eU R                  " S0 UD6nUS:X  d   eU R                  " S0 UD6nUS:X  d   eU R                  " S0 UD6nUS:X  d   eU R                  SSS	9nUS
:X  d   eg )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    Sn Sn[         R                  " U 5      U:X  d   eg )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    Sn Sn[         R                  " U 5      U:X  d   eg )Nz> > > list()zlist()rm   ro   s     r   test_strip_email2rt      s%    
C
C""3'3...rY   c                     [         R                  " S5      n U R                  SS/:X  d   eU R                  S:X  d   e[         R                  " [        R
                  " 5       5      n [        U R                  S   [        5      (       d   eg )Nzabc
defr5   defzabc defr   )	r   LSStringr   rR   rF   getcwd
isinstancepr   )lsss    r   test_LSStringr|      sg    
--

#C55UEN"""55I
--		
$CceeAh%%%%rY   c                     [         R                  " / SQ5      n U R                  S:X  d   eU R                  S:X  d   eU R	                  S 5      [         R                  " SS/5      :X  d   eU R                  S5      [         R                  " / SQ5      :X  d   eU R                  S	S
S9[         R                  " / SQ5      :X  d   eg )N)a 11b 1a 2za 11
b 1
a 2za 11 b 1 a 2c                 $    U R                  S5      $ )Nr\   )
startswith)r%   s    r   <lambda>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   