o
    noi                     @   sT   d dl mZmZ d dlZd dlmZ d dlmZmZ d dl	m
Z
 G dd deZdS )    )AnyCallableN)parse_expression)CSTNodeTestparse_expression_as)data_providerc                   @   s  e Zd Zeeeedgdedejeedgej	e
ddeje
dddd	edeeed
eedgdddejeed
ge ge gddddeeed
eedgdddeedejedeeed
eje
ddeedgejede
ddge
dddedgdeddfddZedd dfdd dffd eg ejf d!eddfd"d#Zed$ed%d&d'd(d$ed)d&d*d(fdeddfd+d,ZdS )-ListTestsingle_elementz{single_element})nodecodeparser	)whitespace_afterz    )whitespace_before)lbracerbracez{	single_element    }onetwoz
{one, two}Nlparrparz({one})z{*one, *two}elt test )targetiterifswhitespace_after_inz!(elt for elt in{one, two}if test)kwargsreturnc                 K   s   | j di | d S )N )validate_nodeselfr   r!   r!   P/home/ubuntu/.local/lib/python3.10/site-packages/libcst/_nodes/tests/test_set.py
test_valid   s   SzListTest.test_validc                   C   s0   t jt t dgt  t  gt  gdS )N
mismatchedr   )cstSetElementName	LeftParen
RightParenr!   r!   r!   r%   <lambda>i   s
    zListTest.<lambda>zunbalanced parensc                   C   s
   t g S N)r(   r)   r!   r!   r!   r%   r.   p   s   
 zat least one elementget_nodeexpected_rec                 C   s   |  || d S r/   )assert_invalid)r$   r0   r1   r!   r!   r%   test_invalidf   s   zListTest.test_invalidz{*x, 2}z3.5)python_versionT)r   r   expect_successz3.3Fc                 K   s*   | dds| d | jdi | d S )Nr5   Tz+parse errors are disabled for native parserr!   )getskipTestassert_parsesr#   r!   r!   r%   test_versionsx   s   
zListTest.test_versions)__name__
__module____qualname__r   r(   r)   r*   r+   r   LeftCurlyBraceSimpleWhitespaceRightCurlyBracer,   r-   StarredElementGeneratorExpCompForCommaCompIfr   r&   r   CSTNodestrr3   r   r9   r!   r!   r!   r%   r      s    		R
r   )typingr   r   libcstr(   r   libcst._nodes.tests.baser   r   libcst.testing.utilsr   r   r!   r!   r!   r%   <module>   s   