o
    ZhN                  	   @   s   d Z ddlZddlmZm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ejdeeeddeedd dgd dgd  dd ZdS )zTests for tokenutil    N)token_at_cursorline_at_cursorc                 C   s   t ||}d}| D ]}|t| |kr n	|t|d 7 }q|| }d|d | ||d  f }|| ks@J d| |||f d S )Nr      z%s|%sz#Expected %r, got %r in: %r (pos %i))r   
splitlineslen)expectedcell
cursor_postokenoffsetlinecolumnZline_with_cursor r   Y/var/www/html/lang_env/lib/python3.10/site-packages/IPython/utils/tests/test_tokenutil.pyexpect_token	   s   
r   c                  C   s&   d} t t| D ]}td| | qd S )Nfoo)ranger   r   )r   ir   r   r   test_simple   s   r   c                  C   s   d} d}t | dd D ]}td| | q| dd | dd fD ]}td| | q$t | d| dD ]}td| | q8d S )Nzfoo(a=5, b='10')r   a=r   =,zb=)r   findr   rfind)r   r   r   r   r   r   test_function    s    r   c                  C   s~   d ddg} d}| |d }t||t| D ]}t|| | qd}| |d }t||t| D ]}t|| | q4d S )N
za = 5b = hello("string", there)hellor   joinindexr   r   r   r   r   startr   r   r   r   test_multiline-   s   r#   c                  C   s~   d g d} d}| |d }t||t| D ]}t|| | qd}| |d }t||t| D ]}t|| | q4d S )Nr   )z"""

xxxxxxxxxx

"""z5, """	docstringzmultiline tokenz""", [z2, 3, "complicated"]r   r   r   r   r!   r   r   r   test_multiline_token;   s   	r%   c                  C   s   d} d}|  dd }t||d D ]}t|| | qd}|  d}t||d D ]}t|| | q)d}|  dd }t|t| d D ]}t|| | qDd S )Nzfoo(bar(a=5), b=10)r   barr      r   ))r    r   r   r   r!   r   r   r   test_nested_callN   s   
r)   c                  C   s   d} d}|  dd }t||d D ]}t|| | q|  dd }d}t||d D ]}t|| | q+|  d	d }d
}t|t| D ]}t|| | qDd S )Nza = obj.attr.subattrobjr   r'   z.attr   zobj.attr   z.subattrzobj.attr.subattr)r   r   r   r   )r   r   idxr   r   r   r   
test_attrs]   s   r.   c                  C   s   d} t | dd\}}|dksJ |dksJ d} t | dd\}}|dks&J |dks,J d} t | d	d\}}|d
ks<J |dksBJ d S )N    )r	   r   zOne
Two
r,   zTwo
zpri
pri   pri)r   )r   r   r   r   r   r   test_line_at_cursorl   s   r3   zc, token         int   mapc                 C   s   d}t |||  d S )Nza = (1,
    3)

int()
map()
)r   )cr
   r   r   r   r   test_multiline_statement   s   r;   )__doc__ZpytestZIPython.utils.tokenutilr   r   r   r   r   r#   r%   r)   r.   r3   markZparametrizeziplistr   r;   r   r   r   r   <module>   s&    