
    bMh^                        d dl Zd dlZd dlmZ d dlmc mZ d dl	Z
d dl	mZmZ d dlmZ d dlmZ  ej        d          ej        j        ej                                        gZ ej        d          Ze                    ej                             eej                   ed          k    o	 e            dej                               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)is_platform_arm)	DataFrameIndex)Versionnumbaz0.61z&Segfaults on ARM platforms with numba )reason   )paramsc                     | j         S N)param)requests    ]/var/www/html/test/jupyter/venv/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            
      x   t          dt          ddgt          j        t          j                            t          ddgt          j        t          j                                      } d	 }|                     |d
d          }|                     |dd          }t          j        ||dd           d S )Nr	   ab)na_value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)	r   r   pdStringDtypenpnanr   r   r   )dfr!   r"   r#   s       r   !test_numba_vs_python_string_indexr6   &   s    		S#Jbnbf&E&E&EFFFsCj(G(G(GHHH
 
 
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>:   
    3 r   r   r	   r   r   c                     | d         S )NrA   r   r   s    r   r   z/test_numba_vs_python_indexing.<locals>.<lambda>?   rF   r   r   )r   r   r   r   assert_series_equal)framerow_funcr"   r#   col_funcs        r   test_numba_vs_python_indexingrL   5   s    iiiiiooo>>OOO$$  E  H[['[::F{{8H1{==H68,,,H[['[::F{{8H1{==H68,,,,,r   	reductionc                 *    |                                  S r   )meanr   s    r   r   r   G   s    qvvxx r   c                 *    |                                  S r   )minr   s    r   r   r   G   s    15577 r   c                 *    |                                  S r   )maxr   s    r   r   r   G   s    aeegg r   c                 *    |                                  S r   )sumr   s    r   r   r   G   s     r   c                     t          t          j        dt          j                            }|                    | d|          }|                    | d|          }t          j        ||           d S )N)r<   r<   r)   r   r   r   )r   r3   onesfloat64r   r   rH   )rM   r   r5   r"   r#   s        r   test_numba_vs_python_reductionsrY   E   si    
 
276444	5	5BXXijXAAFxx	(xDDH68,,,,,r   colnamesr8   )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 )Nr8   r;   )      	   r)   )r-   r   c                     |          S r   r   )r   	first_cols    r   r   z-test_numba_numeric_colnames.<locals>.<lambda>W   s    !I, r   r   r	   r   r   )r   r3   arrayint64r   r   rH   )rZ   r5   fr"   r#   r`   s        @r   test_numba_numeric_colnamesrd   P   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>^       ! r   zAParallel apply is not supported when raw=False and engine='numba'matchr   parallelT)r   engine_kwargs)pytestraisesNotImplementedErrorr   )r    rc   s     r   test_numba_parallel_unsupportedro   ]   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>g   rg   r   r&   r	   r9   rD   zBThe index/columns must be unique when raw=False and engine='numba'rh   r   r   )r   r   rl   rm   rn   r   r   rc   r5   s      r    test_numba_nonunique_unsupportedrs   f   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                     t          j        d           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 )Npyarrowc                     | S r   r   r   s    r   r   z/test_numba_unsupported_dtypes.<locals>.<lambda>r   rg   r   r	   r9   r&   r'   r<   r=   r?   r@   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.)rl   importorskipr   astyperm   
ValueErrorr   to_framerr   s      r   test_numba_unsupported_dtypesr{   p   s   
	"""A	!QsCj1v>>	?	?Bgnn.//BsG	N
 
 
 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$   *BBB51C33C7:C7)&numpyr3   rl   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr1   r   r   pandas._testing_testingr   pandas.util.versionr   
skip_if_nomark
single_cpuskipif
pytestmarkrw   r   append__version__fixturer   r$   r6   rL   parametrizerY   rd   ro   rs   r{   r   r   r   <module>r      sm        ) ) ) ) ) ) ) ) ) ) ) ) ) ) )                  ' ' ' ' ' 'bmG$$fk&<fk>P>P>R>RS
G$$ 
  
K!""ggfoo5K//:K:KK8IKK      1v  , , ,  - - -  **,=,=?P?PQ - -	 - iii%ABB	- 	- CB	-O O O5 5 5E E E E Er   