o
    j                     @   s   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 g dZ	g d	Z
g d
ZG dd deZedkr>ddlZe  dS dS )z+
Uses TreeFragment to test invalid syntax.
    N   )
CythonTest   )	ExprNodes)CompileError)Z0_0_0Z4_2Z1_0000_0000Z0b1001_0100Z0xffff_ffffZ0o5_7_7z	1_00_00.5
1_00_00.5jz1_00_00.5e51_00_00jZ1_00_00e5_1Z1e1_0z.1_4z.1_4e1Z0b_0Z0x_fZ0o_5r   r   Z1_00_00e5_1jz.1_4jz(1_2.5+3_3j)z(.5_6j))/Z0_Z42_z1.4j_Z0x_Z0b1_Z0xf_Z0o5_z0 if 1_Else 1Z0_b0Z0_xfZ0_o5Z0_7Z09_99Z	4_______2z0.1__4z0.1__4jZ0b1001__0100Z0xffff__ffffZ0x___Z0o5__77Z1e1__0Z1e1__0jz1_.4z1_.4jz1._4z1._4jz._5z._5jz1.0e+_1z1.0e+_1jz1.4_jz1.4e5_jZ1_e1z1.4_e1z1.4_e1jZ1e_1z1.4e_1z1.4e_1jz
(1+1.5_j_)z	(1+1.5_j)z1_ 2z1 _2z1_2.2_ 1z1_2.2 _1z1_2e _1z1_2e2 _1z1_2e 2_1)
)z. . .r   r   )z. ..r   r   )z.. .r   r   )z. ...r   r   )z. ... .r   r   )z.. ... .r   r   )z. ... ..r   r   )z&
    (
        .
        ..
    )
    r      )z4
    [
        ..
        .,
        None
    ]
    r   r	   )z>
    {
        None,
        .
        .

        .
    }
    r	   r	   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestGrammarc                 C   s   t D ]A}dD ]<}d||  }z	| d|  W n% ty< } z|dd t| D v s2J t|W Y d }~qd }~ww J d| 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   b/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/Cython/Compiler/Tests/TestGrammar.py
<listcomp>   s    z<TestGrammar.test_invalid_number_literals.<locals>.<listcomp>F5Invalid 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   
2z(TestGrammar.test_invalid_number_literalsc                 C   s  t D ]}tg dD ]\}}d||  }| d| j}|d us"J |jd j}|dkr6|d r3|jn|j}d|v s>d|v r\d|v rOt|t	j
sNJ ||fq
t|t	js[J ||fq
d	|v spd
|v spd|v r}d|v s}d|v s}t|t	js|J ||fq
t|t	jsJ ||f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AddNodeZImagNodeZ	FloatNodeZIntNode)r   r   ir   r   nodeZliteral_noder   r   r   test_valid_number_literals   s*   (z&TestGrammar.test_valid_number_literalsc                 C   s   d}t D ]Z\}}}z
tt| W n ty& } z	 W Y d }~nd }~ww J d| z	| d|  W n" tyX } z|||t	|v sNJ t	|W Y d }~qd }~ww J d| d S )Nz+:{0}:{1}: Expected an identifier or literalTFz5Invalid Python code '%s' failed to raise an exceptionz;                # cython: language_level=3
                r   )
INVALID_ELLIPSISastparsetextwrapdedentSyntaxErrorr   r   formatr   )r   ZERRr   linecolr   r   r   r   test_invalid_ellipsis   s&   
,z!TestGrammar.test_invalid_ellipsisN)__name__
__module____qualname__r   r/   r9   r   r   r   r   r
      s    r
   __main__)__doc__r1   r3   Z	TestUtilsr    r   ZErrorsr   r'   r   r0   r
   r:   Zunittestmainr   r   r   r   <module>   s   @!;