
    m*i?                        S SK rS SKrS SKJ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  S SKJr  \R*                  R,                  /r\R0                  " S5      r\R5                  \R*                  R7                  \" \R8                  5      \" S5      :H  =(       a    \" 5       S\R8                   3S	95        \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*                  RC                  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*                  RL                  \R*                  RC                  S5       " S S5      5       5       5       r'\
R@                  " S5      S  5       r(g)!    N)is_platform_arm)NumbaUtilError)	DataFrameSeriesoption_contextto_datetime)Versionnumbaz0.61z&Segfaults on ARM platforms with numba )reasonsingletable)paramsc                     U R                   $ )z3method keyword in rolling/expanding/ewm constructorparamrequests    ^/var/www/html/land-doc-ocr/venv/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   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)
TestEngine3   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>.f9   s+    G 771:''r   r   nogilparallelnopython   
   r6   )centerstepr
   T)r,   engineengine_kwargsrawcython)r:   r,   r<   r
   r&   r   rangerollingapplytmassert_series_equal)selfr&   r2   r3   r4   r8   r9   r/   r
   r;   r,   sresultexpecteds                 r   test_numba_vs_cython_apply%TestEngine.test_numba_vs_cython_apply7   s    	( 		!A"'8T591V7==4 > 
 99Qv99??hTt @ 
 	v0r   data               foo)name   r7      r6   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 )	Nr1   rN   r9   r
   r:   r;   r:   r=    )r@   getattrrB   assert_equal)rD   rJ   r2   r3   r4   r!   r9   r   kwargsr;   rollrF   rG   s                r   $test_numba_vs_cython_rolling_methods/TestEngine.test_numba_vs_cython_rolling_methodsP   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 )Nr1   rK   r
   rV   r:   r=   rW   )r   r*   eye	expandingrX   rB   rY   )rD   rJ   r2   r3   r4   r!   r   rZ   r;   expandrF   rG   s               r   &test_numba_vs_cython_expanding_methods1TestEngine.test_numba_vs_cython_expanding_methodst   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-   $ )NrM   r)   r+   s    r   func_1+TestEngine.test_cache_apply.<locals>.func_1   s    771:>!r   c                 4    [         R                  " U 5      S-  $ )NrK   )r*   r   rf   s    r   func_2+TestEngine.test_cache_apply.<locals>.func_2   s    66!9q= r   r   r1   r7   r6   rU   r
   T)r:   r;   r<   r=   r:   r<   r>   )rD   r&   r2   r3   r4   r9   rg   rj   r
   r;   r[   rF   rG   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   r4   r2   r3   valuer   r   r   r   Tr
   )rS   )r<   r:   r;   r,         ?r{   r{   r5          @r}   r}   rW   )r   rX   rA   rB   assert_frame_equal)rD   ro   window_kwargsr2   r3   r4   r   ru   r;   dfrF   rG   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    rW   )r+   r2   r4   r3   s    r   func6TestEngine.test_dont_cache_engine_kwargs.<locals>.func   s    8#h..r   rw   rx   ry   rS   r
   )r<   r:   r;   r|   rz   r   r@   rA   rB   r~   )	rD   r   r;   r   rF   rG   r2   r4   r3   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   rW   N)__name__
__module____qualname____firstlineno__pytestmarkparametrizerH   r   r*   r_   naninfTr   r?   r\   rb   rm   r   r   __static_attributes__rW   r   r   r$   r$   3   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    rW   rf   s    r   <lambda>TestEWM.<lambda>       ar   c                 $    U R                  S5      $ NAgroupbyrf   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   rM   r   Bzengine must be eithermatchr{   comrP   r:   r   r?   r   raises
ValueErrorrX   ewmrD   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    rW   rf   s    r   r   r      r   r   c                 $    U R                  S5      $ r   r   rf   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   rM   r   zcython engine does notr   r{   r   r=   r4   TrV   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   rM   r   c                     U $ r    rW   rf   s    r   r   .TestEWM.test_cython_vs_numba.<locals>.<lambda>       r   r   r   c                 $    U R                  S5      $ r   r   rf   s    r   r   r         		#r   r   Tr{   )r   adjust	ignore_nar1   r
   rV   r=   r   )r   r?   r   rX   rB   r~   )rD   r   r   r2   r3   r4   r   r   r   r   r;   rF   rG   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   rS   rS   r6   r6   r   c                     U $ r    rW   rf   s    r   r   4TestEWM.test_cython_vs_numba_times.<locals>.<lambda>  r   r   c                 $    U R                  S5      $ r   r   rf   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   timesr1   r
   rV   r=   r   )r   r   r   r   rB   r~   )rD   r   r2   r3   r4   r   r   r   r   r   r;   rF   rG   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   rW   N)r   r   r   r   r   r   r   r   r   r   r   r   rW   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-   $ )Nr6   r)   rf   s    r   r/   !test_use_global_config.<locals>.f1  s    wwqzA~r   r7   zcompute.use_numbaTr6   rl   r
   )r   r?   r   r@   rA   rB   rC   )r/   rE   rF   rG   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   rS   c                     U $ r    rW   rf   s    r   r   .test_invalid_kwargs_nopython.<locals>.<lambda>?  s    ar   r   r
   T)rZ   r:   r<   )r   r   r   r   r?   r@   rA   rW   r   r   test_invalid_kwargs_nopythonr   ;  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)TestTableMethodiC  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   axisrS   rs   rf   s    r   r/   7TestTableMethod.test_table_series_valueerror.<locals>.fI      66!!$q((r   z1method='table' not applicable for Series objects.r   rS   r   )r   r
   Trl   )r   r   r   r   r?   r@   rA   )rD   r/   s     r   test_table_series_valueerror,TestTableMethod.test_table_series_valueerrorH  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)Nr1   rN   r6   r   r   r   r   rp   r9   r   r    not supportedr   r
   r;   r:   r   rW   )
r   r*   r_   r@   r   r   NotImplementedErrorrX   rB   r~   )rD   r   r2   r3   r4   r!   r9   r   rZ   r;   r   
roll_tableroll_singlerF   rG   s                  r   !test_table_method_rolling_methods1TestTableMethod.test_table_method_rolling_methodsS  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 )Nr1   c                 2    [         R                  " U SS9S-   $ r   rs   rf   s    r   r/   :TestTableMethod.test_table_method_rolling_apply.<locals>.fv  r   r   rN   r6   r   r   r   Tr
   r<   r;   r:   r   )r   r*   r_   r@   rA   rB   r~   )rD   r   r2   r3   r4   r9   r;   r/   r   rF   rG   s              r   test_table_method_rolling_apply/TestTableMethod.test_table_method_rolling_applys  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$ )NrS   r6   r   r   )r*   onesshaper   )r+   arrs     r   weighted_meanNTestTableMethod.test_table_method_rolling_weighted_mean.<locals>.weighted_mean  sl    ''1aggaj/*CArrE(Qq!tW,11q19AadGKKMIC2A2JJr   )rS   r6   g333333?)r6   rN   g?)rN   rM   g?)rM   rK   gffffff?r6   r   r   )r   rp   r9   Tr
   r<   r:   )r{   r}   r{   )g?r}   r{   )gk}
@gk}@r{   )g1?rL   r{   r   )rD   r9   r   r   rF   rG   s         r   'test_table_method_rolling_weighted_mean7TestTableMethod.test_table_method_rolling_weighted_mean  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 )
Nr1   c                 2    [         R                  " U SS9S-   $ r   rs   rf   s    r   r/   <TestTableMethod.test_table_method_expanding_apply.<locals>.f  r   r   rN   r   r   r   Tr
   r   r   )r   r*   r_   r`   rA   rB   r~   )
rD   r   r2   r3   r4   r;   r/   r   rF   rG   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)Nr1   rN   r   r   r   r   r   r
   r   r   rW   )
r   r*   r_   r`   r   r   r   rX   rB   r~   )rD   r   r2   r3   r4   r!   r   rZ   r;   r   expand_tableexpand_singlerF   rG   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rJ   rN   )r6   rN   )rN   r6   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 )Nr1   rS   r   )r   r   r   r
   r   r   )r   rX   r   rB   r~   )rD   rJ   r   r   r2   r3   r4   r;   r   rF   rG   s              r   test_table_method_ewm%TestTableMethod.test_table_method_ewm  ss     #(8Tt_AgDA6J'
 266at6DfM'
 	f/r   rW   N)r   r   r   r   r   r   r   r   r   r  r   r   r   r*   r_   r   r  r   rW   r   r   r   r   C  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)rS   r6   rN   rM   rK   Fr6   Tr
   r   )r   rB   assert_produces_warningr  r@   rA   r*   prod)r   s    r   test_npfunc_no_warningsr    sQ    	FO,	-B		#	#E	*
  d7 C 
+	*	*s   9A((
A6))numpyr*   r   pandas.compatr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   pandas._testing_testingrB   pandas.util.versionr	   r   
single_cpu
pytestmarkimportorskipr
   appendskipif__version__fixturer   r!   
skip_if_nofilterwarningsr$   r   r   r   slowr   r  rW   r   r   <module>r$     s8     ) ( ) )   'kk$$%
G$ 
  
KK!!"gfo5K/:K78I8I7JK   '*+ ,
 			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   