
    Mh&                         S SK rS SKrS SKJrJrJrJrJrJ	r	J
r
JrJr  S SKJr  S SKJr  \R$                  R'                  S5      rS r\R$                  R-                  S/ SQ5      S 5       rS	 r\R$                  R-                  S
SS/5      S 5       rS rS rS rS rS rS r\R$                  R-                  SSSS0/SS//5      S 5       r S r!S r"S r#S r$S r%S r&\R$                  R-                  S/ S Q5      S! 5       r'S" r(S# r)S$ r*g)%    N)		DataFrameIndex
MultiIndexSeries	Timestampconcat
date_rangeisnanotna)offsetsz3ignore:.*(empty slice|0 for slice).*:RuntimeWarningc                 P    U [         R                  " U 5         R                  5       $ N)npisfinitemeanxs    P/var/www/html/env/lib/python3.13/site-packages/pandas/tests/window/test_apply.pyfr      s    R[[^!!##    bad_raw)N   r   c                     [         R                  " [        SS9   [        [	        S5      5      R                  S5      R                  [        U S9  S S S 5        g ! , (       d  f       g = f)Nz'raw parameter must be `True` or `False`match   r   raw)pytestraises
ValueErrorr   rangerollingapplylen)r   s    r   test_rolling_apply_invalid_rawr&      sE    	z)R	SuQx  #))#7); 
T	S	S   6A
A'c                 n   U u  p[        / SQ5      nUR                  S5      R                  [        R                  XS9nUR                  5       R                  5       (       d   eUR                  SSS9R                  [        R                  XS9n[        / SQ[        S9n[        R                  " XE5        g )N)r      r      
   enginer   r   min_periods)r   r      r+   dtype)
r   r#   r$   r   sumr
   allfloattmassert_almost_equal)engine_and_rawr-   r   valsresultexpecteds         r    test_rolling_apply_out_of_boundsr<   $   s     KF,D\\"##BFF6#CF;;=\\"!\,22266&2RFm51H6,r   windowr)   2sc           	      :  ^ [        [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R                  SSSS9S.[        SSSS	9S
9mU4S jnTR                  U 5      R                  USS9nTR                  SS  R                  T5      n[        R                  " X#5        [        R                  " [        5         TR                  U 5      R                  USS9  S S S 5        g ! , (       d  f       g = f)Nr)      r   r+   )sizeAB20130101speriodsfreqindexc                    > U R                   S   TR                   S   :X  a  [        R                  $ U R                  S   $ )Nr   )rK   r   naniloc)r   dfs    r   r   1test_rolling_apply_with_pandas_objects.<locals>.f?   s2    771:!$66Mvvbzr   Fr   T)r   r   randomdefault_rngstandard_normalintegersr	   r#   r$   rO   reindex_liker6   assert_frame_equalexternal_error_raisedAttributeError)r=   r   r:   r;   rP   s       @r   &test_rolling_apply_with_pandas_objectsrZ   2   s     
&&q)99!<&&q)221bq2A	
 QS9
B
 ZZ%%aU%3Fwwqr{''+H&+		!	!.	1


6   - 
2	1	1s   # D
Dc                    U u  p#[        / SS9nUR                  SUS9R                  S X#S9n[        R                  " XT5        [        / SQ5      nUR                  SS	US
9R                  S X#S9n[        / SQ5      S S U2   n[        R                  " XT5        UR                  SS	US
9R                  [
        X#S9n[        R                  " XT5        g )Nfloat64r1   r+   )stepc                 "    U R                  5       $ r   )r   r   s    r   <lambda>$test_rolling_apply.<locals>.<lambda>Q   s
    !&&(r   r,   )NNNr)   r   r/   r]   c                     [        U 5      $ r   )r%   r   s    r   r_   r`   X   s    #a&r   )      ?       @rd   )r   r#   r$   r6   assert_series_equalr%   )r8   r]   r-   r   r;   r:   rF   s          r   test_rolling_applyrf   L   s     KFb	*Hbt,226 3 F 6, 	!"AYYqadY399 : F o&vv.H6,YYqadY399#f9VF6,r   c                    U u  p[        [        SSSS9[        S5      S.5      R                  S5      S-  nUR	                  SS	9nUR	                  S
S	9nUR                  S XS9nUR                  S XS9n[        R                  " Xg5        g )NrE   r@   rF   rG   rB   rC   r)   r   )r=   1sc                     gNr    r   s    r   r_    test_all_apply.<locals>.<lambda>m   s    qr   r,   c                     grj   rk   r   s    r   r_   rl   n   s    !r   )r   r	   r"   	set_indexr#   r$   r6   rW   )r8   r-   r   rP   errr:   r;   s           r   test_all_applyrq   a   s     KF 	Z=E!HM	

)C.
	  
1	B


$
AWW[W9FxxFx<H&+r   c                 f   U u  p[        S[        S5      05      n[        S5      [        S5      [        S5      [        S5      [        S5      /Ul        S nUR	                  S	S
S9R                  XAUS9nUR                  5       nSUS'   [        R                  " XV5        UR	                  SS
S9R                  XAUS9nUR                  5       nSUS'   [        R                  " XV5        UR	                  SS
S9R                  XAUS9nUR                  5       nSUS'   [        R                  " XV5        g )NrD   r@   z20130101 09:00:00z20130101 09:00:02z20130101 09:00:03z20130101 09:00:05z20130101 09:00:06c                     grj   rk   r   s    r   r_   #test_ragged_apply.<locals>.<lambda>~   s    !r   rh   r   r=   r/   r,   rc   r>   5s)	r   r"   r   rK   r#   r$   copyr6   rW   )r8   r-   r   rP   r   r:   r;   s          r   test_ragged_applyrx   r   s'    KF	Cq?	#B%&%&%&%&%&BH 	AZZtZ399!PS9TFwwyHHSM&+ZZtZ399!PS9TFwwyHHSM&+ZZtZ399!PS9TFwwyHHSM&+r   c                      [         R                  " [        SS9   [        [	        S5      5      R                  S5      R                  S SS9  S S S 5        g ! , (       d  f       g = f)Nz)engine must be either 'numba' or 'cython'r   r   c                     U $ r   rk   r   s    r   r_   %test_invalid_engine.<locals>.<lambda>       Ar   foo)r-   r   r    r!   r   r"   r#   r$   rk   r   r   test_invalid_enginer      sE    	z)T	UuQx  #))+e)D 
V	U	Us   3A
A$c                      [         R                  " [        SS9   [        [	        S5      5      R                  S5      R                  S SSS0S9  S S S 5        g ! , (       d  f       g = f)	Nz+cython engine does not accept engine_kwargsr   r   c                     U $ r   rk   r   s    r   r_   3test_invalid_engine_kwargs_cython.<locals>.<lambda>   s    ar   cythonnopythonF)r-   engine_kwargsr~   rk   r   r   !test_invalid_engine_kwargs_cythonr      sQ    	z)V	WuQx  #))U8K 	* 	
 
X	W	Wr'   c                      [         R                  " [        SS9   [        [	        S5      5      R                  S5      R                  S SSS9  S S S 5        g ! , (       d  f       g = f)Nz.raw must be `True` when using the numba enginer   r   c                     U $ r   rk   r   s    r   r_   (test_invalid_raw_numba.<locals>.<lambda>   r|   r   Fnumba)r   r-   r~   rk   r   r   test_invalid_raw_numbar      sO    	J
 	uQx  #))+5)Q
 
 
s   4A
A%args_kwargsparr+   )r+   c                    S n[        SS/SS/S.5      n[        SS/5      n[        SS/SS//US	9nUR                  S5      R                  XS
   U S   S9n[        R
                  " XT5        [        R                  " SS/SS /S9n[        SS/USS9nUR                  S5      S   R                  S5      nUR                  XS
   U S   S9n[        R                  " XT5        g )Nc                 2    [         R                  " X-   5      $ r   )r   r3   )r   r   s     r   numpysum0test_rolling_apply_args_kwargs.<locals>.numpysum   s    vvagr   r   r)   )grar   r   g      &@g      (@)columnsr   )argskwargs)r   r   )r   r   )names)rK   name)r   r   r#   r$   r6   rW   r   from_tuplesr   groupbyre   )r   r   rP   idxr;   r:   midx
gb_rollings           r   test_rolling_apply_args_kwargsr      s     
1a&1v.	/B
s
C4,t5sCHZZ]  A{ST~ VF&+!!66"24,GDtTl$S9HD!#&..q1Jh^KPQNSF6,r   c                    [        [        R                  R                  S5      R	                  S5      5      n[        R
                  US S& [        R
                  USS & UR                  SSS9R                  [        U S9n[        R                  " UR                  S   [        R                  " USS 5      5        UR                  S	S
S9R                  [        U S9n[        UR                  S   5      (       d   e[        UR                  S   5      (       a   e[        UR                  S   5      (       a   e[        UR                  S   5      (       d   e[        [        R                  R                  S5      R	                  S	5      5      nUR                  SSS9R                  [        U S9n[        UR                  S   5      (       d   e[        UR                  S   5      (       d   eUR                  S	SS9R                  [        U S9nUR                  S	SS9R                  [        U S9n[        R                  " XE5        g )Nr)   2   r+      r.   r   rM               ir@   r   r*   r   r   )r   r   rR   rS   rT   rN   r#   r$   r   r6   r7   rO   r   r
   r   )r   objr:   obj2result0result1s         r   	test_nansr      s   
&&q)99"=
>CvvCHCI[[[,221#2>F6;;r?BGGC3K,@A [[[,221#2>FB    FKKO$$$$FKKO$$$$B    "))''*::2>?D\\"!\,221#2>FAQ    kk"!k,221#2>Gkk"!k,221#2>G7,r   c                    [        [        R                  R                  S5      R	                  S5      5      n[        R
                  US S& [        R
                  USS & UR                  SSSS9R                  [        U S	9n[        U[        [        R
                  /S
-  5      /5      R                  SSS9R                  [        U S	9R                  S
S  R                  SS9n[        R                  " X#5        g )Nr)   r   r+   r   r   r   T)r/   centerr   	   r.   )drop)r   r   rR   rS   rT   rN   r#   r$   r   r   rO   reset_indexr6   re   )r   r   r:   r;   s       r   test_centerr      s    
&&q)99"=
>CvvCHCI[[D[9??s?KFVRVVHqL)*+		$	qc		ab	 
$	  6,r   c                     UR                  S5      R                  [        U S9n[        U[        5      (       d   e[
        R                  " UR                  S   [        R                  " USS  5      5        g )Nr   r   rM   )
r#   r$   r   
isinstancer   r6   r7   rO   r   r   )r   seriesr:   s      r   test_seriesr      sZ    ^^B%%aS%1Fff%%%%6;;r?BGGF34L,ABr   c           	      &   UR                  S5      R                  [        U S9n[        U[        5      (       d   e[
        R                  " UR                  SS S 24   UR                  SS 2S S 24   R                  [        R                  SU S9SS9  g )	Nr   r   rM   r   r   )axisr   Fcheck_names)
r#   r$   r   r   r   r6   re   rO   r   r   )r   framer:   s      r   
test_framer      s|    ]]2$$QC$0Ffi((((BE

347!!"''s!;r   c                    SnSnUS S S2   R                  S5      R                  5       nUR                  X#S9R                  [        U S9nUR
                  S   nUS[        R                  " 5       -  -
  nUS S S2   R                  Xv5      n[        R                  " UR                  S   [        R                  " U5      5        g )	N   r+   r)   rD   ru   r   rM   r   )resampler   r#   r$   r   rK   r   BDaytruncater6   r7   rO   r   )	r   r   winminpserseries_result	last_date	prev_datetrunc_seriess	            r   test_time_rule_seriesr      s    
CD
1+

s
#
(
(
*CKKsK=CCA3COM##B'IB//I#A#;''	=L=--b1277<3HIr   c                    SnSnUS S S2   R                  S5      R                  5       nUR                  X#S9R                  [        U S9nUR
                  S   nUS[        R                  " 5       -  -
  nUS S S2   R                  Xv5      n[        R                  " UR                  U5      UR                  [        R                  U S9S	S
9  g )Nr   r+   r)   rD   ru   r   rM   r   Fr   )r   r   r#   r$   r   rK   r   r   r   r6   re   xsr   )	r   r   r   r   frmframe_resultr   r   trunc_frames	            r   test_time_rule_framer      s    
CD
!*

c
"
'
'
)C;;c;<BB1#BNL""2&IB//I!*%%i;K	""''s+r   r   )r   c   d   c                 H   UR                  [        U5      S-   X#S9R                  [        U S9nUR                  [        U5      X#S9R                  [        U S9n[	        U5      n[
        R                  " U[	        U5      5        U) n[
        R                  " XF   XV   5        g )Nr   ra   r   )r#   r%   r$   r   r
   r6   re   r7   )r   r   r   r]   r:   r;   nan_masks          r   test_min_periodsr     s    ^^CK!O^IOO	s P F ~~c&kt~GMM	s N H F|H8T(^4yH6+X-?@r   c                    [        S5       Vs/ s H	  nSUS 3PM     nnSnUR                  [        UR                  5      U-   5      R	                  SUS9R                  [        U S9R                  S5      R                  UR                  5      nUR	                  SUS	S
9R                  [        U S9n[        R                  " XV5        g s  snf )N   r   dr+   r   ru   r   Tr=   r/   r   )
r"   reindexlistrK   r#   r$   r   shiftr6   re   )r   r   r   rF   r   	series_xp	series_rss          r   test_center_reindex_seriesr     s    !"I&Iq1QqEIA&D 	tFLL)A-.		-	qc		s		  bd4HNN	s O I 90 	's   Cc           	         [        [        S5      [        SSSS9S9n[        S5       Vs/ s H	  nSUS 3PM     nnS	nUR                  [	        UR
                  5      U-   5      R                  S
US9R                  [        U S9R                  S5      R                  UR
                  5      nUR                  S
USS9R                  [        U S9n[        R                  " XV5        g s  snf )Nr   z
2020-01-01D)rI   rH   rJ   r   r   r   r+   r   ru   r   r   Tr   )r   r"   r	   r   r   rK   r#   r$   r   r   r6   rW   )r   r   r   rF   r   frame_xpframe_rss          r   test_center_reindex_framer   0  s    eCj
<cSV(WXE!"I&Iq1QqEIA&D 	d5;;'!+,		-	qc		s		  }}BD}FLLQTWLXH(- 	's   C'c                 (   [        SS/5      nSn[        R                  " [        US9   UR	                  SSS9R                  [        R                  U S9nS S S 5        [        SS/5      n[        R                  " WU5        g ! , (       d  f       N3= f)	Nr   r)   z5Support for axis=1 in DataFrame.rolling is deprecatedr   )r=   r   r   rc   rd   )	r   r6   assert_produces_warningFutureWarningr#   r$   r   r3   rW   )r   rP   msgr:   r;   s        r   
test_axis1r   A  sw    	Aq6	B
AC		#	#M	=11-33BFF3D 
>#s$H&(+ 
>	=s   -B
B)+numpyr   r   pandasr   r   r   r   r   r   r	   r
   r   pandas._testing_testingr6   pandas.tseriesr   markfilterwarnings
pytestmarkr   parametrizer&   r<   rZ   rf   rq   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rk   r   r   <module>r      sA    
 
 
  " [[''9

$ L1< 2<
- At9-. ..2-*,",:E

R $)<udm(LM- N-,-4- C	J  .A /A1$.",r   