o
    û›hP  ã                   @   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   úSc:\Users\shubh\Videos\agent\nova\Lib\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
	
	