a
    é´«j^  ã                   @   sP  d dl Zd dlZd dlmZ d dlm  mZ d dl	Z
d dl	mZmZ d dlmZ d dlmZ e d¡ejje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 d	gd
�dd„ ƒZdd„ Zdd„ Zdd„ Zej  ddd„ dd„ dd„ dd„ g¡dd„ ƒZ!ej  dg d¢g d¢g¡dd„ ƒZ"d d!„ Z#d"d#„ Z$d$d%„ Z%dS )&é    N)Úis_platform_arm)Ú	DataFrameÚIndex)ÚVersionÚnumbaz0.61z&Segfaults on ARM platforms with numba )Úreasoné   )Úparamsc                 C   s   | j S ©N)Úparam)Úrequest© r   ú\/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/apply/test_numba.pyÚ
apply_axis   s    r   c                 C   s8   dd„ }| j |d|d�}| j |d|d�}t ||¡ d S )Nc                 S   s   | S r
   r   ©Úxr   r   r   Ú<lambda>    ó    z+test_numba_vs_python_noop.<locals>.<lambda>r   ©ÚengineZaxisÚpython)ÚapplyÚtmÚassert_frame_equal)Úfloat_framer   ÚfuncÚresultÚexpectedr   r   r   Útest_numba_vs_python_noop   s    r   c                  C   sx   t dtddgtjtjd�d�tddgtjtjd�d�d�} d	d
„ }| j|ddd�}| j|ddd�}tj||ddd� d S )Nr   ÚaÚb)Zna_value©Zdtyper   Úy)ÚindexÚcolumnsc                 S   s   | S r
   r   r   r   r   r   r   -   r   z3test_numba_vs_python_string_index.<locals>.<lambda>r   r   r   r   F)Zcheck_column_typeZcheck_index_type)	r   r   ÚpdZStringDtypeÚnpÚnanr   r   r   )Údfr   r   r   r   r   r   Ú!test_numba_vs_python_string_index&   s    ýÿr)   c                  C   s”   t g d¢g d¢g d¢dœtg d¢ƒd�} dd„ }| j|d	d
d�}| j|dd
d�}t ||¡ dd„ }| j|d	dd�}| j|ddd�}t ||¡ d S )N©r   é   é   ©é   é   é   )g      @g       @g      "@©r   r    Úc)ÚAÚBÚC©r#   c                 S   s   | d S )Nr2   r   r   r   r   r   r   :   r   z/test_numba_vs_python_indexing.<locals>.<lambda>r   r   r   r   c                 S   s   | d S )Nr3   r   r   r   r   r   r   ?   r   r   )r   r   r   r   Úassert_series_equal)ÚframeZrow_funcr   r   Zcol_funcr   r   r   Útest_numba_vs_python_indexing5   s    
þr9   Ú	reductionc                 C   s   |   ¡ S r
   )Úmeanr   r   r   r   r   G   r   r   c                 C   s   |   ¡ S r
   )Úminr   r   r   r   r   G   r   c                 C   s   |   ¡ S r
   )Úmaxr   r   r   r   r   G   r   c                 C   s   |   ¡ S r
   )Úsumr   r   r   r   r   G   r   c                 C   sD   t tjdtjd�ƒ}|j| d|d�}|j| d|d�}t ||¡ d S )N)r.   r.   r!   r   r   r   )r   r&   ZonesZfloat64r   r   r7   )r:   r   r(   r   r   r   r   r   Útest_numba_vs_python_reductionsE   s    r?   Úcolnamesr*   )g      ð?g       @g      @c                    sn   t tjg d¢g d¢g d¢gtjd�| d�}| d ‰ ‡ fdd„}|j|d	d
d�}|j|dd
d�}t ||¡ d S )Nr*   r-   )é   é   é	   r!   )r$   r   c                    s   | ˆ  S r
   r   r   ©Z	first_colr   r   r   W   r   z-test_numba_numeric_colnames.<locals>.<lambda>r   r   r   r   )r   r&   ÚarrayZint64r   r   r7   )r@   r(   Úfr   r   r   rD   r   Útest_numba_numeric_colnamesP   s    "ÿrG   c                 C   sN   dd„ }t jtdd��$ | j|dddid� W d   ƒ n1 s@0    Y  d S )	Nc                 S   s   | S r
   r   r   r   r   r   r   ^   r   z1test_numba_parallel_unsupported.<locals>.<lambda>zAParallel apply is not supported when raw=False and engine='numba'©Úmatchr   ÚparallelT)r   Zengine_kwargs)ÚpytestÚraisesÚNotImplementedErrorr   )r   rF   r   r   r   Útest_numba_parallel_unsupported]   s    þrN   c                 C   sf   dd„ }t dddgitddgƒd�}tjtdd��  |j|d	| d
� W d   ƒ n1 sX0    Y  d S )Nc                 S   s   | S r
   r   r   r   r   r   r   g   r   z2test_numba_nonunique_unsupported.<locals>.<lambda>r   r   r+   r6   zBThe index/columns must be unique when raw=False and engine='numba'rH   r   r   )r   r   rK   rL   rM   r   ©r   rF   r(   r   r   r   Ú test_numba_nonunique_unsupportedf   s    þrP   c                 C   sÈ   t  d¡ dd„ }tddgddgdd	gd
œƒ}|d  d¡|d< t jtdd��  |j|d| d� W d   ƒ n1 st0    Y  t jtdd��( |d  ¡ j|d| d� W d   ƒ n1 sº0    Y  d S )NZpyarrowc                 S   s   | S r
   r   r   r   r   r   r   r   r   z/test_numba_unsupported_dtypes.<locals>.<lambda>r   r+   r   r    r.   r/   r1   r2   zdouble[pyarrow]z>Column b must have a numeric dtype. Found 'object|str' insteadrH   r   r   zUColumn c is backed by an extension array, which is not supported by the numba engine.)rK   Úimportorskipr   ZastyperL   Ú
ValueErrorr   Zto_framerO   r   r   r   Útest_numba_unsupported_dtypesp   s    
þ.þrS   )&Únumpyr&   rK   Zpandas.compatr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasr%   r   r   Zpandas._testingZ_testingr   Zpandas.util.versionr   Z
skip_if_noÚmarkZ
single_cpuZskipifZ
pytestmarkrQ   r   ÚappendÚ__version__Zfixturer   r   r)   r9   Zparametrizer?   rG   rN   rP   rS   r   r   r   r   Ú<module>   s<   

þÿ
þ

	
