
    d                        d dl Zd dlZd dlmZ d dlmc mZ d dl	m
Z
mZmZmZmZ d dlmZ  ej        d          d             Z ej        d          d             Z ej        d          ej                            d          ej                            dd	d
g          ej                            dddg          ej                            dd	d
g          d                                                             Z ej        d          ej                            d          ej                            dd	d
g          ej                            dddg          d                                                 Z ej        d          d             Z ej        d          ej                            dddgdddgdd edd          g          d                         Z ej        d          d             Z ej        d          d             Z ej        d          d             Z ej        d          ej                            d          d                         Z ej        d          d             Z dS )    N)NumbaUtilError)	DataFrameIndexNamedAggSeriesoption_contextnumbac                     d } t          g dg ddddg          }t          j        t          d	          5  |                    d                              | d
           d d d            n# 1 swxY w Y   t          j        t          d	          5  |                    d          d                             | d
           d d d            d S # 1 swxY w Y   d S )Nc                 &    t          |           dz  S Ng@sumxs    e/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/groupby/aggregate/test_numba.pyincorrect_functionz;test_correct_function_signature.<locals>.incorrect_function   s    1vv|    ar   br   r         ?       @g      @g      @g      @keydatar   r   columnszThe first 2matchr	   enginer   pytestraisesr   groupbyaggr   r   s     r   test_correct_function_signaturer)      s      )))3L3L3LMM  D 
~]	;	;	; D DU 27CCCD D D D D D D D D D D D D D D 
~]	;	;	; L LUF#''(:7'KKKL L L L L L L L L L L L L L L L L Ls#   +A00A47A41CCCc                     d } t          g dg ddddg          }t          j        t          d	          5  |                    d                              | d
d           d d d            n# 1 swxY w Y   t          j        t          d	          5  |                    d          d                             | d
d           d d d            d S # 1 swxY w Y   d S )Nc                 &    t          |           dz  S r   r   valuesindexs     r   r   z6test_check_nopython_kwargs.<locals>.incorrect_function#   s    6{{S  r   r   r   r   r   r   r   znumba does not supportr   r	      )r"   r   r#   r(   s     r   test_check_nopython_kwargsr0   !   s   ! ! ! )))3L3L3LMM  D 
~-E	F	F	F I IU 27aHHHI I I I I I I I I I I I I I I 
~-E	F	F	F Q QUF#''(:7a'PPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs#   ,A11A58A52CCCignorejitTF
pandas_objr   r   as_indexc                 V   d }| rdd l }|                    |          }t          g dg ddddg          }|||d}	|                    d|	          }
|d
k    r|
d         }
|
                    |d|	          }|
                    d d          }t          j        ||           d S )Nc                 0    t          j        |           dz  S r   npmeanr,   s     r   
func_numbaz(test_numba_vs_cython.<locals>.func_numba8       wv$$r   r   r   r   r   r/   r/   r   nogilparallelnopython)r4   r   r	   r"   engine_kwargsc                 0    t          j        |           dz  S r   r7   r   s    r   <lambda>z&test_numba_vs_cython.<locals>.<lambda>J       RWQZZ#%5 r   cythonr!   r	   r2   r   r&   r'   tmassert_equal)r2   r3   r>   r?   r@   r4   r:   r	   r   rB   groupedresultexpecteds                r   test_numba_vs_cythonrM   1   s    % % %  +YYz**
%%%*C*C*CDDqRSf  D $xPPMll1xl00GX!*[[G=[QQF{{55h{GGHOFH%%%%%r   c                    d }d }| r.dd l }|                    |          }|                    |          }t          g dg ddddg          }|||d	}	|                    d          }
|d
k    r|
d         }
|
                    |d|	          }|
                    d d          }t          j        ||           |
                    |d|	          }|
                    d d          }t          j        ||           |
                    |d|	          }|
                    d d          }t          j        ||           d S )Nc                 0    t          j        |           dz
  S Ng333333@r7   r,   s     r   func_1ztest_cache.<locals>.func_1V   r;   r   c                 0    t          j        |           dz  S r   r7   r,   s     r   func_2ztest_cache.<locals>.func_2Y   r;   r   r   r   r   r<   r/   r   r=   r   r	   rA   c                 0    t          j        |           dz
  S rP   r7   r   s    r   rD   ztest_cache.<locals>.<lambda>k   rE   r   rF   r!   c                 0    t          j        |           dz  S r   r7   r   s    r   rD   ztest_cache.<locals>.<lambda>p   rE   r   c                 0    t          j        |           dz
  S rP   r7   r   s    r   rD   ztest_cache.<locals>.<lambda>u   rE   r   rG   )r2   r3   r>   r?   r@   rQ   rS   r	   r   rB   rJ   rK   rL   s                r   
test_cacherW   O   s   % % %% % %  #6""6""%%%*C*C*CDDqRSf  D $xPPMll1ooGX!*[[}[MMF{{55h{GGHOFH%%% [[}[MMF{{55h{GGHOFH%%% [[}[MMF{{55h{GGHOFH%%%%%r   c                  @   d } t          g dg ddddg          }|                    d          }|                    | d	          }t          d
d          5  |                    | d 	          }d d d            n# 1 swxY w Y   t	          j        ||           d S )Nc                 0    t          j        |           dz
  S rP   r7   r,   s     r   rQ   z&test_use_global_config.<locals>.func_1{   r;   r   r   r   r<   r   r/   r   r	   r!   zcompute.use_numbaT)r   r&   r'   r   rH   assert_frame_equal)rQ   r   rJ   rL   rK   s        r   test_use_global_configr[   y   s    % % % %%%*C*C*CDDqRSf  D ll1ooG{{6'{22H	+T	2	2 2 2VD112 2 2 2 2 2 2 2 2 2 2 2 2 2 2(F+++++s   A>>BBagg_funcminmaxr   )BCr_   )columnaggfuncc                    t          g dg ddddg          }|                    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 )Nr   r   r<   r   r/   r   zNumba engine canr   r	   r!   )r   r&   r$   r%   NotImplementedErrorr'   )r\   r   rJ   s      r   test_multifunc_notimplimentedre      sa    %%%*C*C*CDDqRSf  D ll1ooG	*2D	E	E	E . .HW---. . . . . . . . . . . . . . . 
*2D	E	E	E 1 1
x0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s$   A//A36A3C  CCc                     d } t          g dg dd          }|                    d          d         }|                    | dd	          }t          d
gdz  dt	          ddgd                    }t          j        ||           |                    | dd	          }t          dgdz  dt	          ddgd                    }t          j        ||           d S )Nc                 <    | | d                                           S Nr   )r-   r.   ns      r   sum_lastz&test_args_not_cached.<locals>.sum_last   s    qbcc{   r   )r   r   r/   r/   )r/   r/   r/   r/   )idr   rk   r   r/   r	   r!   r      r   name)rn   r.   r   )r   r&   r'   r   r   rH   assert_series_equal)rj   df	grouped_xrK   rL   s        r   test_args_not_cachedrr      s    ! ! ! 
,,,\\\::	;	;B

4  %I]]8Qw]77Fseaic1vD1I1I1IJJJH68,,,]]8Qw]77Fseaic1vD1I1I1IJJJH68,,,,,r   c                  
   d } t          g dg ddg d          }|                    d                              | d	          }t          d
dgdgt          ddgd                    }t	          j        ||           d S )Nc                 *    t          j        |          S rh   r7   r,   s     r   fz+test_index_data_correctly_passed.<locals>.f   s    wu~~r   )Arv   r_   )         )groupv))r.   rz   r	   r!   g      g      r{   rv   r_   rm   )r   r.   )r   r&   	aggregater   rH   rZ   )ru   rp   rK   rL   s       r    test_index_data_correctly_passedr      s       
___999==\\\	R	R	RBZZ  **1W*==F	tse5#s'+J+J+J  H &(+++++r   c                     dddfd} d}t          dg di          }|                    d                              | d	|
          }t          dg di          }t          j        ||           dd}|                    d                              | d	|
          }t          dg di          }t          j        ||           d S )NTFc                     z   z   S rh    )r-   r.   r>   r@   r?   s     r   func_kwargsz2test_engine_kwargs_not_cached.<locals>.func_kwargs   s    x(**r   r@   r>   r?   value)r   r   r   r   )levelr	   rA   )r   r   r   )r   r   r   )r   r&   r   rH   rZ   )r   rB   rp   rK   rL   r>   r@   r?   s        @@@r   test_engine_kwargs_not_cachedr      s.    EHH+ + + + + + + "*ExPPM	GYYY'	(	(BZZaZ  **G= +  F '???344H&(+++E!)ExPPMZZaZ  **G= +  F '???344H&(+++++r   c                 2   d }t          ddddg                              ddg          }|| |d}|                    d                              |d	|
          }t          dgt	          dgd          dg          }t          j        ||           d S )Nc                     dS Nr/   r   r,   s     r   
numba_funcz+test_multiindex_one_key.<locals>.numba_func       qr   r/   rl      rv   r_   r`   rv   r_   r   r	   rA   r   rm   r`   )r.   r   )r   	set_indexr&   r'   r   rH   rZ   )r>   r?   r@   r   rp   rB   rK   rL   s           r   test_multiindex_one_keyr      s       
!!!,,-	.	.	8	8#s	D	DB!)ExPPMZZ__  7- !  F #eQCc&:&:&:SEJJJH&(+++++r   c                 ,   d }t          ddddg                              ddg          }|| |d}t          j        t          d	
          5  |                    ddg                              |d|           d d d            d S # 1 swxY w Y   d S )Nc                     dS r   r   r,   s     r   r   z;test_multiindex_multi_key_not_supported.<locals>.numba_func   r   r   r/   rl   r   r   rv   r_   r   zMore than 1 grouping labelsr   r	   rA   )r   r   r$   r%   rd   r&   r'   )r>   r?   r@   r   rp   rB   s         r   'test_multiindex_multi_key_not_supportedr      s       
!!!,,-	.	.	8	8#s	D	DB!)ExPPM	*2O	P	P	P 
 



C:""wm 	# 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   .B		BB)!numpyr8   r$   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r   pandas._testing_testingrH   
skip_if_nor)   r0   markfilterwarningsparametrizerM   rW   r[   re   rr   r   r   r   r   r   r   r   <module>r      s        ( ( ( ( ( ( ) ) ) ) ) ) ) ) )                    wL L L wQ Q Q wH%%u..+'>??dE]33& & 43 @? /. &% &0 wH%%u..+'>??"& "& @? /. &% 
"&J w, , , w	en5))U+++	 	1 	1  	1 w- - -  w
, 
, 
, w, , ,6 wH%%
, 
, &% 
, w	
 	
 	
 	
 	
r   