o
    Z۷i                     @   sd   d dl Z d dlZd dlmZ d dlmZ G dd de jZG dd de jZ	e
dkr0e   dS dS )	    N)jit)override_configc                   @      e Zd Zdd Zdd ZdS )TestJITMethodc                 C   sr   G dd dt }|d}tj|dtjg dtjd |jj \}|j	d }|j \}| 
|jj d S )Nc                   @   &   e Zd Zdd Zedddd ZdS )zETestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Somethingc                 S   
   || _ d S Nx0selfr
    r   P/home/ubuntu/vllm_env/lib/python3.10/site-packages/numba/tests/test_jitmethod.py__init__      
zNTestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Something.__init__Tforceobjc                 S   s:   t jdt jd}| j}t|jd D ]}|| ||< q|S )N   )shapedtyper   )npemptyfloat32r
   ranger   )r   xar
   ir   r   r   method   s
   zLTestJITMethod.test_bound_jit_method_with_loop_lift.<locals>.Something.methodN__name__
__module____qualname__r   r   r   r   r   r   r   	Something       r"      r   )   r%   r%   r%   r%   )r   r   )objectr   testingassert_array_equalr   arrayr   	overloadsvalueslifted
assertTruefndescnative)r   r"   	somethingcresjitlooploopcresr   r   r   $test_bound_jit_method_with_loop_lift
   s   
z2TestJITMethod.test_bound_jit_method_with_loop_liftc                 C   s.   G dd dt }|d}| ||d d S )Nc                   @   r   )z8TestJITMethod.test_unbound_jit_method.<locals>.Somethingc                 S   r   r   r	   r   r   r   r   r   %   r   zATestJITMethod.test_unbound_jit_method.<locals>.Something.__init__Tr   c                 S   s   | j S r   r	   )r   r   r   r   r   (   s   z?TestJITMethod.test_unbound_jit_method.<locals>.Something.methodNr   r   r   r   r   r"   $   r#   r"   r$   )r&   assertEqualr   )r   r"   r0   r   r   r   test_unbound_jit_method#   s   z%TestJITMethod.test_unbound_jit_methodN)r   r    r!   r4   r6   r   r   r   r   r   	   s    r   c                   @   r   )TestDisabledJITc                 C   sj   t dd dd }t|}W d    n1 sw   Y  | || | d|d | d|d d S )NDISABLE_JITTc                 S      | S r   r   r   r   r   r   r   3      z7TestDisabledJIT.test_decorated_function.<locals>.method
   r   r   r5   r   r   jittedr   r   r   test_decorated_function1   s   
z'TestDisabledJIT.test_decorated_functionc                 C   sp   t dd dd }tdd|}W d    n1 sw   Y  | || | d|d | d|d d S )Nr8   Tc                 S   r9   r   r   r:   r   r   r   r   =   r;   zCTestDisabledJIT.test_decorated_function_with_kwargs.<locals>.method)nopythonr<   r=   r>   r   r   r   #test_decorated_function_with_kwargs;   s   z3TestDisabledJIT.test_decorated_function_with_kwargsN)r   r    r!   r@   rB   r   r   r   r   r7   0   s    
r7   __main__)unittestnumpyr   numbar   numba.tests.supportr   TestCaser   r7   r   mainr   r   r   r   <module>   s    '