
    g                        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                            d
d d d d g          d             Zej                            dg dg dg          d             Zd Zd Zd ZdS )    N)	DataFrameIndexnumba   )paramsc                     | j         S N)param)requests    i/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/pandas/tests/apply/test_numba.py
apply_axisr      s
    =    c                     d }|                      |d|          }|                      |d|          }t          j        ||           d S )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!      sV    ;DtG*EEF  hZ HHH&(+++++r   c                  ,   t          j        d           t          dt          ddgd          t          ddgd          	          } d
 }|                     |dd          }|                     |dd          }t          j        ||dd           d S )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33FxxXAx66HEE     r   c                  z   t          g dg dg ddt          g d                    } d }|                     |dd	
          }|                     |dd	
          }t          j        ||           d }|                     |dd
          }|                     |dd
          }t          j        ||           d S )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    iiiiiooo>>OOO$$  E  H[['[::F{{8H1{==H68,,,H[['[::F{{8H1{==H68,,,,,r   	reductionc                 *    |                                  S r	   )meanr   s    r   r   r   =   s    qvvxx r   c                 *    |                                  S r	   )minr   s    r   r   r   =   s    15577 r   c                 *    |                                  S r	   )maxr   s    r   r   r   =   s    aeegg r   c                 *    |                                  S r	   )sumr   s    r   r   r   =   s     r   c                     t          t          j        dt          j                            }|                    | d|          }|                    | d|          }t          j        ||           d S )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   ;   si    
 
276444	5	5BXXijXAAFxx	(xDDH68,,,,,r   colnamesr3   )g      ?g       @g      @c                    t          t          j        g dg dg dgt          j                  |           }| d         fd}|                    |dd	
          }|                    |dd	
          }t          j        ||           d S )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   s     

)))YYY			2"(CCCX
 
 
B IAXXaaX00Fxx(x33H68,,,,,r   c                     d }t          j        t          d          5  |                     |dddi           d d d            d S # 1 swxY w Y   d S )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   s    A	Q
 
 
 O O 	!GJ;MNNN	O O O O O O O O O O O O O O O O O Os   AAAc                     d }t          dddgit          ddg                    }t          j        t          d          5  |                    |d| 	           d d d            d S # 1 swxY w Y   d S )
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(9	:	:	:B	R
 
 
 5 5 	7444	5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   A))A-0A-c                    d }t          ddgddgddgd          }|d	                             d
          |d	<   t          j        t          d          5  |                    |d|            d d d            n# 1 swxY w Y   t          j        t          d          5  |d	                                                             |d|            d d d            d S # 1 swxY w Y   d S )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 5 	7444	5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
6
 
 
 E E
 	3  7 DDDE E E E E E E E E E E E E E E E E Es$   A;;A?A?!1CC#&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        ) ) ) ) ) ) ) ) )             bmG$$fk&<=
 1v  , , ,   - - -  **,=,=?P?PQ - -	 - iii%ABB	- 	- CB	-O O O5 5 5E E E E Er   