
    Owg                        d dl Zd dlZd dlmc mZ d dlmZm	Z	 d dl
mZ  ej                  d      ej                  j                  gZ ej"                  d dg      d        Zd Zd Zd	 Zej                  j-                  d
d d d d g      d        Zej                  j-                  dg dg dg      d        Zd Zd Zd Zy)    N)	DataFrameIndexnumba   )paramsc                     | j                   S N)param)requests    T/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/apply/test_numba.py
apply_axisr      s    ==    c                     d }| j                  |d|      }| j                  |d|      }t        j                  ||       y )Nc                     | S r	    xs    r   <lambda>z+test_numba_vs_python_noop.<locals>.<lambda>       Q r   r   engineaxispython)applytmassert_frame_equal)float_framer   funcresultexpecteds        r   test_numba_vs_python_noopr!      sE    DtG*EF  hZ HH&(+r   c                     t        j                  d       t        dt        ddgd      t        ddgd      	      } d
 }| j	                  |dd      }| j	                  |dd      }t        j                  ||dd       y )Npyarrowr   abzstring[pyarrow_numpy]dtyper   y)indexcolumnsc                     | S r	   r   r   s    r   r   z3test_numba_vs_python_string_index.<locals>.<lambda>#   r   r   r   r   r   r   F)check_column_typecheck_index_type)pytestimportorskipr   r   r   r   r   )dfr   r   r    s       r   !test_numba_vs_python_string_indexr1      s    
	"		S#J&=>sCj(?@
B
 DXXd7X3FxxXAx6HEEr   c                  L   t        g dg dg ddt        g d            } d }| j                  |dd	
      }| j                  |dd	
      }t        j                  ||       d }| j                  |dd
      }| j                  |dd
      }t        j                  ||       y )Nr                  )g      @g       @g      "@r$   r%   c)ABCr)   c                     | d   S )Nr;   r   r   s    r   r   z/test_numba_vs_python_indexing.<locals>.<lambda>0   
    3 r   r   r   r   r   c                     | d   S )Nr<   r   r   s    r   r   z/test_numba_vs_python_indexing.<locals>.<lambda>5   rA   r   r   )r   r   r   r   assert_series_equal)framerow_funcr   r    col_funcs        r   test_numba_vs_python_indexingrG   +   s    io>O$E  H[['[:F{{8H1{=H68,H[['[:F{{8H1{=H68,r   	reductionc                 "    | j                         S r	   )meanr   s    r   r   r   =   s    qvvx r   c                 "    | j                         S r	   )minr   s    r   r   r   =   s    1557 r   c                 "    | j                         S r	   )maxr   s    r   r   r   =   s    aeeg r   c                 "    | j                         S r	   )sumr   s    r   r   r   =   s     r   c                     t        t        j                  dt        j                              }|j	                  | d|      }|j	                  | d|      }t        j                  ||       y )N)r7   r7   r&   r   r   r   )r   nponesfloat64r   r   rC   )rH   r   r0   r   r    s        r   test_numba_vs_python_reductionsrU   ;   sU    
 
27764	5BXXijXAFxx	(xDH68,r   colnamesr3   )g      ?g       @g      @c                    t        t        j                  g dg dg dgt        j                        |       }| d   fd}|j	                  |dd	
      }|j	                  |dd	
      }t        j                  ||       y )Nr3   r6   )      	   r&   )r*   r   c                     |    S r	   r   )r   	first_cols    r   r   z-test_numba_numeric_colnames.<locals>.<lambda>M   s    !I, r   r   r   r   r   )r   rR   arrayint64r   r   rC   )rV   r0   fr   r    r\   s        @r   test_numba_numeric_colnamesr`   F   sr     

)Y	2"((CX
B IAXXaaX0Fxx(x3H68,r   c                     d }t        j                  t        d      5  | j                  |dddi       d d d        y # 1 sw Y   y xY w)Nc                     | S r	   r   r   s    r   r   z1test_numba_parallel_unsupported.<locals>.<lambda>T       ! r   zAParallel apply is not supported when raw=False and engine='numba'matchr   parallelT)r   engine_kwargs)r.   raisesNotImplementedErrorr   )r   r_   s     r   test_numba_parallel_unsupportedrj   S   sN    A	Q
 O 	!GJ;MN	O O Os	   ?Ac                     d }t        dddgit        ddg            }t        j                  t        d      5  |j                  |d| 	       d d d        y # 1 sw Y   y xY w)
Nc                     | S r	   r   r   s    r   r   z2test_numba_nonunique_unsupported.<locals>.<lambda>]   rc   r   r$   r   r4   r?   zBThe index/columns must be unique when raw=False and engine='numba'rd   r   r   )r   r   r.   rh   ri   r   r   r_   r0   s      r    test_numba_nonunique_unsupportedrn   \   s_    A	C!Q=sCj(9	:B	R
 5 	74	5 5 5s   AA"c                    d }t        ddgddgddgd      }|d	   j                  d
      |d	<   t        j                  t        d      5  |j                  |d|        d d d        t        j                  t        d      5  |d	   j                         j                  |d|        d d d        y # 1 sw Y   SxY w# 1 sw Y   y xY w)Nc                     | S r	   r   r   s    r   r   z/test_numba_unsupported_dtypes.<locals>.<lambda>g   rc   r   r   r4   r$   r%   r7   r8   r:   r;   zdouble[pyarrow]zAColumn b must have a numeric dtype. Found 'object|string' insteadrd   r   r   zUColumn c is backed by an extension array, which is not supported by the numba engine.)r   astyper.   rh   
ValueErrorr   to_framerm   s      r   test_numba_unsupported_dtypesrt   f   s    A	!QsCj1v>	?Bgnn./BsG	Q
 5 	74	5 
6
 E
 	3  7 DE E5 5E Es   B2&B>2B;>C)numpyrR   r.   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   pandas._testing_testingr   
skip_if_nomark
single_cpu
pytestmarkfixturer   r!   r1   rG   parametrizerU   r`   rj   rn   rt   r   r   r   <module>r      s      ) ) bmmG$fkk&<&<=
 1v , -  *,=?PQ-	- i%AB	- C	-O5Er   