
    X-Ph                        d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZmZ d dlmZ  G d d	ej                  ZdS )
    )annotationsNassert_string_arrays_equal)EmitterEmitterContextReturnHandler)generate_arg_check)int_rprimitivelist_rprimitive)NameGeneratorc                  .    e Zd ZddZddZddZdd	Zd
S )TestArgCheckreturnNonec                L    t          t          dgg                    | _        d S )Nmod)r   r   context)selfs    [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mypyc/test/test_emitwrapper.pysetUpzTestArgCheck.setUp   s!    %meWI&>&>??    c                    t          | j                  }t          dt          |t	          d                     |j        }|                     g d|           d S )NxNULL)zPyObject *arg_x;z if (likely(PyList_Check(obj_x)))z    arg_x = obj_x;else {z!    CPy_TypeError("list", obj_x);z    return NULL;})r   r   r	   r   r   	fragmentsassert_linesr   emitterliness      r   test_check_listzTestArgCheck.test_check_list   sk    $,''3-:O:OPPP!   	
 	
 	
 	
 	
r   c                    t          | j                  }t          dt          |t	          d                     t          dt          |t	          d          d           |j        }|                     g d|           d S )Nr   r   yT)optional)zCPyTagged arg_x;z if (likely(PyLong_Check(obj_x)))z.    arg_x = CPyTagged_BorrowFromObject(obj_x);r   z-    CPy_TypeError("int", obj_x); return NULL;r   zCPyTagged arg_y;zif (obj_y == NULL) {z    arg_y = CPY_INT_TAG;z'} else if (likely(PyLong_Check(obj_y)))z.    arg_y = CPyTagged_BorrowFromObject(obj_y);r   z-    CPy_TypeError("int", obj_y); return NULL;r   )r   r   r	   r
   r   r   r   r   s      r   test_check_intzTestArgCheck.test_check_int!   s    $,''3v9N9NOOO3v9N9NY]^^^^!    #	
 	
 	
 	
 	
r   expected	list[str]actualc                @    d |D             }t          ||d           d S )Nc                8    g | ]}|                     d           S )
)rstrip).0lines     r   
<listcomp>z-TestArgCheck.assert_lines.<locals>.<listcomp>;   s$    777$++d##777r   zInvalid outputr   )r   r'   r)   s      r   r   zTestArgCheck.assert_lines:   s.    77777"8V5EFFFFFr   N)r   r   )r'   r(   r)   r(   r   r   )__name__
__module____qualname__r   r"   r&   r    r   r   r   r      sn        @ @ @ @
 
 
 
"
 
 
 
2G G G G G Gr   r   )
__future__r   unittestmypy.test.helpersr   mypyc.codegen.emitr   r   r   mypyc.codegen.emitwrapperr	   mypyc.ir.rtypesr
   r   mypyc.namegenr   TestCaser   r4   r   r   <module>r=      s    " " " " " "  8 8 8 8 8 8 E E E E E E E E E E 8 8 8 8 8 8 ; ; ; ; ; ; ; ; ' ' ' ' ' '0G 0G 0G 0G 0G8$ 0G 0G 0G 0G 0Gr   