
    ^hN                         S r SSKrSSKJrJr  S rS rS rS rS r	S	 r
S
 rS r\R                  R                  S\" \" \" SS5      5      \" \" SS5      5      -   S/S-  S/S-  -   5      5      S 5       rg)zTests for tokenutil    N)token_at_cursorline_at_cursorc                     [        X5      nSnUR                  5        H(  nU[        U5      -   U:  a    OU[        U5      S-   -  nM*     X$-
  nWS U < SXVS  < 3nX0:X  d   SU UUU4-  5       eg )Nr      |z#Expected %r, got %r in: %r (pos %i))r   
splitlineslen)expectedcell
cursor_postokenoffsetlinecolumnline_with_cursors           \/home/james-whalen/.local/lib/python3.13/site-packages/IPython/utils/tests/test_tokenutil.pyexpect_tokenr   	   s    D-EF!CI+c$ik!F	 "
  F"&w-g? C	G      c                  V    Sn [        [        U 5      5       H  n[        SX5        M     g )Nfoo)ranger	   r   )r   is     r   test_simpler      s$    D3t9UD$ r   c                  \   Sn Sn[        U R                  S5      S-   5       H  n[        SX5        M     U R                  S5      S-   U R                  S5      S-   4 H  n[        SX5        M     [        U R                  S5      U R                  S5      5       H  n[        SX5        M     g )Nzfoo(a=5, b='10')r   a=r   =,zb=)r   findr   rfind)r   r
   r   s      r   test_functionr        s    DH499T?Q&'UD$ ( iinq $**S/A"56UD$ 7 499S>499T?3UD$ 4r   c                  *   SR                  SS/5      n SnU R                  U5      S-   n[        X"[        U5      -   5       H  n[	        XU5        M     SnU R                  U5      S-   n[        X"[        U5      -   5       H  n[	        XU5        M     g )N
za = 5b = hello("string", there)hellor   joinindexr   r	   r   r   r
   startr   s       r   test_multiliner*   -   s    99$ D HJJx 1$E5#h-/0XQ' 1HJJx 1$E5#h-/0XQ' 1r   c                  *   SR                  / SQ5      n SnU R                  U5      S-   n[        X"[        U5      -   5       H  n[	        XU5        M     SnU R                  U5      S-   n[        X"[        U5      -   5       H  n[	        XU5        M     g )Nr"   )z"""

xxxxxxxxxx

"""z5, """	docstringzmultiline tokenz""", [z2, 3, "complicated"]r#   r$   r   r%   r(   s       r   test_multiline_tokenr-   ;   s    99  D HJJx 1$E5#h-/0XQ' 1HJJx 1$E5#h-/0XQ' 1r   c                  `   Sn SnU R                  S5      S-   n[        X"S-   5       H  n[        XU5        M     SnU R                  S5      n[        X"S-   5       H  n[        XU5        M     SnU R                  S5      S-   n[        U[        U 5      S-
  5       H  n[        XU5        M     g )Nzfoo(bar(a=5), b=10)r   barr      r   ))r'   r   r   r	   r(   s       r   test_nested_callr2   N   s     DHJJu!E5!)$XQ' %HJJtE5!)$XQ' %HJJsOaE5#d)A+&XQ' 'r   c                  `   Sn SnU R                  S5      S-   n[        X"S-   5       H  n[        XU5        M     U R                  S5      S-   nSn[        X"S-   5       H  n[        XU5        M     U R                  S	5      S-   nS
n[        U[        U 5      5       H  n[        XU5        M     g )Nza = obj.attr.subattrobjr   r0   z.attr   zobj.attr   z.subattrzobj.attr.subattr)r   r   r   r	   )r   r
   idxr   s       r   
test_attrsr8   ]   s    !DH
))E
Q
C3a XQ' !
))G
q
 CH3a XQ' !
))J
!
#C!H3D	"XQ' #r   c                      Sn [        U SS9u  pUS:X  d   eUS:X  d   eSn [        U SS9u  pUS:X  d   eUS:X  d   eSn [        U S	S9u  pUS
:X  d   eUS:X  d   eg )N    )r   r   zOne
Two
r6   zTwo
zpri
pri   pri)r   )r   r   r   s      r   test_line_at_cursorr>   l   s    D#DR8NT2::Q;; D#DQ7NT7??Q;; D#DQ7NT5==Q;;r   zc, token         int   mapc                      Sn[        XU 5        g )Nza = (1,
    3)

int()
map()
)r   )cr   r   s      r   test_multiline_statementrG      s    D a r   )__doc__pytestIPython.utils.tokenutilr   r   r   r   r    r*   r-   r2   r8   r>   markparametrizeziplistr   rG    r   r   <module>rP      s      C$%
%((&((& U2r]d5R=11	7ug11!!r   