
    Ng                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ 	 d dl	Z	dZ
n	#  dZ
Y nxY w edd          ZdZ G d	 d
e          ZdS )    N)inline)	safe_type)
CythonTestTF)forcequietd   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Z ej        e d          d             ZdS )
TestInlinec                    t          j        |            t          t                    | _        t
          j                            d          r!t
          j                            dd          }nt          j
        d          }|| j        d<   d S )NTEST_TMPr   cython_inline_)prefixlib_dir)r   setUpdict	test_kwds
_call_kwdsospathisdirjointempfilemkdtemp)selfr   s     Y/var/www/html/ai-engine/env/lib/python3.11/site-packages/Cython/Build/Tests/TestInline.pyr   zTestInline.setUp   st    y//7==$$ 	@gll:h77GG&.>???G%,	"""    c                 P    |                      t          di | j        d           d S )N
return 1+2   )r   assertEqualr   r   r   s    r   test_simplezTestInline.test_simple   s.    @@@@!DDDDDr   c                 V    |                      t          ddg d| j        d           d S )NZ
            cimport cython
            return cython.typeof(a), cython.typeof(b)
        g      ?)ab)doublezlist object)r%   r    r"   s    r   
test_typeszTestInline.test_types   sX     - b- - !O- - /H	I 	I 	I 	I 	Ir   c                 X    d}d}|                      t          di | j        d           d S )N      
return a+br   )r-   r    )r   r&   r'   s      r   test_localszTestInline.test_locals%   s8    @@@@!DDDDDr   c                 `    |                      t          di | j        t          dz              d S )Nreturn global_value + 1r+   )r0   )r!   r   r   global_valuer"   s    r   test_globalszTestInline.test_globals*   s4    MMT_MM|^_O_`````r   c                 p    |                      t          di | j        t          ddg                      d S )NQ
            a = 1
            cdef double b = 2
            cdef c = []
        r+   g       @)r&   r'   c)r4   )r!   r   r   r   r"   s    r   test_no_returnzTestInline.test_no_return-   sU         	    "&SB!7!7!7		9 	9 	9 	9 	9r   c                 r    t          di | j        d         }|                      |d          d           d S )Ndef foo(x): return x * xfoo   1   )r8   )r   r   r!   )r   r9   s     r   test_def_nodezTestInline.test_def_node4   s@    CC4?CCEJQ$$$$$r   c                      G d dt                     }t          d          d         }|                     ||           d S )Nc                       e Zd ZdS )'TestInline.test_class_ref.<locals>.TypeN)__name__
__module____qualname__ r   r   Typer?   9   s        Dr   rD   )objectr   r!   )r   rD   tps      r   test_class_refzTestInline.test_class_ref8   sX    	 	 	 	 	6 	 	 	F^^F#T"""""r   c                     dd l }t          dddi| j        }|                     t	          |          t
                     d S )Nr   l
        b = cy.declare(float, a)
        c = cy.declare(cy.pointer(cy.float), &b)
        return b
        r&   r   )rI   )cythonr   r   r!   typefloat)r   cyr'   s      r   	test_purezTestInline.test_pure>   s\     % % 	% O	% %
 	a%(((((r   c                 Z    |                      t          dg dddi          d           d S )Nzreturn sum(x))r+   r,   r   boundscheckF)xcython_compiler_directives   r!   r   r"   s    r   test_compiler_directivesz#TestInline.test_compiler_directivesG   sO    ?YY/<e.DF F F 		
 	
 	
 	
 	
r   c                 H   d}|                       t          |d          d         dd          d           |                       t          |d          d         dd          d           |                       t          |d          d         dd          d           d S )Nzdef f(int a, int b): return a/br,   )language_levelf   r   g      @rT   )r   inline_divcodes     r   test_lang_versionzTestInline.test_lang_versionO   s    :9F>!444S9!A>>	
 	
 	
 	9F>!444S9!A>>	
 	
 	
 	9F>!444S9!A>>	
 	
 	
 	
 	
r   c                 L   d}|                       t          |          d         dd          d           |                       t          |          d         dd          d           |                       t          |          d         dd          d	           |                       t          |          d         dd          d           t          |          d         }|                       |dd          d           |                       |dd          d           d S )
Nz!def f(int a, int b): return a * brX   rY   r,   
   r      rS      rT   )r   inline_mulcoderX   s      r   test_repeated_usezTestInline.test_repeated_use_   s   <4//4Q::B???4//4Q::B???4//4Q::B???4//4Q::B???>""3'1a"%%%1a"%%%%%r   zNumPy is not availablec                     dd l } |j        d          }d|d<   |                     t          |          d           |                     t	          d	d|i| j        d           d S )
Nr   )r]      r]   )r   r   z&numpy.ndarray[numpy.float64_t, ndim=2]return a[0,0]r&   g      $@)rd   )numpyndarrayr!   r   r   r   )r   re   r&   s      r   
test_numpyzTestInline.test_numpyj   ss    EM(###1'OPPPHH1HHH$OOOOOr   N)r@   rA   rB   r   r#   r)   r.   r2   r6   r<   rG   rN   rU   r[   ra   unittestskipIf	has_numpyrg   rC   r   r   r
   r
      s       - - -E E EI I IE E E
a a a9 9 9% % %# # #) ) )
 
 

 
 
 	& 	& 	& X_]$<==P P >=P P Pr   r
   )r   r   rh   Cython.Shadowr   Cython.Build.Inliner   Cython.TestUtilsr   re   rj   r   r   r1   r
   rC   r   r   <module>rn      s    				               ) ) ) ) ) ) ' ' ' ' ' 'LLLIIIIIDt4(((	^P ^P ^P ^P ^P ^P ^P ^P ^P ^Ps   ' -