
    &eP                     d   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             Zd Zej	        
                    d	d
dg          d             Ze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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                     dfddD             }t          j        t                    5  t          j        ||||          }|| k    sJ 	 ddd           dS # 1 swxY w Y   dS )zBasic columnize tests.   c                     g | ]}|z  S  r   .0lsizes     =lib/python3.11/site-packages/IPython/utils/tests/test_text.py
<listcomp>z"test_columnize.<locals>.<listcomp>n   s    $$$QtV$$$    abcd)displaywidth	row_firstspreadN)pytestwarnsPendingDeprecationWarningr   	columnize)expectedwidthr   r   itemsoutr   s         @r   test_columnizer&      s    ^ D$$$$V$$$E	/	0	0  n6
 
 
 h	                 s   !AA!Ac                     dD ]} d t          dd          D             D ]}t          j        dd          fdt          |          D             }d |D             }t          j        t
                    5  t          j        ||           }d	d	d	           n# 1 swxY w Y   t          d
 |	                    d          D                       }t          |          }|k    sJ d| d| d d| d| d|  d            d	S )z4Test with random input to hopefully catch edge case )TFc                 8    g | ]}t          j        d d          S )   F   randomrandintr   is     r   r   z)test_columnize_random.<locals>.<listcomp>y   s$    AAAv~a++AAAr   r)   r      c                 :    g | ]}t          j        d           S )r)   r+   )r   r/   r   s     r   r   z)test_columnize_random.<locals>.<listcomp>{   s%    NNN1q66NNNr   c                     g | ]}d |z  S xr   )r   r   s     r   r   z)test_columnize_random.<locals>.<listcomp>|   s    ---qSU---r   r   r   Nc                 ,    g | ]}t          |          S r   )len)r   r4   s     r   r   z)test_columnize_random.<locals>.<listcomp>   s    ???!s1vv???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   nitemsrand_lenr$   r%   longer_linelonger_elementr   s          @r   test_columnize_randomr@   v   s   "  	AAU1R[[AAA 	 	F!>"S11LNNNNfNNNH--H---E788  nY\                 ??syy???@@K ]]N,...+; + +$2+ +".+ + (.+ + +3	+ +
 '+ + + /...	 s   8BB #B r   TFc                 ,   dfddD             }t          j        t                    5  t          j        || d          }ddd           n# 1 swxY w Y   |d                    |dgz             k    sJ d	                    |                       dS )
z0Test with inputs than shouldn't be wider than 80r   c                     g | ]}|z  S r   r   r   s     r   r   z)test_columnize_medium.<locals>.<listcomp>       ###QtV###r   abcr   r5   Nr8    row_first={0}r   r   r    r   r!   joinformatr   r$   r%   r   s      @r   test_columnize_mediumrK      s     D####U###E	/	0	0 J JnUibIIIJ J J J J J J J J J J J J J J$))ERDL)))))?+A+A)+L+L)))))s   AAAc                 2   dfddD             }t          j        t                    5  t          j        || dz
            }ddd           n# 1 swxY w Y   |d                    |dgz             k    sJ d	                    |                       dS )
z9Test columnize with inputs longer than the display window   c                     g | ]}|z  S r   r   r   s     r   r   z'test_columnize_long.<locals>.<listcomp>   rC   r   rD      r5   Nr8   rE   rF   rG   rJ   s      @r   test_columnize_longrP      s     D####U###E	/	0	0 P PnUidQhOOOP P P P P P P P P P P P P P P$))ERDL)))))?+A+A)+L+L)))))s   AAAc           	      6   t          dt          j        dt          dd          } | j        di |}|dk    sJ  | j        d                    d t          d	d
          D                       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 | d S )Nr	   hello thereu   café)npistuffosub{n} {n//4} {stuff.split()[0]}z
12 3 hello c                     g | ]}d |z  S )z{n//%i}r   r.   s     r   r   z(eval_formatter_check.<locals>.<listcomp>   s    >>>Q9q=>>>r   rO      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}rU   	{stuff!r}{u}rW   {b}z{dne})rY   )r]   )r^   )r_   )r`   )ra   )dictmathrT   rV   rI   rH   r9   reprr   raises	NameErrorfnsss      r   eval_formatter_checkrk      s   	twmh'	R	R	RB77B77A>>%1++>>>??FF2FFA     66266A(((((####A7####AR[!!!!!! 	"A3<<<<"A
M)QXw55"55555r   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 | d S )Nr	   rR   rS   rT   rU   rV    {stuff.split()[:]} z ['hello', 'there']  {stuff.split()[::-1]} z ['there', 'hello'] {stuff[::2]}rU   r)   z{n:x})rn   )ro   )rp   )rb   rc   rT   rV   rI   r   re   SyntaxErrorrg   s      r   eval_formatter_slicing_checkrr      s    	twm	;	;	;B..2..A&&&&&11b11A&&&&&&&2&&A7CCaC     
M+qx77B77777r   c                     t          dt          j        dt                    } | j        di |}|dk    sJ  | j        di |}|dk    sJ |                     dd	d
g          }|dk    sJ d S )Nr	   rR   rm   {n:x} {pi**2:+f}zc +9.869604{stuff[slice(1,4)]}ellz{a[:]}rO   r)   )az[1, 2])rt   )ru   )rb   rc   rT   rV   rI   rg   s      r   eval_formatter_no_slicing_checkrx      s    	twm	;	;	;B**r**A--"--A::::	aV$$A======r   c                  h    t          j                    } t          |            t          |            d S N)r   EvalFormatterrk   rx   rh   s    r   test_eval_formatterr}      s2    A#A&&&&&r   c                  h    t          j                    } t          |            t          |            d S rz   )r   FullEvalFormatterrk   rr   r|   s    r   test_full_eval_formatterr      s2      A #####r   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 |                     dd          }|dk    sJ d S )Nr	   rR   rm   $n12$n.real$n/{stuff[:5]}z12/hello	$n $$HOMEz12 $HOMEz${foo}HOME)fooz$HOME)r   )r   )r   )r   )	r   DollarFormatterrk   rr   rb   rc   rT   rV   rI   rg   s      r   test_dollar_formatterr      s    A ###	twm	;	;	;BA9999!!b!!A9999((R((A
????####A
????	v&&A<<<<<<r   c                  B    d} d}t          j        |           |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   strip_email_quotessrcclns     r   test_strip_emailr      s4    C
C
 "3''3......r   c                  B    d} d}t          j        |           |k    sJ d S )Nz> > > list()zlist()r   r   s     r   test_strip_email2r      s.    
C
C"3''3......r   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 d S )Nzabc
defrD   defzabc defr   )	r   LSStringr   rj   rV   getcwd
isinstancepr   )lsss    r   test_LSStringr      sr    
-

#
#C5UEN""""5I
-	
$
$CceAh%%%%%%%r   c                     t          j        g d          } | j        dk    sJ | j        dk    sJ |                     d           t          j        ddg          k    sJ |                     d          t          j        g d          k    sJ |                     d	d
          t          j        g d          k    sJ d S )N)a 11b 1a 2za 11
b 1
a 2za 11 b 1 a 2c                 ,    |                      d          S )Nrw   )
startswithr3   s    r   <lambda>ztest_SList.<locals>.<lambda>
  s    Q\\#.. r   r   r   r   )rw   rX   rw   rO   T)fieldnums)r   r   r   )r   SListrS   rj   grepfieldssort)sls    r   
test_SListr     s    	***	+	+B4#####4>!!!!77..//4:vuo3N3NNNNN99Q<<4:ooo666666777&&$*5K5K5K*L*LLLLLLLr   )__doc__rV   rc   r,   pathlibr   r   IPython.utilsr   markparametrizer&   r@   rK   rP   rk   rr   rx   r}   r   r   r   r   r   r   r   r   r   <module>r      s   " " 
			                (IL LZ [L LZ  . tUm44M M 54M tUm44M M 54M6 6 6,	8 	8 	8
 
 
' ' '
$ $ $
  $/ / // / /& & &M M M M Mr   