o
    noi                     @   sX   d dl m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
 G dd deZdS )	    )AnyN)parse_expression)CSTNodeTest)	CodeRange)data_providerc                   @   s  e Zd Zeeede edde	ddeede
 edde	ddeede edde	ddeede edd	e	ddeede ed
de	ddeede ed
de	ddeede ed
de	ddeede edde	ddeede edde	ddeede edde	ddeede edde	ddeede edde	ddeje fede ede fdde	ddejejeddfedejededded
ejeddfdde	edddfdeddfdd Zed!d" d#d$d%d" d&d$fdeddfd'd(Zed)d* e	d+d,d-d*  d. e	d+fdeddfd/d0ZdS )1BinaryOperationTestfooz5.5z	foo + 5.5N)nodecodeparserexpected_positionz	foo - 5.55zfoo << 5zfoo >> 5barz	foo & barz	foo ^ barz	foo | barz	foo * 5.5z	foo @ 5.5z	foo / 5.5z	foo % 5.5z
foo // 5.5)lparleftoperatorrightrparz
(foo << 5) )whitespace_afterz  )whitespace_beforer   )r   z( foo  *  bar ))      )r      kwargsreturnc                 K      | j di | d S N )validate_nodeselfr   r   r   V/home/ubuntu/.local/lib/python3.10/site-packages/libcst/_nodes/tests/test_binary_op.py
test_valid   s    zBinaryOperationTest.test_validc                   C   (   t jt dt  t dt  fdS )Nr   r   )r   )cstBinaryOperationNameAdd	LeftParenr   r   r   r"   <lambda>       zBinaryOperationTest.<lambda>zleft paren without right paren)get_nodeexpected_rec                   C   r$   )Nr   r   )r   )r%   r&   r'   r(   
RightParenr   r   r   r"   r*      r+   zright paren without left parenc                 K   r   r   )assert_invalidr    r   r   r"   test_invalid   s   z BinaryOperationTest.test_invalidz"a"ip  )r
   r   z[_z for _ in _]c                 K   s   | j di |ddi d S )Nexpect_successFr   )assert_parsesr    r   r   r"   test_parse_error   s   z$BinaryOperationTest.test_parse_error)__name__
__module____qualname__r   r%   r&   r'   r(   Floatr   Subtract	LeftShiftInteger
RightShiftBitAndBitXorBitOrMultiplyMatrixMultiplyDivideModuloFloorDivider)   r.   SimpleWhitespacer   r   r#   r0   r4   r   r   r   r"   r      s   											

 r   )typingr   libcstr%   r   libcst._nodes.tests.baser   libcst.metadatar   libcst.testing.utilsr   r   r   r   r   r"   <module>   s   