
    f                        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 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)textc                     d} dD cg c]  }|| z  	 }}t        j                  |d      }|dk(  sJ t        j                  |d      }|dk(  sJ t        j                  |d      }|dk(  sJ t        j                  |d	      }|d
k(  sJ t        j                  |dd      }|dk(  sJ t        j                  |dd      }|dk(  sJ t        j                  |dd      }|dk(  sJ t        j                  |dd	      }|d
k(  sJ t        j                  |dd      }|dk(  sJ t        j                  |dd      }|dk(  sJ t        j                  |dd      }|dk(  sJ t        j                  |d	d      }|d
k(  sJ yc c}w )zBasic columnize tests.   abcdP   )displaywidthzaaaaa  bbbbb  ccccc  ddddd
   zaaaaa  ccccc
bbbbb  ddddd
   
   zaaaaa
bbbbb
ccccc
ddddd
T	row_firstr	   zaaaaa  bbbbb
ccccc  ddddd
(   )r	   spreadz'aaaaa      bbbbb      ccccc      ddddd
   z*aaaaa          ccccc
bbbbb          ddddd
N)r   	columnize)sizelitemsouts       X/var/www/cvtools/html/venv/lib/python3.12/site-packages/IPython/utils/tests/test_text.pytest_columnizer      s   D#$QtV$E$
..R
0C0000
..R
0C0000
..R
0C0000
..R
0C0000
..$R
@C0000
..$R
@C0000
..$R
@C0000
..$R
@C0000
..R
=C<<<<
..R
=C@@@@
..R
=C0000
..R
=C00007 %s   F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        |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 c c}w )z4Test with random input to hopefully catch edge case )TF   r   F      xr   
z8Columnize displayed something lager than displaywidth : z
longer element : z
displaywidth : z
number of element : z
size of each element : z
row_first=N)rangerandomrandintr   r   maxsplitlen)r   initemsr	   rand_lenr   r   r   r   longer_linelonger_elements              r   test_columnize_randomr*   >   s$   " 	5:1R[Av~~a+A 	F!>>"S1L@EfN1q6NHN$,-qSU-E-..),WCsyy?!s1v?@K ]N,. J;- X$$2#3 4"". 0''-h /**2 4&Kr+.	AN-?s   DD=D;Dr   TFc                     d}dD cg c]  }||z  	 }}t        j                  || d      }|dj                  |dgz         k(  sJ dj                  |              yc c}w )	z0Test with inputs than shouldn't be wider than 80r   abcr   r   r    row_first={0}Nr   r   joinformatr   r   r   r   r   s        r   test_columnize_mediumr3   R   sd     D"#QtV#E#
..)"
EC$))ERDL))L?+A+A)+LL) $s   Ac                     d}dD cg c]  }||z  	 }}t        j                  || |dz
        }|dj                  |dgz         k(  sJ dj                  |              yc c}w )	z9Test columnize with inputs longer than the display window   r,      r   r   r-   r.   Nr/   r2   s        r   test_columnize_longr7   [   sh     D"#QtV#E#
..)$(
KC$))ERDL))L?+A+A)+LL) $s   A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 r6      z{n//%i}z12 6 4 3 2 2 1z[12, 6, 4, 3, 2, 2, 1]r<   r>   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mathr;   r=   r1   r0   r   reprpytestraises	NameError)fnssr%   s       r   eval_formatter_checkrK   d   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   r9   r:   r;   r<   r=   z ['hello', 'there'] z ['there', 'hello'] r<   r   z{n:x})z {stuff.split()[:]} )z {stuff.split()[::-1]} )z{stuff[::2]})rB   rC   r;   r=   r1   rE   rF   SyntaxErrorrH   rI   rJ   s      r   eval_formatter_slicing_checkrP   z   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   r9   rM   zc +9.869604ellz{a[:]}r6   r   )az[1, 2])z{n:x} {pi**2:+f})z{stuff[slice(1,4)]})rB   rC   r;   r=   r1   rO   s      r   eval_formatter_no_slicing_checkrU      sx    	twwm	;B*r*A-"-A::	aV$A==rQ   c                  X    t        j                         } t        |        t        |        y N)r   EvalFormatterrK   rU   rH   s    r   test_eval_formatterrZ      s     A#A&rQ   c                  X    t        j                         } t        |        t        |        y rW   )r   FullEvalFormatterrK   rP   rY   s    r   test_full_eval_formatterr]      s      A #rQ   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   r9   rM   12z12/helloz12 $HOMEz${foo}HOME)fooz$HOME)z$n)z$n.real)z$n/{stuff[:5]})z	$n $$HOME)	r   DollarFormatterrK   rP   rB   rC   r;   r=   r1   rO   s      r   test_dollar_formatterrc      s    A #	twwm	;BA99!b!A99(R(A
??##A
??	v&A<<rQ   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_emailrj      s+    C
C
 ""3'3...rQ   c                  @    d} d}t        j                  |       |k(  sJ y )Nz> > > list()zlist()re   rg   s     r   test_strip_email2rl      s%    
C
C""3'3...rQ   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
defr,   defzabc defr   )	r   LSStringr   rJ   r=   getcwd
isinstancepr   )lsss    r   test_LSStringrt      sd    
--

#C55UEN"""55I
--		
$CceeAh%%%rQ   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 )NrT   )
startswith)r   s    r   <lambda>ztest_SList.<locals>.<lambda>   s    Q\\#. rQ   rv   rx   r   )rT   r?   rT   r6   T)fieldnums)rw   rx   rv   )r   SListr:   rJ   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LrQ   )__doc__r=   rC   r    pathlibr   rE   IPython.utilsr   r   r*   markparametrizer3   r7   rK   rP   rU   rZ   r]   rc   rj   rl   rt   r    rQ   r   <module>r      s    " 
     1B( tUm4M 5M tUm4M 5M6,	8
'
$
$//&MrQ   