U
    {±ËhÇ  ã                   @   s8   d dl mZ G dd„ deƒZedkr4d dlZe ¡  dS )é    )Ú
CythonTestc                   @   sŒ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!S )"ÚTestCodeWriterc                 C   s   |   ||  |¡j¡ d S )N)Z
assertCodeÚfragmentÚroot)ÚselfZcodestr© r   ú?/tmp/pip-unpacked-wheel-fhl22ezh/Cython/Tests/TestCodeWriter.pyÚt   s    zTestCodeWriter.tc                 C   s   |   d¡ d S )Nz’
                    print(x + y ** 2)
                    print(x, y, z)
                    print(x + y, x + y * z, x * (y + z))
               ©r	   ©r   r   r   r   Ú
test_print   s    zTestCodeWriter.test_printc                 C   s   |   d¡ d S )Nzif x:
    passr
   r   r   r   r   Útest_if   s    zTestCodeWriter.test_ifc                 C   s   |   d¡ d S )Na   
                    if x:
                        pass
                    elif y:
                        pass
                    elif z + 34 ** 34 - 2:
                        pass
                    else:
                        pass
                r
   r   r   r   r   Útest_ifelifelse   s    zTestCodeWriter.test_ifelifelsec                 C   s   |   d¡ d S )Nzœ
                    def f(x, y, z):
                        pass
                    def f(x = 34, y = 54, z):
                        pass
               r
   r   r   r   r   Útest_def*   s    zTestCodeWriter.test_defc                 C   s   |   d¡ d S )Na¦  
                    cdef f(x, y, z):
                        pass
                    cdef public void (x = 34, y = 54, z):
                        pass
                    cdef f(int *x, void *y, Value *z):
                        pass
                    cdef f(int **x, void **y, Value **z):
                        pass
                    cdef inline f(int &x, Value &z):
                        pass
               r
   r   r   r   r   Ú	test_cdef2   s    zTestCodeWriter.test_cdefc                 C   s   |   d¡ d S )Nz8def f(unsigned long long long long long int y):
    passr
   r   r   r   r   Útest_longness_and_signedness@   s    z+TestCodeWriter.test_longness_and_signednessc                 C   s   |   d¡ d S )Nz#def f(signed short int y):
    passr
   r   r   r   r   Útest_signed_shortC   s    z TestCodeWriter.test_signed_shortc                 C   s   |   d¡ d S )Nz+def f(int x, unsigned long int y):
    passr
   r   r   r   r   Útest_typed_argsF   s    zTestCodeWriter.test_typed_argsc                 C   s   |   d¡ d S )Nzh
                    cdef int hello
                    cdef int hello = 4, x = 3, y, z
                r
   r   r   r   r   Útest_cdef_varI   s    zTestCodeWriter.test_cdef_varc                 C   s   |   d¡ |   d¡ d S )Nz­
                    for x, y, z in f(g(h(34) * 2) + 23):
                        print(x, y, z)
                    else:
                        print(43)
                zž
                    for abc in (1, 2, 3):
                        print(x, y, z)
                    else:
                        print(43)
                r
   r   r   r   r   Útest_for_loopO   s    
zTestCodeWriter.test_for_loopc                 C   s   |   d¡ d S )Nz¦
                    while True:
                        while True:
                            while True:
                                continue
                r
   r   r   r   r   Útest_while_loop]   s    zTestCodeWriter.test_while_loopc                 C   s   |   d¡ d S )Nzx += 43r
   r   r   r   r   Útest_inplace_assignmente   s    z&TestCodeWriter.test_inplace_assignmentc                 C   s   |   d¡ d S )Nzx = y = z = abc = 43r
   r   r   r   r   Útest_cascaded_assignmenth   s    z'TestCodeWriter.test_cascaded_assignmentc                 C   s   |   d¡ d S )Nza.xr
   r   r   r   r   Útest_attributek   s    zTestCodeWriter.test_attributec                 C   s   |   d¡ d S )Na¹  
                    def f(x, y, z):
                        return
                    cdef f(x, y, z):
                        return
                    def f(x, y, z):
                        return None
                    cdef f(x, y, z):
                        return None
                    def f(x, y, z):
                        return 1234
                    cdef f(x, y, z):
                        return 1234
               r
   r   r   r   r   Útest_return_nonen   s    zTestCodeWriter.test_return_noneN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    r   Ú__main__N)ZCython.TestUtilsr   r   r   ZunittestÚmainr   r   r   r   Ú<module>   s   {