+
    VBi?                         ^ RI t ^ RIt^ RIt^ RIHt ^ RIHtHt ^ RIH	t	  ^ RI
t
Rt]! RRR7      t^dt ! R R	]	4      t ! R
 R]P                   4      tR#    Rt L4; i)    N)inline)	safe_typecymeit)
CythonTestTF)forcequietc                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR t]P"                  ! ]'       * R4      R 4       tRtV tR# )
TestInlinec                0   \         P                  ! V 4       \        \        4      V n        \
        P                  P                  R 4      '       d"   \
        P                  P                  R R4      pM\        P                  ! RR7      pWP                  R&   R# )TEST_TMPr   cython_inline_)prefixlib_dirN)r   setUpdict	test_kwds
_call_kwdsospathisdirjointempfilemkdtemp)selfr   s   & B/usr/lib/python3.14/site-packages/Cython/Build/Tests/TestInline.pyr   TestInline.setUp   s_    y/77==$$ggll:h7G&&.>?G%,	"    c                P    V P                  \        R/ V P                  B ^4       R# )
return 1+2N)r   assertEqualr   r   r   s   &r   test_simpleTestInline.test_simple   s    @@!Dr   c           	     X    V P                  \        RRRR. /V P                  B R4       R# )Z
            cimport cython
            return cython.typeof(a), cython.typeof(b)
        ag      ?bN)r&   )doublezlist objectr    r"   s   &r   
test_typesTestInline.test_types   s@     - - - !OO- /H	Ir   c                X    ^p^pV P                  \        R/ V P                  B ^4       R# )   N)z
return a+br    )r   r'   r(   s   &  r   test_localsTestInline.test_locals%   s(    @@!Dr   c                f    V P                  \        R/ V P                  B \        ^,           4       R# )return global_value + 1N)r1   )r!   r   r   global_valuer"   s   &r   test_globalsTestInline.test_globals*   s$    MT__M|^_O_`r   c           	     h    V P                  \        R/ V P                  B \        ^R. R7      4       R# )Q
            a = 1
            cdef double b = 2
            cdef c = []
        g       @)r'   r(   cN)r6   )r!   r   r   r   r"   s   &r   test_no_returnTestInline.test_no_return-   s3       	  "&SB!7		9r   c                n    \        R/ V P                  B R,          pV P                  V! ^4      ^14       R# )def foo(x): return x * xfooN)r;   )r   r   r!   )r   r<   s   & r   test_def_nodeTestInline.test_def_node4   s,    C4??CEJQ$r   c                `     ! R  R4      p\        R4      R,          pV P                  W!4       R# )c                       ] tR t^9tRtR# )'TestInline.test_class_ref.<locals>.Type N)__name__
__module____qualname____firstlineno____static_attributes__rB   r   r   TyperA   9   s    r   rH   N)r   r!   )r   rH   tps   &  r   test_class_refTestInline.test_class_ref8   s(    	 	F^F#"r   c                z    ^ RI p\        RR^/V P                  B pV P                  \	        V4      \
        4       R# )r   Nr'   )zl
        b = cy.declare(float, a)
        c = cy.declare(cy.pointer(cy.float), &b)
        return b
        )cythonr   r   r!   typefloat)r   cyr(   s   &  r   	test_pureTestInline.test_pure>   s=     % 	% OO	%
 	a%(r   c                J    V P                  \        R . RORR/R7      ^4       R# )zreturn sum(x)boundscheckF)xcython_compiler_directivesN)r-         r!   r   r"   s   &r   test_compiler_directives#TestInline.test_compiler_directivesG   s+    ?/<e.DF 		
r   c                   R pV P                  \        V^R7      R,          ! ^^4      ^4       V P                  \        V^R7      R,          ! ^^4      R4       V P                  \        V^R7      R,          ! ^^4      ^4       R# )zdef f(int a, int b): return a/b)language_levelfg      @NrY   )r   inline_divcodes   & r   test_lang_versionTestInline.test_lang_versionO   s    :>!4S9!A>	
 	>!4S9!A>	
 	>!4S9!A>	
r   c                   R pV P                  \        V4      R,          ! ^^4      ^
4       V P                  \        V4      R,          ! ^^4      ^4       V P                  \        V4      R,          ! ^^4      ^4       V P                  \        V4      R,          ! ^^4      ^
4       \        V4      R,          pV P                  V! ^^4      ^
4       V P                  V! ^^4      ^4       R# )z!def f(int a, int b): return a * br^   NrY   )r   inline_mulcoder^   s   &  r   test_repeated_useTestInline.test_repeated_use_   s    </4Q:B?/4Q:B?/4Q:B?/4Q:B?>"3'1a"%1a"%r   zNumPy is not availablec                    ^ RI pVP                  ! R4      p^
VR&   V P                  \        V4      R4       V P                  \	        RRV/V P
                  B R4       R# )r   Nz&numpy.ndarray[numpy.float64_t, ndim=2]r'   g      $@)
      )r   r   )zreturn a[0,0])numpyndarrayr!   r   r   r   )r   ri   r'   s   &  r   
test_numpyTestInline.test_numpyj   sR    MM(##1'OPH1HH$Or   )r   N)rC   rD   rE   rF   r   r#   r*   r.   r3   r8   r=   rJ   rQ   rZ   r`   rd   unittestskipIf	has_numpyrk   rG   __classdictcell____classdict__s   @r   r
   r
      si     -EIE
a9%#)

 	& __]$<=P >Pr   r
   c                   N   a  ] tR t^st o R
R ltR tR tR tR tR t	R t
R	tV tR# )
TestCymeitNc                $  a \        V3R V/VB w  poV P                  \        V4      ^ 4       \        V3R lV 4       4      p\	        V\
        4      '       d   V P                  VR4       MV P                  VR4       V P                  S^
4       V# )
setup_codec              3   4   <"   T F  qS,          x  K  	  R # 5iNrB   ).0timingnumbers   & r   	<genexpr>"TestCymeit._run.<locals>.<genexpr>{   s     =W6Ws   i g-C6?)r   assertGreaterminmax
isinstanceintassertGreaterEqual)r   coderv   kwargstimingsmax_timer{   s   &&&,  @r   _runTestCymeit._runt   s     G*GG3w<+ =W==h$$##Hg6##Hf562&r   c                2    R pV P                  RV^R7       R# )!numbers = list(range(0, 1000, 3))sum([num for num in numbers])repeatNr   r   rv   s   & r   test_benchmark_simple TestCymeit.test_benchmark_simple   s    8
		1:a	Hr   c                    ^ RI pRpV P                  RW!P                  ^R7      pV F  pV P                  V\        4       K  	  R# r   Nr   r   )timerr   )timer   perf_counterassertIsInstancerO   r   r   rv   r   rz   s   &    r   test_benchmark_timerTestCymeit.test_benchmark_timer   s@    8
));ZO`O`ij)kF!!&%0 r   c                    ^ RI pRpV P                  RW!P                  ^R7      pV F  pV P                  V\        4       K  	  R# r   )r   r   perf_counter_nsr   r   r   s   &    r   test_benchmark_timer_ns"TestCymeit.test_benchmark_timer_ns   s@    8
));ZOcOclm)nF!!&#. r   c                .    R pV P                  RV4       R# )z
        numbers = list(range(0, 100, 3))

        def csum(numbers):
            result = 0
            for number in numbers:
                result += number
            return result
        zcsum(numbers)Nr   r   s   & r   test_benchmark_multiline_setup)TestCymeit.test_benchmark_multiline_setup   s    
 			/:.r   c                2    R pV P                  RV^R7       R# )z numbers = list(range(0, 100, 3))zm
            sum([
                num
                    for num in numbers
                ])
            r   Nr   r   s   & r   test_benchmark_multiline_code(TestCymeit.test_benchmark_multiline_code   s%    7
		   	 	
r   c                .    V P                  R R^R7       R# )zfsum(range(100))math)import_moduler   Nr   r"   s   &r   test_benchmark_in_module#TestCymeit.test_benchmark_in_module   s    		$F1	Er   rB   rx   )rC   rD   rE   rF   r   r   r   r   r   r   r   rG   rp   rq   s   @r   rt   rt   s   s0      I1/
/

F Fr   rt   )r   r   rm   Cython.Shadowr   Cython.Build.Inliner   r   Cython.TestUtilsr   ri   ro   r   r   r2   r
   TestCasert   rB   r   r   <module>r      si    	     1 'I t4(	^P ^PB>F"" >FQIs   A A