
    `N`                         d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ  G d	 d
ej                  Z G d dej                  Zd Zd Zedk    r ej                     dS dS )zTests for yapf.unwrapped_line.    N)pytree)token)format_token)split_penalty)unwrapped_line)yapf_test_helperc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )UnwrappedLineBasicTestc                    t          t          j        dft          j        dfg          }t	          j        d|          }|                     d|j                   |                     ddgd |j        D                        d S )N.|   DOTVBARc                     g | ]	}|j         
S  name.0toks     =lib/python3.11/site-packages/yapftests/unwrapped_line_test.py
<listcomp>z;UnwrappedLineBasicTest.testConstruction.<locals>.<listcomp>#   s    &F&F&FCsx&F&F&F    )	_MakeFormatTokenListr   r   r   r   UnwrappedLineassertEqualdepthtokensselftoksuwls      r   testConstructionz'UnwrappedLineBasicTest.testConstruction   s}    %)S!1EJ3D EFFD

&r4
0
0CR###eV_&F&F3:&F&F&FGGGGGr   c                 R   t          t          j        dft          j        dft          j        dfg          }t          j        d|          }|                     d|j                   |                     d|j	        j
                   |                     d|j        j
                   d S )Nr   (r   r   r   r   )r   r   r   LPARr   r   r   r   r   firstr   lastr    s      r   testFirstLastz$UnwrappedLineBasicTest.testFirstLast%   s    %)S!1EJ3D"'*c!2!4 5 5D

&r4
0
0CR###UCIN+++VSX]+++++r   c                     t          t          j        dft          j        dft          j        dfg          }t          j        d|          }|                     d|                                           d S )Nr   r&   r      z	    . ( |)	r   r   r   r'   r   r   r   r   AsCoder    s      r   
testAsCodez!UnwrappedLineBasicTest.testAsCode-   sh    %)S!1EJ3D"'*c!2!4 5 5D

&q$
/
/C[#**,,/////r   c                 0   t          j        d          }|                    t          t          j        d                     |                    t          t          j        d                     |                     ddgd |j        D                        d S )Nr   r&   )r'   RPARc                     g | ]	}|j         
S r   r   r   s     r   r   z:UnwrappedLineBasicTest.testAppendToken.<locals>.<listcomp>7       'G'G'GS'G'G'Gr   )	r   r   AppendToken_MakeFormatTokenLeafr   r'   r1   r   r   r!   r#   s     r   testAppendTokenz&UnwrappedLineBasicTest.testAppendToken3   s    

&q
)
)COO(S99:::OO(S99:::ff%'G'GCJ'G'G'GHHHHHr   c                 D   t          j        d          }|                    t          j        t
          j        d                     |                    t          j        t
          j        d                     |                     ddgd |j	        D                        d S )Nr   r&   r0   r'   r1   c                     g | ]	}|j         
S r   r   r   s     r   r   z9UnwrappedLineBasicTest.testAppendNode.<locals>.<listcomp>=   r3   r   )
r   r   
AppendNoder   Leafr   r'   r1   r   r   r6   s     r   testAppendNodez%UnwrappedLineBasicTest.testAppendNode9   s    

&q
)
)CNN6;uz3//000NN6;uz3//000ff%'G'GCJ'G'G'GHHHHHr   N)__name__
__module____qualname__r$   r*   r.   r7   r<   r   r   r   r
   r
      sj        H H H, , ,0 0 0I I II I I I Ir   r
   c                       e Zd Zd ZdS )&UnwrappedLineFormattingInformationTestc                    t          j        d          }t          j        |          }|d         j        d         }|                     |j                   |                     |j                   |                     |j	        t          j
                   |d         j        d         }|                     |j                   |                     |j                   |                     |j	        t          j
                   d S )Nz-
        def f(a, b):
          pass
        r      r,   )textwrapdedentr   ParseAndUnwrapr   assertFalsecan_break_beforemust_break_beforer   r   UNBREAKABLE)r!   codeuwlinesflparens        r   testFuncDefz2UnwrappedLineFormattingInformationTest.testFuncDefB   s    ?   D -d33G
!AQ'(((Q()))Q_m&?@@@QZq!FV,---V-...V)=+DEEEEEr   N)r=   r>   r?   rO   r   r   r   rA   rA   @   s(        F F F F Fr   rA   c                 P    t          j        t          j        | |                    S )N)r   FormatTokenr   r;   )
token_typetoken_values     r   r5   r5   T   s    		!&+j+"F"F	G	GGr   c                     d | D             S )Nc                 4    g | ]\  }}t          ||          S r   )r5   )r   rR   rS   s      r   r   z(_MakeFormatTokenList.<locals>.<listcomp>Y   s6     
 
 

!*k :{33
 
 
r   r   )token_type_valuess    r   r   r   X   s#    
 
%6
 
 
 r   __main__)__doc__rD   unittestlib2to3r   lib2to3.pgen2r   yapf.yapflibr   r   r   	yapftestsr   TestCaser
   YAPFTestrA   r5   r   r=   mainr   r   r   <module>ra      s>   % $               % % % % % % & & & & & & ' ' ' ' ' ' & & & & & & I  I  I  I  IX.  I  I  IFF F F F F-=-F F F F(H H H   z(-///// r   