U
    -e                     @   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 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)textc                     sj  d  fdddD } t j| dd}|dks0tt j| dd}|d	ksJtt j| d
d}|d	ksdtt j| dd}|dks~tt j| ddd}|dkstt j| ddd}|dkstt j| dd
d}|dkstt j| ddd}|dkstt j| ddd}|dkstt j| ddd}|dks*tt j| d
dd}|d	ksHtt j| ddd}|dksftdS )zBasic columnize tests.   c                    s   g | ]}|  qS  r   .0lsizer   ^/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/IPython/utils/tests/test_text.py
<listcomp>    s     z"test_columnize.<locals>.<listcomp>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   Zspreadz'aaaaa      bbbbb      ccccc      ddddd
   z*aaaaa          ccccc
bbbbb          ddddd
N)r   	columnizeAssertionError)itemsoutr   r	   r   test_columnize   s4    r   c                     s   dD ]} dd t ddD D ]}tdd  fddt |D }dd |D }tj||  d	}td
d |dD }t|}| kst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   A   s     z)test_columnize_random.<locals>.<listcomp>r   r      c                    s   g | ]}t d  qS )r   r   r"   r   r   r   r   C   s     c                 S   s   g | ]}d | qS xr   r   r   r   r   r   D   s     r   c                 S   s   g | ]}t |qS r   )len)r   r&   r   r   r   r   F   s     
z8Columnize displayed something lager than displaywidth : z
longer element : z
displaywidth : z
number of element : z
size of each element : z
row_first=N)ranger    r!   r   r   maxsplitr   )r   ZnitemsZrand_lenr   r   Zlonger_lineZlonger_elementr   r   r   test_columnize_random>   s    
(r,   r   TFc                    sL   d  fdddD }t j|| dd}|d|dg ksHtd	| d
S )z0Test with inputs than shouldn't be wider than 80r   c                    s   g | ]}|  qS r   r   r   r	   r   r   r   V   s     z)test_columnize_medium.<locals>.<listcomp>abcr   r   r(    row_first={0}Nr   r   joinr   formatr   r   r   r   r	   r   test_columnize_mediumR   s    r4   c                    sP   d  fdddD }t j||  d d}|d|dg ksLtd	| d
S )z9Test columnize with inputs longer than the display window   c                    s   g | ]}|  qS r   r   r   r	   r   r   r   _   s     z'test_columnize_long.<locals>.<listcomp>r-      r   r(   r.   r/   Nr0   r3   r   r	   r   test_columnize_long[   s    r7   c                 C   s   t dtjdtddd}| jd|}|dks.t| jddd	 td
dD f|}|dks^t| jd|}|dksvt| jd|}||d kst| jd|}|t|d kst| jd|}||d kst| jd|}t	j
t| jdf| 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   h   s     z(eval_formatter_check.<locals>.<listcomp>r6      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}r;   	{stuff!r}{u}r=   {b}z{dne})r?   )rB   )rC   )rD   )rE   )rF   )dictmathr:   r<   r2   r   r1   r)   reprpytestraises	NameErrorfnssr   r   r   eval_formatter_checkd   s    $rQ   c                 C   s   t dtjdtd}| jd|}|dks*t| jd|}|dksBt| jd|}||d	 d d d
 kshttjt| jdf| d S )Nr   r8   r9   r:   r;   r<    {stuff.split()[:]} z ['hello', 'there']  {stuff.split()[::-1]} z ['there', 'hello'] {stuff[::2]}r;   r   z{n:x})rS   )rT   )rU   )	rG   rH   r:   r<   r2   r   rJ   rK   SyntaxErrorrM   r   r   r   eval_formatter_slicing_checkz   s    rW   c                 C   sd   t dtjdtd}| jd|}|dks*t| jd|}|dksBt| jdd	d
gd}|dks`td S )Nr   r8   rR   {n:x} {pi**2:+f}zc +9.869604{stuff[slice(1,4)]}Zellz{a[:]}r6   r   )az[1, 2])rX   )rY   )rG   rH   r:   r<   r2   r   rM   r   r   r   eval_formatter_no_slicing_check   s    r[   c                  C   s   t  } t|  t|  d S N)r   ZEvalFormatterrQ   r[   rN   r   r   r   test_eval_formatter   s    r^   c                  C   s   t  } t|  t|  d S r\   )r   ZFullEvalFormatterrQ   rW   r]   r   r   r   test_full_eval_formatter   s    r_   c                  C   s   t  } t|  t|  tdtjdtd}| jd|}|dksBt	| jd|}|dksZt	| jd|}|dksrt	| jd|}|d
kst	| jddd}|dkst	d S )Nr   r8   rR   $nZ12$n.real$n/{stuff[:5]}z12/hello	$n $$HOMEz12 $HOMEz${foo}HOME)Zfooz$HOME)r`   )ra   )rb   )rc   )
r   ZDollarFormatterrQ   rW   rG   rH   r:   r<   r2   r   rM   r   r   r   test_dollar_formatter   s    re   c                  C   s   d} d}t | |kst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_quotesr   srcZclnr   r   r   test_strip_email   s    ri   c                  C   s   d} d}t | |kstd S )Nz> > > list()zlist()rf   rg   r   r   r   test_strip_email2   s    rj   c                  C   sP   t d} | jddgkst| jdks*tt t } t| jd t	sLtd S )Nzabc
defr-   defzabc defr   )
r   ZLSStringr   r   rP   r<   getcwd
isinstancepr   )Zlssr   r   r   test_LSString   s
    
ro   c                  C   s   t dddg} | jdkst| jdks,t| dd t ddgksLt| dt d	d
d	gksjt| jdddt dddgkstd S )Nza 11zb 1za 2za 11
b 1
a 2za 11 b 1 a 2c                 S   s
   |  dS )NrZ   )
startswithr%   r   r   r   <lambda>       ztest_SList.<locals>.<lambda>r   rZ   r>   r6   T)fieldnums)r   ZSListr9   r   rP   Zgrepfieldssort)slr   r   r   
test_SList   s     rx   )__doc__r<   rH   r    pathlibr   rJ   ZIPython.utilsr   r   r,   markZparametrizer4   r7   rQ   rW   r[   r^   r_   re   ri   rj   ro   rx   r   r   r   r   <module>   s,   !

