
    Mh%                     
   S SK rS SKrS SKJr  S SKJrJrJr  S SK	J
r  \R                  R                  rS rS r\R                  R#                  S5      \R                  R%                  SSS	/5      \R                  R%                  S
SS/5      \R                  R%                  SSS	/5      S 5       5       5       5       r\R                  R#                  S5      \R                  R%                  SSS	/5      \R                  R%                  S
SS/5      S 5       5       5       rS r\R                  R%                  SSS/SSS/SS./5      S 5       rS rS rS r\R                  R#                  S5      S 5       rS rS rS rg)    N)NumbaUtilError)	DataFrameSeriesoption_contextc                     [         R                  " S5        S n [        / SQ/ SQS.SS/S9n[         R                  " [        S	S
9   UR                  S5      R                  U SS9  S S S 5        [         R                  " [        S	S
9   UR                  S5      S   R                  U SS9  S S S 5        g ! , (       d  f       NS= f! , (       d  f       g = f)Nnumbac                     U S-   $ N    xs    [/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/transform/test_numba.pyincorrect_function;test_correct_function_signature.<locals>.incorrect_function   s    1u    ar   br   r         ?       @g      @g      @g      @keydatar   r   columnszThe first 2matchenginepytestimportorskipr   raisesr   groupby	transformr   r   s     r   test_correct_function_signaturer)      s    
  )3LMD 
~]	;U%%&8%I 
< 
~]	;UF#--.@-Q 
<	; 
<	; 
<	;s    B3#C3
C
Cc                     [         R                  " S5        S n [        / SQ/ SQS.SS/S9n[         R                  " [        S	S
9   UR                  S5      R                  U SSS9  S S S 5        [         R                  " [        S	S
9   UR                  S5      S   R                  U SSS9  S S S 5        g ! , (       d  f       NT= f! , (       d  f       g = f)Nr   c                     U S-   $ r
   r   valuesindexs     r   r   6test_check_nopython_kwargs.<locals>.incorrect_function$       zr   r   r   r   r   r   r   znumba does not supportr   r   )r!   r   r"   r(   s     r   test_check_nopython_kwargsr1   !   s    
  )3LMD 
~-E	FU%%&8A%N 
G 
~-E	FUF#--.@TU-V 
G	F 
G	F 
G	Fs   !B5$C5
C
CignorejitTF
pandas_objr   r   as_indexc                 D   [         R                  " S5        S nU (       a  SS KnUR                  U5      n[	        / SQ/ SQS.SS/S9nX#US	.n	UR                  SUS
9n
US:X  a  U
S   n
U
R                  USU	S9nU
R                  S SS9n[        R                  " X5        g )Nr   c                     U S-   $ r
   r   r,   s     r   func"test_numba_vs_cython.<locals>.func:   r0   r   r   r   r   r   r   r   r   nogilparallelnopython)r5   r   r!   engine_kwargsc                     U S-   $ r
   r   r   s    r   <lambda>&test_numba_vs_cython.<locals>.<lambda>L       1q5r   cythonr    	r#   r$   r   r3   r   r&   r'   tmassert_equal)r3   r4   r<   r=   r>   r5   r8   r   r   r@   groupedresultexpecteds                r   test_numba_vs_cythonrL   2   s       yy%*CDqRSfD $xPMll1xl0GX!*tG=QF   BHOOF%r   c                 N   [         R                  " S5        S nS nU (       a&  SS KnUR                  U5      nUR                  U5      n[	        / SQ/ SQS.SS/S	9nX#US
.n	UR                  S5      n
US:X  a  U
S   n
U
R                  USU	S9nU
R                  S SS9n[        R                  " X5        U
R                  USU	S9nU
R                  S SS9n[        R                  " X5        U
R                  USU	S9nU
R                  S SS9n[        R                  " X5        g )Nr   c                     U S-   $ r
   r   r,   s     r   func_1test_cache.<locals>.func_1Y   r0   r   c                     U S-  $ N   r   r,   s     r   func_2test_cache.<locals>.func_2\   r0   r   r   r   r   r:   r   r   r;   r   r?   c                     U S-   $ r
   r   r   s    r   rB   test_cache.<locals>.<lambda>n   rD   r   rE   r    c                     U S-  $ rR   r   r   s    r   rB   rW   r   rD   r   c                     U S-   $ r
   r   r   s    r   rB   rW   w   rD   r   rF   )r3   r4   r<   r=   r>   rO   rT   r   r   r@   rI   rJ   rK   s                r   
test_cacherZ   Q   s.      6"6"%*CDqRSfD $xPMll1oGX!*vg]SF   BHOOF%vg]SF   BHOOF% vg]SF   BHOOF%r   c                  8   [         R                  " S5        S n [        / SQ/ SQS.SS/S9nUR                  S5      nUR	                  U SS	9n[        S
S5         UR	                  U S S	9nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)Nr   c                     U S-   $ r
   r   r,   s     r   rO   &test_use_global_config.<locals>.func_1~   r0   r   r   r   r:   r   r   r   r    zcompute.use_numbaT)r#   r$   r   r&   r'   r   rG   assert_frame_equal)rO   r   rI   rK   rJ   s        r   test_use_global_configr_   {   s    
  %*CDqRSfD ll1oG   8H	+T	2""6$"7 
3(F+ 
3	2s   B
Bagg_funcminmaxsum)BCc                    [         R                  " S5        Uu  p[        / SQ/ SQS.SS/S9nUR                  S5      nUR                  " U 4SS0UD6nUR                  " U 4SS	0UD6n[
        R                  " XV5        US   R                  " U 4SS0UD6nUS   R                  " U 4SS	0UD6n[
        R                  " XV5        g )
Nr   r   r   r:   r   r   r   r!   rE   )r#   r$   r   r&   r'   rG   r^   assert_series_equal)r`   numba_supported_reductionskwargsr   rI   rJ   rK   s          r   test_string_cython_vs_numbarj      s      1H%*CDqRSfD ll1oGxBB6BF  E(EfEH&+QZ!!(E7EfEFqz##HHXHHH6,r   c                  V   [         R                  " S5        S n [        / SQ/ SQS.5      nUR                  S5      S   nUR	                  U SSS	9n[        S
/S-  SS9n[        R                  " X45        UR	                  U SSS	9n[        S/S-  SS9n[        R                  " X45        g )Nr   c                 (    X* S  R                  5       $ N)rc   )r-   r.   ns      r   sum_last&test_args_not_cached.<locals>.sum_last   s    bc{  r   )r   r   r   r   )r   r   r   r   )idr   rq   r   r   r    r      )name   r   )r#   r$   r   r&   r'   r   rG   rg   )ro   df	grouped_xrJ   rK   s        r   test_args_not_cachedrw      s    
 ! 
,\:	;B

4 %I  1W =Fseaic*H6,  1W =Fseaic*H6,r   c                      [         R                  " S5        S n [        / SQ/ SQS./ SQS9nUR                  S5      R	                  U SS	9n[        / S
QS// SQS9n[
        R                  " X#5        g )Nr   c                     US-
  $ r
   r   r,   s     r   f+test_index_data_correctly_passed.<locals>.f   s    qyr   )Ar|   rd   )rr   rS      )groupv))r.   r~   r    )g      g      g       r   )r   r.   r#   r$   r   r&   r'   rG   r^   )rz   ru   rJ   rK   s       r    test_index_data_correctly_passedr      se    
  
_9=\	RBZZ **1W*=F+cU,OH&+r   c                    ^^^ [         R                  " S5        SmSmSmUUU4S jn TTTS.n[        S/ SQ05      nUR                  SS	9R	                  U SUS
9n[        S/ SQ05      n[
        R                  " X45        SmTTTS.nUR                  SS	9R	                  U SUS
9n[        S/ SQ05      n[
        R                  " X45        g )Nr   TFc                    > TT-   T-   $ rm   r   )r-   r.   r<   r>   r=   s     r   func_kwargs2test_engine_kwargs_not_cached.<locals>.func_kwargs   s    x(**r   r>   r<   r=   value)r   r   r   r   )levelr?   )r   r   r   )r   r   r   r   )r   r@   ru   rJ   rK   r<   r>   r=   s        @@@r   test_engine_kwargs_not_cachedr      s      EHH+ "*ExPM	GY'	(BZZaZ **G= + F '?34H&+E!)ExPMZZaZ **G= + F '?34H&+r   c                 0   [         R                  " S5        S n[        SSSS./5      R                  SS/5      nX US	.nUR	                  S5      R                  USUS
9n[        SSSS./5      R                  SS/5      n[        R                  " Xg5        g )Nr   c                     gr
   r   r,   s     r   
numba_func+test_multiindex_one_key.<locals>.numba_func       r   r   rt      r|   rd   re   r|   rd   r   r?   r   )r#   r$   r   	set_indexr&   r'   rG   r^   )r<   r=   r>   r   ru   r@   rJ   rK   s           r   test_multiindex_one_keyr      s    
  
!!!,-	.	8	8#s	DB!)xPMZZ_&&7- ' F 456@@#sLH&+r   c                 ,   [         R                  " S5        S n[        SSSS./5      R                  SS/5      nX US	.n[         R                  " [
        S
S9   UR                  SS/5      R                  USUS9  S S S 5        g ! , (       d  f       g = f)Nr   c                     gr
   r   r,   s     r   r   ;test_multiindex_multi_key_not_supported.<locals>.numba_func   r   r   r   rt   r   r   r|   rd   r   zmore than 1 grouping labelsr   r?   )r#   r$   r   r   r%   NotImplementedErrorr&   r'   )r<   r=   r>   r   ru   r@   s         r   'test_multiindex_multi_key_not_supportedr      s    
  
!!!,-	.	8	8#s	DB!)xPM	*2O	P


C:((wm 	) 	
 
Q	P	Ps   #B
Bc                    [         R                  " S5        U u  p[        / SQ/ SQ[        R                  R                  S5      R                  S5      [        R                  R                  S5      R                  S5      S.5      nUR                  SS/5      nUR                  " U4S	S0UD6nUR                  " U4S	S
0UD6n[        R                  " XV5        g )Nr   foobarr   r   r   r   r   r   oner   twothreer   r   r   r   rt      r|   rd   re   Dr|   rd   r!   rE   r#   r$   r   nprandomdefault_rngstandard_normalr&   r'   rG   r^   )rh   	reductionri   ru   gbres_aggexpected_aggs          r   test_multilabel_numba_vs_cythonr      s    
 2I	IM&&q)99!<&&q)99!<		

B 
S#J	Bll9?W??G<<	E(EfEL'0r   c                     [         R                  " S5        [        / SQ/ SQ[        R                  R                  S5      R                  S5      [        R                  R                  S5      R                  S5      S.5      n U R                  SS/5      nUR                  S	 SS
9nUR                  S SS
9n[        R                  " X#5        g )Nr   r   r   rt   r   r   r|   rd   c                 j    X R                  5       -
  U R                  5       U R                  5       -
  -  $ rm   ra   rb   r,   s     r   rB   5test_multilabel_udf_numba_vs_cython.<locals>.<lambda>  s#    v

4

9TUr   r    c                 j    X R                  5       -
  U R                  5       U R                  5       -
  -  $ rm   r   r   s    r   rB   r     s"    1uuw;1557QUUW#45r   rE   r   )ru   r   rJ   rK   s       r   #test_multilabel_udf_numba_vs_cythonr   
  s    
 	IM&&q)99!<&&q)99!<		

B 
S#J	B\\U  F ||5h  H &+r   )numpyr   r#   pandas.errorsr   pandasr   r   r   pandas._testing_testingrG   mark
single_cpu
pytestmarkr)   r1   filterwarningsparametrizerL   rZ   r_   rj   rw   r   r   r   r   r   r   r   r   r   <module>r      s     ( 
 [[##
R"W" H%u.+'>?dE]3& 4 @ / &
&4 H%u.+'>?#& @ / &#&L," %uen5(IJ--"-$
,,8 H%, &,
1",r   