
    Owg&                         d dl Zd dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZ ej$                  j'                  d      Zd Zej$                  j-                  dg d      d        Zd	 Zej$                  j-                  d
ddg      d        Zd Zd Zd Zd Zd Zd Zej$                  j-                  ddddigddgg      d        Z d Z!d Z"d Z#d Z$d Z%d Z&ej$                  j-                  dg d       d!        Z'd" Z(d# Z)d$ Z*y)%    N)		DataFrameIndex
MultiIndexSeries	Timestampconcat
date_rangeisnanotna)offsetsz3ignore:.*(empty slice|0 for slice).*:RuntimeWarningc                 N    | t        j                  |          j                         S N)npisfinitemeanxs    U/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/window/test_apply.pyfr      s    R[[^!!##    bad_raw)N   r   c                     t        j                  t        d      5  t        t	        d            j                  d      j                  t        |        d d d        y # 1 sw Y   y xY w)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&      sM    	z)R	S <uQx  #))#7);< < <   9AA'c                    | \  }}t        g d      }|j                  d      j                  t        j                  ||      }|j                         j                         sJ |j                  dd      j                  t        j                  ||      }t        g dt              }t        j                  ||       y )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     KFC,D\\"##BFF6s#CF;;=\\"!\,22266&c2RFm51H68,r   windowr)   2sc                 J   t        t        j                  j                  d      j	                  d      t        j                  j                  d      j                  ddd      dt        ddd	      
      fd}j                  |       j                  |d      }j                  dd  j                        }t        j                  ||       t        j                  t              5  j                  |       j                  |d       d d d        y # 1 sw Y   y xY w)Nr)      r   r+   )sizeAB20130101speriodsfreqindexc                     | j                   d   j                   d   k(  rt        j                  S | j                  d   S )Nr   )rK   r   naniloc)r   dfs    r   r   z1test_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_objectsrY   2   s     
&&q)99!<&&q)221bq2A	
 QS9
B
 ZZ%%aU%3Fwwqr{''+H&(+		!	!.	1 .


6   -. . .s   -#DD"c                    | \  }}t        g d      }|j                  d|      j                  d ||      }t        j                  ||       t        g d      }|j                  dd	|
      j                  d ||      }t        g d      d d |   }t        j                  ||       |j                  dd	|
      j                  t
        ||      }t        j                  ||       y )Nfloat64r1   r+   )stepc                 "    | j                         S r   )r   r   s    r   <lambda>z$test_rolling_apply.<locals>.<lambda>Q   s    !&&( r   r,   )NNNr)   r   r/   r\   c                     t        |       S r   )r%   r   s    r   r^   z$test_rolling_apply.<locals>.<lambda>X   s
    #a& r   )      ?       @rb   )r   r#   r$   r6   assert_series_equalr%   )r8   r\   r-   r   r;   r:   rF   s          r   test_rolling_applyrd   L   s     KFCb	*Hbt,226s 3 F 68, 	!"AYYqadY399S : F o&vv.H68,YYqadY399#fRU9VF68,r   c                 @   | \  }}t        t        ddd      t        d      d      j                  d      dz  }|j	                  d	      }|j	                  d
	      }|j                  d ||      }|j                  d ||      }t        j                  ||       y )NrE   r@   rF   rG   rB   rC   r)   r   )r=   1sc                      yNr    r   s    r   r^   z test_all_apply.<locals>.<lambda>m       r   r,   c                      yrh   ri   r   s    r   r^   z test_all_apply.<locals>.<lambda>n   rj   r   )r   r	   r"   	set_indexr#   r$   r6   rV   )r8   r-   r   rP   errr:   r;   s           r   test_all_applyro   a   s     KFC 	Z=E!HM	

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


$
AWW[SW9FxxFx<H&(+r   c                    | \  }}t        dt        d      i      }t        d      t        d      t        d      t        d      t        d      g|_        d }|j	                  d	d
      j                  |||      }|j                         }d|d<   t        j                  ||       |j	                  dd
      j                  |||      }|j                         }d|d<   t        j                  ||       |j	                  dd
      j                  |||      }|j                         }d|d<   t        j                  ||       y )NrD   r@   z20130101 09:00:00z20130101 09:00:02z20130101 09:00:03z20130101 09:00:05z20130101 09:00:06c                      yrh   ri   r   s    r   r^   z#test_ragged_apply.<locals>.<lambda>~   rj   r   rf   r   r=   r/   r,   ra   r>   5s)	r   r"   r   rK   r#   r$   copyr6   rV   )r8   r-   r   rP   r   r:   r;   s          r   test_ragged_applyru   r   s5    KFC	Cq?	#B%&%&%&%&%&BH 	AZZtZ399!FPS9TFwwyHHSM&(+ZZtZ399!FPS9TFwwyHHSM&(+ZZtZ399!FPS9TFwwyHHSM&(+r   c                      t        j                  t        d      5  t        t	        d            j                  d      j                  d d       d d d        y # 1 sw Y   y xY w)Nz)engine must be either 'numba' or 'cython'r   r   c                     | S r   ri   r   s    r   r^   z%test_invalid_engine.<locals>.<lambda>       A r   foo)r-   r   r    r!   r   r"   r#   r$   ri   r   r   test_invalid_enginer{      sQ    	z)T	U EuQx  #))+e)DE E Es   6AA$c                      t        j                  t        d      5  t        t	        d            j                  d      j                  d dddi       d d d        y # 1 sw Y   y xY w)	Nz+cython engine does not accept engine_kwargsr   r   c                     | S r   ri   r   s    r   r^   z3test_invalid_engine_kwargs_cython.<locals>.<lambda>   s    a r   cythonnopythonF)r-   engine_kwargsrz   ri   r   r   !test_invalid_engine_kwargs_cythonr      sY    	z)V	W 
uQx  #))U8K 	* 	

 
 
r'   c                      t        j                  t        d      5  t        t	        d            j                  d      j                  d dd       d d d        y # 1 sw Y   y xY w)Nz.raw must be `True` when using the numba enginer   r   c                     | S r   ri   r   s    r   r^   z(test_invalid_raw_numba.<locals>.<lambda>   rx   r   Fnumba)r   r-   rz   ri   r   r   test_invalid_raw_numbar      sX    	J
 R 	uQx  #))+5)QR R Rs   7AA%args_kwargsparr+   )r+   c                    d }t        ddgddgd      }t        ddg      }t        ddgddgg|	      }|j                  d      j                  || d
   | d         }t	        j
                  ||       t        j                  ddgdd g      }t        ddg|d      }|j                  d      d   j                  d      }|j                  || d
   | d         }t	        j                  ||       y )Nc                 2    t        j                  | |z         S r   )r   r3   )r   r   s     r   numpysumz0test_rolling_apply_args_kwargs.<locals>.numpysum   s    vva#gr   r   r)   )grar   r   g      &@g      (@)columnsr   )argskwargs)r   r   )r   r   )names)rK   name)r   r   r#   r$   r6   rV   r   from_tuplesr   groupbyrc   )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68,r   c                    t        t        j                  j                  d      j	                  d            }t        j
                  |d d t        j
                  |dd  |j                  dd      j                  t        |       }t        j                  |j                  d   t        j                  |dd              |j                  d	d
      j                  t        |       }t        |j                  d         sJ t        |j                  d         rJ t        |j                  d         rJ t        |j                  d         sJ t        t        j                  j                  d      j	                  d	            }|j                  dd      j                  t        |       }t        |j                  d         sJ t        |j                  d         sJ |j                  d	d      j                  t        |       }|j                  d	d      j                  t        |       }t        j                  ||       y )Nr)   2   r+      r.   r   rM               ir@   r   r*   r   r   )r   r   rQ   rR   rS   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7G,r   c                    t        t        j                  j                  d      j	                  d            }t        j
                  |d d t        j
                  |dd  |j                  ddd      j                  t        | 	      }t        |t        t        j
                  gd
z        g      j                  dd      j                  t        | 	      j                  d
d  j                  d      }t        j                  ||       y )Nr)   r   r+   r   r   r   T)r/   centerr   	   r.   )drop)r   r   rQ   rR   rS   rN   r#   r$   r   r   rO   reset_indexr6   rc   )r   r   r:   r;   s       r   test_centerr      s    
&&q)99"=
>CvvCHCI[[D[9??s?KFVRVVHqL)*+		$	qc		ab	 
$	  68,r   c                     |j                  d      j                  t        |       }t        |t              sJ t        j                  |j                  d   t        j                  |dd               y )Nr   r   rM   )
r#   r$   r   
isinstancer   r6   r7   rO   r   r   )r   seriesr:   s      r   test_seriesr      sW    ^^B%%aS%1Fff%%%6;;r?BGGF34L,ABr   c                 ,   |j                  d      j                  t        |       }t        |t              sJ t        j                  |j                  dd d f   |j                  dd d d f   j                  t        j                  d|       d       y )	Nr   r   rM   r   r   )axisr   Fcheck_names)
r#   r$   r   r   r   r6   rc   rO   r   r   )r   framer:   s      r   
test_framer      sy    ]]2$$QC$0Ffi(((BE

347!!"''s!;r   c                    d}d}|d d d   j                  d      j                         }|j                  ||      j                  t        |       }|j
                  d   }|dt        j                         z  z
  }|d d d   j                  ||      }t        j                  |j                  d   t        j                  |             y )	N   r+   r)   rD   rr   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KKsK=CCA3COM##B'IB//I#A#;''	9=L=--b1277<3HIr   c                    d}d}|d d d   j                  d      j                         }|j                  ||      j                  t        |       }|j
                  d   }|dt        j                         z  z
  }|d d d   j                  ||      }t        j                  |j                  |      |j                  t        j                  |       d	
       y )Nr   r+   r)   rD   rr   r   rM   r   Fr   )r   r   r#   r$   r   rK   r   r   r   r6   rc   xsr   )	r   r   r   r   frmframe_resultr   r   trunc_frames	            r   test_time_rule_framer      s    
CD
!*

c
"
'
'
)C;;ct;<BB1#BNL""2&IB//I!*%%i;K	""''s+r   r   )r   c   d   c                 d   |j                  t        |      dz   ||      j                  t        |       }|j                  t        |      ||      j                  t        |       }t	        |      }t        j                  |t	        |             | }t        j                  ||   ||          y )Nr   r_   r   )r#   r%   r$   r   r
   r6   rc   r7   )r   r   r   r\   r:   r;   nan_masks          r   test_min_periodsr     s    ^^CK!OD^IOO	s P F ~~c&kt$~GMM	s N H F|H8T(^4yH6(+Xh-?@r   c                    t        d      D cg c]  }d|d
 }}d}|j                  t        |j                        |z         j	                  d|      j                  t        |       j                  d      j                  |j                        }|j	                  d|d	
      j                  t        |       }t        j                  ||       y c c}w )N   r   dr+   r   rr   r   Tr=   r/   r   )
r"   reindexlistrK   r#   r$   r   shiftr6   rc   )r   r   r   rF   r   	series_xp	series_rss          r   test_center_reindex_seriesr     s    !"I&q1QqE&A&D 	tFLL)A-.		-	qc		s		  bd4HNN	s O I 9i0 	's   Cc                    t        t        d      t        ddd            }t        d      D cg c]  }d|d
 }}d	}|j                  t	        |j
                        |z         j                  d
|      j                  t        |       j                  d      j                  |j
                        }|j                  d
|d      j                  t        |       }t        j                  ||       y c c}w )Nr   z
2020-01-01D)rI   rH   rJ   r   r   r   r+   r   rr   r   r   Tr   )r   r"   r	   r   r   rK   r#   r$   r   r   r6   rV   )r   r   r   rF   r   frame_xpframe_rss          r   test_center_reindex_framer   0  s    eCj
<cSV(WXE!"I&q1QqE&A&D 	d5;;'!+,		-	qc		s		  }}BD}FLLQTWLXH(H- 	's   C6c                 ,   t        ddg      }d}t        j                  t        |      5  |j	                  dd      j                  t        j                  |       }d d d        t        ddg      }t        j                  |       y # 1 sw Y   -xY w)	Nr   r)   z5Support for axis=1 in DataFrame.rolling is deprecatedr   )r=   r   r   ra   rb   )	r   r6   assert_produces_warningFutureWarningr#   r$   r   r3   rV   )r   rP   msgr:   r;   s        r   
test_axis1r   A  s    	Aq6	B
AC		#	#M	= E11-33BFF3DE#s$H&(+E Es   3B

B)+numpyr   r   pandasr   r   r   r   r   r   r	   r
   r   pandas._testing_testingr6   pandas.tseriesr   markfilterwarnings
pytestmarkr   parametrizer&   r<   rY   rd   ro   ru   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   ri   r   r   <module>r      sA    
 
 
  " [[''9

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