o
    û›hN  ã                	   @   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   úXc:\Users\shubh\Videos\agent\nova\Lib\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&    þþ