U
    pufN  ã                	   @   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r0 qBq|t|ƒd 7 }q|| }d|d |… ||d … f }|| ks‚td| |||f ƒ‚d S )Nr   é   z%s|%sz#Expected %r, got %r in: %r (pos %i))r   Ú
splitlinesÚlenÚAssertionError)ÚexpectedÚcellÚ
cursor_posÚtokenÚoffsetÚlineÚcolumnZline_with_cursor© r   úF/tmp/pip-unpacked-wheel-bxwx4lqe/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| |ƒ qHt |  d¡|  d¡ƒD ]}td| |ƒ qpd 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|| |ƒ q2d}|  |¡d }t||t|ƒ ƒD ]}t|| |ƒ qhd 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  dddddddg¡} d	}|  |¡d
 }t||t|ƒ ƒD ]}t|| |ƒ q<d	}|  |¡d
 }t||t|ƒ ƒD ]}t|| |ƒ qrd S )Nr   z"""

xxxxxxxxxx

"""z5, """Z	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|| |ƒ qRd}|   d¡d }t|t| ƒd ƒD ]}t|| |ƒ qˆd 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|| |ƒ qV|   d	¡d }d
}t|t| ƒƒD ]}t|| |ƒ qˆd 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 t‚|dks,t‚d} t | dd\}}|dksLt‚|dksXt‚d} t | d	d\}}|d
ksxt‚|dks„t‚d S )NÚ é   )r
   r   zOne
Two
r,   zTwo
zpri
prié   Úpri)r   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$   þþ