a
    bs                     @   sp   d Z ddlmZ ddlmZ ddlmZ ddlmZ g dZ	g d	Z
G d
d deZedkrlddlZe  dS )z+
Uses TreeFragment to test invalid syntax.
    )absolute_import   )
CythonTest   )CompileError)	ExprNodes)Z0_0_0Z4_2Z1_0000_0000Z0b1001_0100Z0xffff_ffffZ0o5_7_7z	1_00_00.5z
1_00_00.5jz1_00_00.5e5Z1_00_00jZ1_00_00e5_1Z1e1_0z.1_4z.1_4e1z.1_4j)&Z0_Z42_z1.4j_Z0b1_Z0xf_Z0o5_Z0_b0Z0_xfZ0_o5Z0b_0Z0x_fZ0o_5z0 if 1_Else 1z1_.4z1_.4jz1._4z1._4jz._5z1.0e+_1Z	4_______2z0.1__4Z0b1001__0100Z0xffff__ffffZ0o5__77Z1e1__0z1.4_jz1.4e5_jZ1_e1z1.4_e1Z1e_1z1.4e_1z1_ 2z1 _2z1_2.2_ 1z1_2.2 _1z1_2e _1z1_2e2 _1z1_2e 2_1c                   @   s   e Zd Zdd Zdd ZdS )TestGrammarc                 C   s   t D ]}dD ]~}d||  }z| d|  W nJ tyx } z2|dd t| D v sdJ t|W Y d }~qd }~0 0 dsJ d| qqd S )Nz%sz1 + %sz%s + 1z2 * %sz%s * 2x = C                    # cython: language_level=3
                    c                 S   s   g | ]}|  qS  )strip).0sr   r   q/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/Cython/Compiler/Tests/TestGrammar.py
<listcomp>f       z<TestGrammar.test_invalid_number_literals.<locals>.<listcomp>Fz5Invalid Cython code '%s' failed to raise an exception)INVALID_UNDERSCORE_LITERALSfragmentr   str
splitlines)selfliteral
expressioncodeexcr   r   r   test_invalid_number_literals]   s    
<z(TestGrammar.test_invalid_number_literalsc                 C   s   t D ]}tg dD ]\}}d||  }| d| j}|d usDJ |jd j}|dkrl|d rf|jn|j}d|v s|d|v rt|t	j
sJ qd|v sd	|v sd
|v rd|v sd|v st|t	jsJ qt|t	jsJ qqd S )Nr	   r
   r   r   r   jJ.eE0x0X)VALID_UNDERSCORE_LITERALS	enumerater   rootstatsrhsZoperand2Zoperand1
isinstancer   ZImagNodeZ	FloatNodeZIntNode)r   r   ir   r   nodeZliteral_noder   r   r   test_valid_number_literalsj   s    (z&TestGrammar.test_valid_number_literalsN)__name__
__module____qualname__r   r,   r   r   r   r   r   [   s   r   __main__N)__doc__
__future__r   Z	TestUtilsr   ZErrorsr    r   r$   r   r   r-   Zunittestmainr   r   r   r   <module>   s   9$