a
    Pf                     @   sX   d dl Z d dlmZmZmZ d dlmZ e jj	Z
e d e jdG dd dZdS )    N)	DataFrameSeriesoption_contextnumbaignorec                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )
TestEnginec                 C   s~   |\}}t g dtdtddd}|||d}	|jd|d}
t|
|f d	|	d
|}t|
|f i |}t|| d S )N      r	   r
            abcnogilparallelnopythonr   sortr   engineengine_kwargs)r   rangegroupbygetattrtmassert_frame_equalselfr   r   r   r   numba_supported_reductionsfunckwargsdfr   gbresultexpected r)   X/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/groupby/test_numba.pytest_cython_vs_numba_frame   s    
z%TestEngine.test_cython_vs_numba_framec                 C   s   |\}}t g dtdtddd}|||d}	|jd|dd	 }
t|
|f d
|	d|}t|
|f i |}t|| d S )Nr   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   assert_series_equalr    r)   r)   r*   test_cython_vs_numba_getitem   s    
z'TestEngine.test_cython_vs_numba_getitemc                 C   sv   |\}}t tdg ddd}|||d}	|jd|d}
t|
|f d|	d	|}t|
|f i |}t|| d S )
Nr	   )r   r
   r   Zfoo)indexnamer   r   )levelr   r   r   )r   r   r   r   r   r,   )r!   r   r   r   r   r"   r#   r$   Zserr   r&   r'   r(   r)   r)   r*   test_cython_vs_numba_series,   s    
z&TestEngine.test_cython_vs_numba_seriesc                 C   s~   |\}}t g dtdtddd}|jddd}tjtd	d
( t||f ddi| W d    n1 sp0    Y  d S )Nr   r   r   r   r   r   F)Zas_indexzas_index=Falsematchr   r   r   r   r   pytestZraisesNotImplementedErrorr   r!   r"   r#   r$   r%   r&   r)   r)   r*   test_as_index_false_unsupported9   s
    z*TestEngine.test_as_index_false_unsupportedc                 C   s~   |\}}t g dtdtddd}|jddd}tjtdd	( t||f d
di| W d    n1 sp0    Y  d S )Nr   r   r   r   r   r   )Zaxiszaxis=1r2   r   r   r4   r7   r)   r)   r*   test_axis_1_unsupported@   s
    z"TestEngine.test_axis_1_unsupportedc                 C   s~   t g dtdtddd}|d}tdd |d	d
i}W d    n1 sV0    Y  |d	d
i}t|| d S )Nr   r   r   r   r   r   zcompute.use_numbaTr   first)r   r   r   r   Zaggr   r   )r!   r%   r&   resr(   r)   r)   r*   test_no_engine_doesnt_raiseG   s    
,z&TestEngine.test_no_engine_doesnt_raiseN)	__name__
__module____qualname__r+   r-   r1   r8   r9   r<   r)   r)   r)   r*   r      s   r   )r5   Zpandasr   r   r   Zpandas._testingZ_testingr   markZ
single_cpuZ
pytestmarkZimportorskipfilterwarningsr   r)   r)   r)   r*   <module>   s   

