
    Mh>                        S SK rS SKrS SKJr  S SKJs  Jr  S SK	J
r
JrJrJr  S SKJr  \R"                  R$                  r\R(                  " SS/S9S 5       r\R(                  " S0 /S	0 /S
0 /S0 /S0 /S0 /SSS 0/S0 /SSS 0//	S9S 5       r\R.                  " S5      \R"                  R1                  S5       " S S5      5       5       r\R.                  " S5       " S S5      5       r\R.                  " S5      S 5       r\R.                  " S5      S 5       r\R.                  " S5      \R"                  R:                  \R"                  R1                  S5       " S S5      5       5       5       r\R.                  " S5      S 5       rg)    N)NumbaUtilError)	DataFrameSeriesoption_contextto_datetimesingletable)paramsc                     U R                   $ )z3method keyword in rolling/expanding/ewm constructorparamrequests    P/var/www/html/env/lib/python3.13/site-packages/pandas/tests/window/test_numba.pymethodr      s     ==    summeanmedianmaxminvarddofstdc                     U R                   $ Nr   r   s    r   $arithmetic_numba_supported_operatorsr      s     ==r   numbaignorec                   T   \ rS rSr\R
                  R                  SSS/5      S 5       r\R
                  R                  S\" \	R                  " S5      5      \" SSSS\	R                  \	R                  S	S
S
S
/
SSSS\	R                  \	R                  SS
S
S
/
\	R                  \	R                  SSSSSSSS/
/5      R                  \" \" S5      SS9\" SSS\	R                  SSSS
/5      \" SSS\	R                  SSSS
/5      /5      S 5       r\R
                  R                  S\" \	R                  " S5      5      \" \" S5      SS9/5      S 5       r\R
                  R                  SSS/5      S 5       r\R
                  R                  SSS
SS./S0 //5      S 5       rS rSrg)
TestEngine)   jitTFc                 $   S nU(       a  SS K nUR                  U5      nX#US.n	Sn
[        [        S5      5      nUR	                  SXVS9R                  XzSU	S	S
9nUR	                  SXVS9R                  USU
S	S9n[        R                  " X5        g )Nc                 R    SnU H  nX#-  nM	     [         R                  " U 5      U-   $ )Nr   npr   )xargsarg_sumargs       r   f0TestEngine.test_numba_vs_cython_apply.<locals>.f/   s+    G 771:''r   r   nogilparallelnopython   
   r3   )centerstepr   T)r)   engineengine_kwargsrawcython)r7   r)   r9   r   r#   r   rangerollingapplytmassert_series_equal)selfr#   r/   r0   r1   r5   r6   r,   r   r8   r)   sresultexpecteds                 r   test_numba_vs_cython_apply%TestEngine.test_numba_vs_cython_apply-   s    	( 		!A"'8T591V7==4 > 
 99Qv99??hTt @ 
 	v0r   data               foo)name   r4      r3   c                     Uu  pxX#US.n	UR                  SUS9n
[        X5      " SSU	S.UD6n[        X5      " SSS0UD6n[        R                  " X5        g )	Nr.   rK   r6   r   r7   r8   r7   r:    )r=   getattrr?   assert_equal)rA   rG   r/   r0   r1   r   r6   r   kwargsr8   rollrC   rD   s                r   $test_numba_vs_cython_rolling_methods/TestEngine.test_numba_vs_cython_rolling_methodsF   sm    2 >"'8T||AD|)& 
-
;A
 4(CCFC
)r   c                     Uu  pgX#US.n[        [        R                  " S5      5      nUR                  5       n	[	        X5      " SSUS.UD6n
[	        X5      " SSS0UD6n[
        R                  " X5        g )Nr.   rH   r   rS   r7   r:   rT   )r   r'   eye	expandingrU   r?   rV   )rA   rG   r/   r0   r1   r   r   rW   r8   expandrC   rD   s               r   &test_numba_vs_cython_expanding_methods1TestEngine.test_numba_vs_cython_expanding_methodsj   sy     >"'8T#!( 
-
;A
 6*E(EfE
)r   c                    S nS nU(       a&  SS K nUR                  U5      nUR                  U5      nX#US.n	[        [        S5      5      R	                  SUS9n
U
R                  USU	S	S
9nU
R                  USS	S9n[        R                  " X5        U
R                  USU	S	S
9nU
R                  USS	S9n[        R                  " X5        U
R                  USU	S	S
9nU
R                  USS	S9n[        R                  " X5        g )Nc                 4    [         R                  " U 5      S-   $ )NrJ   r&   r(   s    r   func_1+TestEngine.test_cache_apply.<locals>.func_1   s    771:>!r   c                 4    [         R                  " U 5      S-  $ )NrH   )r'   r   rc   s    r   func_2+TestEngine.test_cache_apply.<locals>.func_2   s    66!9q= r   r   r.   r4   r3   rR   r   T)r7   r8   r9   r:   r7   r9   r;   )rA   r#   r/   r0   r1   r6   rd   rg   r   r8   rX   rC   rD   s                r   test_cache_applyTestEngine.test_cache_apply|   s   	"	! YYv&FYYv&F"'8TeBi (((67-T  
 ::fX4:@
v07-T  
 ::fX4:@
v07-T  
 ::fX4:@
v0r   zwindow,window_kwargsr=   r   )windowmin_periodsr]   c                 V   S nXSUS.n[        S/ SQ05      n	[        X5      " SSU0UD6R                  USSUSS	9n
[        S/ S
Q05      n[        R                  " X5        [        X5      " SSU0UD6R                  USSUSS	9n
[        S/ SQ05      n[        R                  " X5        g )Nc                 4    [         R                  " U 5      U-   $ r   r'   r   )valuesr(   s     r   add,TestEngine.test_dont_cache_args.<locals>.add   s    66&>A%%r   r1   r/   r0   valuer   r   r   r   Tr   )rP   )r9   r7   r8   r)         ?rx   rx   r2          @rz   rz   rT   )r   rU   r>   r?   assert_frame_equal)rA   rl   window_kwargsr/   r0   r1   r   rr   r8   dfrC   rD   s               r   test_dont_cache_argsTestEngine.test_dont_cache_args   s    	& &.8T+,$DFDmDJJT'T K 
 g78
f/$DFDmDJJT'T K 
 g78
f/r   c                 x  ^^^ 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5      R                  USSUS	9n[        S/ S
Q05      n[        R                  " XE5        SmTTTS.nUR                  S5      R                  USSUS	9n[        S/ SQ05      n[        R                  " XE5        g )NFTc                    > TT-   T-   $ r   rT   )r(   r/   r1   r0   s    r   func6TestEngine.test_dont_cache_engine_kwargs.<locals>.func   s    8#h..r   rt   ru   rv   rP   r   )r9   r7   r8   ry   rw   r   r=   r>   r?   r{   )	rA   r   r8   r}   rC   rD   r/   r1   r0   s	         @@@r   test_dont_cache_engine_kwargs(TestEngine.test_dont_cache_engine_kwargs   s     	/ &.8T+,A$$d7- % 
 g78
f/%-8TA$$d7- % 
 g78
f/r   rT   N)__name__
__module____qualname____firstlineno__pytestmarkparametrizerE   r   r'   r\   naninfTr   r<   rY   r_   rj   r~   r   __static_attributes__rT   r   r   r!   r!   )   s    [[UT5M21 310 [[bffQi 1aAq!<1aAq!<VVRVVQ1aAq!< a58%(BB1a34BBAq!45	
 *! *( [[266!9%veAhU'CD** [[UT5M2!1 3!1F [[1Q78"	
00,0r   r!   c                      \ rS rSr\R
                  R                  SS S /SS/S9\R
                  R                  SS	S
/5      S 5       5       r\R
                  R                  SS S /SS/S9\R
                  R                  SS	S
/5      S 5       5       r\R
                  R                  SSS/5      \R
                  R                  SS	S
/5      S 5       5       r	\R
                  R                  SSS/5      S 5       r
Srg)TestEWM   grouperc                     U $ r   rT   rc   s    r   <lambda>TestEWM.<lambda>       ar   c                 $    U R                  S5      $ NAgroupbyrc   s    r   r   r          199S>r   Noner   )idsr   r   r   c                     [        / SQ[        S5      S.5      n[        R                  " [        SS9   [        U" U5      R                  SS9U5      " SS	9  S S S 5        g ! , (       d  f       g = f)
Nabr   r   rJ   r   Bzengine must be eithermatchrx   comrM   r7   r   r<   r   raises
ValueErrorrU   ewmrA   r   r   r}   s       r   test_invalid_engineTestEWM.test_invalid_engine   sR    
 1aAB]]:-DEGBKOOO,f5UC FEEs   $A  
A.c                     U $ r   rT   rc   s    r   r   r      r   r   c                 $    U R                  S5      $ r   r   rc   s    r   r   r      r   r   c                     [        / SQ[        S5      S.5      n[        R                  " [        SS9   [        U" U5      R                  SS9U5      " SS	S
0S9  S S S 5        g ! , (       d  f       g = f)Nr   rJ   r   zcython engine does notr   rx   r   r:   r1   TrS   r   r   s       r   test_invalid_engine_kwargs"TestEWM.test_invalid_engine_kwargs   s\    
 1aAB]]:-EFGBKOOO,f5
D/A GFFs   'A##
A1c                    [        S[        S5      05      nUS:X  a  S nO
/ SQUS'   S nUS:X  a  S	nU" U5      R                  S
XvS9n	X4US.n
[        X5      " SU
S9n[        X5      " SS9n[        R
                  " X5        g )Nr   rJ   r   c                     U $ r   rT   rc   s    r   r   .TestEWM.test_cython_vs_numba.<locals>.<lambda>       r   r   r   c                 $    U R                  S5      $ r   r   rc   s    r   r   r          		#r   r   Trx   )r   adjust	ignore_nar.   r   rS   r:   r   )r   r<   r   rU   r?   r{   )rA   r   r   r/   r0   r1   r   r   r}   r   r8   rC   rD   s                r   test_cython_vs_numbaTestEWM.test_cython_vs_numba   s    
 U1X'f!G*BsG.GU?Fbkoo#foJ"'8T%WMR3'x8
f/r   c                 
   [        S/ SQ05      nUS:X  a  S nO
S n/ SQUS'   Sn[        / S	Q5      nU" U5      R                  US
XXS9n	X#US.n
U	R                  SU
S9nU	R                  SS9n[        R
                  " X5        g )Nr   )r   r   rP   rP   r3   r3   r   c                     U $ r   rT   rc   s    r   r   4TestEWM.test_cython_vs_numba_times.<locals>.<lambda>	  r   r   c                 $    U R                  S5      $ r   r   rc   s    r   r   r     r   r   )r   r   r   r   r   r   r   z23 days)
2020-01-01r   z
2020-01-02z
2020-01-10z
2020-02-23z
2020-01-03T)halflifer   r   timesr.   r   rS   r:   r   )r   r   r   r   r?   r{   )rA   r   r/   r0   r1   r   r}   r   r   r   r8   rC   rD   s                r   test_cython_vs_numba_times"TestEWM.test_cython_vs_numba_times  s     /01f!G.G4BsG	
 bkoodi  
 #(8TF8888,
f/r   rT   N)r   r   r   r   r   r   r   r   r   r   r   r   rT   r   r   r   r      s%   [[K!9:@S   [[X7D 8D
 [[K!9:@S   [[X7 8 [[Y(;<[[X70 8 =0& [[Y(;<0 =0r   r   c                  ,   S n [        [        S5      5      n[        SS5         UR                  S5      R	                  U S SS9nS S S 5        UR                  S5      R	                  U SSS9n[
        R                  " UW5        g ! , (       d  f       NF= f)Nc                 4    [         R                  " U 5      S-   $ )Nr3   r&   rc   s    r   r,   !test_use_global_config.<locals>.f'  s    wwqzA~r   r4   zcompute.use_numbaTr3   ri   r   )r   r<   r   r=   r>   r?   r@   )r,   rB   rC   rD   s       r   test_use_global_configr   %  s~     	uRyA	+T	21##Ad#= 
3yy|!!!G!>H8V, 
3	2s   !B
Bc                      [         R                  " [        SS9   [        [	        S5      5      R                  S5      R                  S SS0SSS9  S S S 5        g ! , (       d  f       g = f)	Nz"numba does not support kwargs withr   rP   c                     U $ r   rT   rc   s    r   r   .test_invalid_kwargs_nopython.<locals>.<lambda>5  s    ar   r   r   T)rW   r7   r9   )r   r   r   r   r<   r=   r>   rT   r   r   test_invalid_kwargs_nopythonr   1  sR    	~-Q	RuQx  #))ad 	* 	
 
S	R	Rs   7A
A(c                   $   \ rS rSrS rS rS rS rS rS r	\
R                  R                  S\R                  " S	5      \R                  " S
5      \R                  " S5      /5      \
R                  R                  SSS/5      S 5       5       rSrg)TestTableMethodi9  c                     S n[         R                  " [        SS9   [        [	        S5      5      R                  SSS9R                  USSS	9  S S S 5        g ! , (       d  f       g = f)
Nc                 2    [         R                  " U SS9S-   $ Nr   axisrP   rp   rc   s    r   r,   7TestTableMethod.test_table_series_valueerror.<locals>.f?      66!!$q((r   z1method='table' not applicable for Series objects.r   rP   r	   )r   r   Tri   )r   r   r   r   r<   r=   r>   )rA   r,   s     r   test_table_series_valueerror,TestTableMethod.test_table_series_valueerror>  s`    	) ]]Q
 58$$Qw$7=='t > 
 
 
s   2A
A&c                    Uu  pxX#US.n	[        [        R                  " S5      5      n
U
R                  SSUSUS9nUS;   a:  [        R
                  " [        U S3S	9   [        X5      " SU	S
S.UD6  S S S 5        g U
R                  SSUSUS9n[        X5      " SU	S
S.UD6n[        X5      " SU	S
S.UD6n[        R                  " X5        g ! , (       d  f       g = f)Nr.   rK   r3   r	   r   r   r   rm   r6   r   r    not supportedr   r   r8   r7   r   rT   )
r   r'   r\   r=   r   r   NotImplementedErrorrU   r?   r{   )rA   r   r/   r0   r1   r   r6   r   rW   r8   r}   
roll_tableroll_singlerC   rD   s                  r   !test_table_method_rolling_methods1TestTableMethod.test_table_method_rolling_methodsI  s    >"'8Trvvay!ZZ'!RVZW
^#2VHN:ST
+ "/CI UT
 **(14 % K Z0 +G?EF {3 +G?EH !!&3 UTs   C
Cc                 
   X#US.nS n[        [        R                  " S5      5      nUR                  SSUSUS9R	                  USUS	S
9n	UR                  SSUSUS9R	                  USUS	S
9n
[
        R                  " X5        g )Nr.   c                 2    [         R                  " U SS9S-   $ r   rp   rc   s    r   r,   :TestTableMethod.test_table_method_rolling_apply.<locals>.fl  r   r   rK   r3   r	   r   r   Tr   r9   r8   r7   r   )r   r'   r\   r=   r>   r?   r{   )rA   r   r/   r0   r1   r6   r8   r,   r}   rC   rD   s              r   test_table_method_rolling_apply/TestTableMethod.test_table_method_rolling_applyi  s    "'8T	) rvvay!gDad  

%t=%
I 	 ::hTqt  

%t=%
I 	 	f/r   c                     S n[        / SQ/ SQ/ SQ/ SQ/5      nUR                  SSSUS	9R                  US
SS9n[        / SQ/ SQ/ SQ/ SQ/5      S S U2   n[        R                  " XE5        g )Nc                     [         R                  " SU R                  S   45      nU S S 2S S24   U S S 2S4   -  R                  SS9U S S 2S4   R                  5       -  US S 2S S24'   U$ )NrP   r3   r   r   )r'   onesshaper   )r(   arrs     r   weighted_meanNTestTableMethod.test_table_method_rolling_weighted_mean.<locals>.weighted_meany  sl    ''1aggaj/*CArrE(Qq!tW,11q19AadGKKMIC2A2JJr   )rP   r3   g333333?)r3   rK   g?)rK   rJ   g?)rJ   rH   gffffff?r3   r	   r   )r   rm   r6   Tr   r9   r7   )rx   rz   rx   )g?rz   rx   )gk}
@gk}@rx   )g1?rI   rx   r   )rA   r6   r   r}   rC   rD   s         r   'test_table_method_rolling_weighted_mean7TestTableMethod.test_table_method_rolling_weighted_meanx  s    	
 [+{KLAg14HNNtG O 
 )"	
 D& 	f/r   c                     X#US.nS n[        [        R                  " S5      5      nUR                  SUS9R	                  USUSS9nUR                  S	US9R	                  USUSS9n	[
        R                  " X5        g )
Nr.   c                 2    [         R                  " U SS9S-   $ r   rp   rc   s    r   r,   <TestTableMethod.test_table_method_expanding_apply.<locals>.f  r   r   rK   r	   r   r   Tr   r   r   )r   r'   r\   r]   r>   r?   r{   )
rA   r   r/   r0   r1   r8   r,   r}   rC   rD   s
             r   !test_table_method_expanding_apply1TestTableMethod.test_table_method_expanding_apply  s    "'8T	) rvvay!W48>>4}W ? 
 <<xd<;AA4}W B 
 	f/r   c                    Uu  pgX#US.n[        [        R                  " S5      5      n	U	R                  SUS9n
US;   a:  [        R
                  " [        U S3S9   [        X5      " SUSS	.UD6  S S S 5        g U	R                  S
US9n[        X5      " SUSS	.UD6n[        X5      " SUSS	.UD6n[        R                  " X5        g ! , (       d  f       g = f)Nr.   rK   r	   r   r   r   r   r   r   r   rT   )
r   r'   r\   r]   r   r   r   rU   r?   r{   )rA   r   r/   r0   r1   r   r   rW   r8   r}   expand_tableexpand_singlerC   rD   s                 r   #test_table_method_expanding_methods3TestTableMethod.test_table_method_expanding_methods  s     >"'8Trvvay!||7|>^#2VHN:ST- "/CI UT
 LLtLDM\2 +G?EF }5 +G?EH !!&3 UTs   C
CrG   rK   )r3   rK   )rK   r3   r   r   r   c                     XEUS.n[        U5      n[        UR                  SSUS9U5      " USS9n	[        UR                  SSUS9U5      " USS9n
[        R                  " X5        g )Nr.   rP   r	   )r   r   r   r   r   r   )r   rU   r   r?   r{   )rA   rG   r   r   r/   r0   r1   r8   r}   rC   rD   s              r   test_table_method_ewm%TestTableMethod.test_table_method_ewm  ss     #(8Tt_AgDA6J'
 266at6DfM'
 	f/r   rT   N)r   r   r   r   r   r   r   r   r   r  r   r   r   r'   r\   r   r  r   rT   r   r   r   r   9  s    
	4@00(040 [[VbffQi"''&/%RS[[X70 8 T0r   r   c                      [        S/ SQ05      n [        R                  " S5         U R                  R	                  S5      R                  [        R                  SSS9  S S S 5        g ! , (       d  f       g = f)Ncol1)rP   r3   rK   rJ   rH   Fr3   Tr   r   )r   r?   assert_produces_warningr  r=   r>   r'   prod)r}   s    r   test_npfunc_no_warningsr    sQ    	FO,	-B		#	#E	*
  d7 C 
+	*	*s   9A((
A6) numpyr'   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   pandas._testing_testingr?   r   
single_cpu
pytestmarkfixturer   r   
skip_if_nofilterwarningsr!   r   r   r   slowr   r  rT   r   r   <module>r     s     ( ) )  [[##
 '*+ ,
 			2						
 wH%i0 i0 & i0X wI0 I0 I0X w- - w
 
 wH%C0 C0 &  C0L wD Dr   