o
    ZhP                     @   s   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	
dddd Zd	d
 Zej	
dddgdd Zej	
dddg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S )&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                    sd   d  fdddD }t t tj||||d}|| ks J W d   dS 1 s+w   Y  dS )zBasic columnize tests.   c                       g | ]}|  qS  r   .0lsizer   T/var/www/html/lang_env/lib/python3.10/site-packages/IPython/utils/tests/test_text.py
<listcomp>n       z"test_columnize.<locals>.<listcomp>abcd)displaywidth	row_firstspreadN)pytestwarnsPendingDeprecationWarningr   	columnize)expectedwidthr   r   itemsoutr   r   r   test_columnize   s   O"r%   c                     s   dD ]o} dd t ddD D ]b}tdd  fddt |D }dd |D }tt tj||  d	}W d
   n1 s@w   Y  tdd |	dD }t|}| kspJ d| d| d  d| d| d|  dqqd
S )z4Test with random input to hopefully catch edge case )TFc                 S   s   g | ]}t d dqS )   F   randomrandintr   ir   r   r   r   y       z)test_columnize_random.<locals>.<listcomp>r&   r      c                    s   g | ]}t d  qS )r&   r(   r+   r   r   r   r   {   r-   c                 S   s   g | ]}d | qS xr   r   r   r   r   r   |   r   r   r   Nc                 S   s   g | ]}t |qS r   )len)r   r1   r   r   r   r      r   
z8Columnize displayed something lager than displaywidth : z
longer element : z
displaywidth : z
number of element : z
size of each element : z
row_first=)
ranger)   r*   r   r   r   r   r    maxsplit)r   ZnitemsZrand_lenr#   r$   Zlonger_lineZlonger_elementr   r/   r   test_columnize_randomv   s6   
r8   r   TFc                    sv   d  fdddD }t t tj|| dd}W d   n1 s#w   Y  |d|d	g ks9J d
| dS )z0Test with inputs than shouldn't be wider than 80r   c                    r   r   r   r   r   r   r   r      r   z)test_columnize_medium.<locals>.<listcomp>abcr   r2   Nr4    row_first={0}r   r   r   r   r    joinformatr   r#   r$   r   r   r   test_columnize_medium   s   &r@   c                    sz   d  fdddD }t t tj||  d d}W d   n1 s%w   Y  |d|d	g ks;J d
| dS )z9Test columnize with inputs longer than the display window   c                    r   r   r   r   r   r   r   r      r   z'test_columnize_long.<locals>.<listcomp>r9      r2   Nr4   r:   r;   r<   r?   r   r   r   test_columnize_long   s   &rC   c                 C   s  t dtjdtddd}| jdi |}|dksJ | jddd	 td
dD fi |}|dks3J | jdi |}|dksAJ | jdi |}||d ksQJ | jdi |}|t|d kscJ | jdi |}||d kssJ | jdi |}tj	t
| jdfi | d S )Nr   hello thereu   café)npistuffosub{n} {n//4} {stuff.split()[0]}z
12 3 hello c                 S   s   g | ]}d | qS )z{n//%i}r   r+   r   r   r   r      r   z(eval_formatter_check.<locals>.<listcomp>rB      z12 6 4 3 2 2 1{[n//i for i in range(1,8)]}z[12, 6, 4, 3, 2, 2, 1]	{stuff!s}rG   	{stuff!r}{u}rI   {b}z{dne})rK   )rN   )rO   )rP   )rQ   )rR   )dictmathrF   rH   r>   r=   r5   reprr   raises	NameErrorfnssr   r   r   eval_formatter_check   s   (r\   c                 C   s   t dtjdtd}| 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 | d S )Nr   rD   rE   rF   rG   rH    {stuff.split()[:]} z ['hello', 'there']  {stuff.split()[::-1]} z ['there', 'hello'] {stuff[::2]}rG   r&   z{n:x})r^   )r_   )r`   )rS   rT   rF   rH   r>   r   rV   SyntaxErrorrX   r   r   r   eval_formatter_slicing_check   s   rb   c                 C   sl   t dtjdtd}| jdi |}|dksJ | jdi |}|dks%J | jdd	d
gd}|dks4J d S )Nr   rD   r]   {n:x} {pi**2:+f}zc +9.869604{stuff[slice(1,4)]}Zellz{a[:]}rB   r&   )az[1, 2])rc   )rd   )rS   rT   rF   rH   r>   rX   r   r   r   eval_formatter_no_slicing_check   s   rf   c                  C      t  } t|  t|  d S N)r   ZEvalFormatterr\   rf   rY   r   r   r   test_eval_formatter      rj   c                  C   rg   rh   )r   ZFullEvalFormatterr\   rb   ri   r   r   r   test_full_eval_formatter   rk   rl   c                  C   s   t  } t|  t|  tdtjdtd}| jdi |}|dks#J | jdi |}|dks1J | jdi |}|dks?J | jdi |}|d
ksMJ | jddd}|dksZJ d S )Nr   rD   r]   $nZ12$n.real$n/{stuff[:5]}z12/hello	$n $$HOMEz12 $HOMEz${foo}HOME)Zfooz$HOME)rm   )rn   )ro   )rp   )	r   ZDollarFormatterr\   rb   rS   rT   rF   rH   r>   rX   r   r   r   test_dollar_formatter   s   rr   c                  C      d} d}t | |ksJ d S )Nz_        >> >>> def f(x):
        >> ...   return x+1
        >> ... 
        >> >>> zz = f(2.5)z3>>> def f(x):
...   return x+1
... 
>>> zz = f(2.5)r   Zstrip_email_quotessrcclnr   r   r   test_strip_email   s   rx   c                  C   rs   )Nz> > > list()zlist()rt   ru   r   r   r   test_strip_email2   s   ry   c                  C   sP   t d} | jddgksJ | jdksJ t t } t| jd ts&J d S )Nzabc
defr9   defzabc defr   )	r   ZLSStringr   r[   rH   getcwd
isinstancepr   )Zlssr   r   r   test_LSString   s
   
r~   c                  C   s   t g d} | jdksJ | jdksJ | dd t ddgks%J | dt g d	ks3J | jd
ddt g dksCJ d S )N)a 11b 1a 2za 11
b 1
a 2za 11 b 1 a 2c                 S   s
   |  dS )Nre   )
startswithr0   r   r   r   <lambda>
  s   
 ztest_SList.<locals>.<lambda>r   r   r   )re   rJ   re   rB   T)fieldnums)r   r   r   )r   ZSListrE   r[   Zgrepfieldssort)slr   r   r   
test_SList  s    $r   )__doc__rH   rT   r)   pathlibr   r   ZIPython.utilsr   markZparametrizer%   r8   r@   rC   r\   rb   rf   rj   rl   rr   rx   ry   r~   r   r   r   r   r   <module>   s6   
M
	
	