o
    Û­jæ  ã                   @   s¤   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 e jjgZe  d¡Ze e jjeejƒedƒko:eƒ dej› �d�¡ e j d	¡G d
d„ dƒƒZdS )é    N)Úis_platform_arm)Ú	DataFrameÚSeriesÚoption_context)ÚVersionÚnumbaz0.61z&Segfaults on ARM platforms with numba )ÚreasonÚ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|
|ƒdd	|	d
œ|¤Ž}t|
|ƒd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Úexpectedr   r   ú\/var/www/html/CropPilot/venv/lib/python3.10/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|
|ƒdd
|	dœ|¤Ž}t|
|ƒdi |¤Ž}t ||¡ d S )Nr   r   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|
|ƒd
d|	d	œ|¤Ž}t|
|ƒd
i |¤Ž}t ||¡ d S )Nr   )r   r   r   Úfoo)ÚindexÚnamer   r   )Úlevelr   r   r   r   )r   r   r    r!   r"   r/   )r%   r   r   r   r   r&   r'   r(   Úserr   r*   r+   r,   r   r   r-   Útest_cython_vs_numba_series5   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||ƒdddi|¤Ž W d   ƒ d S 1 s9w   Y  d S )Nr   r   r   r   r   r   F)Úas_indexzas_index=False©Úmatchr   r   r   ©r   r   r    ÚpytestÚraisesÚNotImplementedErrorr!   ©r%   r&   r'   r(   r)   r*   r   r   r-   Útest_as_index_false_unsupportedB   ó   "ÿ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||ƒdd
di|¤Ž W d   ƒ d S 1 s9w   Y  d S )Nr   r   r   r   r   r   )Úaxiszaxis=1r8   r   r   r   r:   r>   r   r   r-   Útest_axis_1_unsupportedI   r@   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 s+w   Y  | d	d
i¡}t ||¡ d S )Nr   r   r   r   r   r   zcompute.use_numbaTr   Úfirst)r   r   r    r   Úaggr"   r#   )r%   r)   r*   Úresr,   r   r   r-   Útest_no_engine_doesnt_raiseP   s   
ÿz&TestEngine.test_no_engine_doesnt_raiseN)	Ú__name__Ú
__module__Ú__qualname__r.   r0   r6   r?   rB   rF   r   r   r   r-   r
      s    r
   )r;   Úpandas.compatr   Úpandasr   r   r   Úpandas._testingÚ_testingr"   Úpandas.util.versionr   ÚmarkÚ
single_cpuÚ
pytestmarkÚimportorskipr   ÚappendÚskipifÚ__version__Úfilterwarningsr
   r   r   r   r-   Ú<module>   s    


þÿ
