
    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  S SKJr  S SKJr  S SKJr  \R&                  S 5       r\R&                  S 5       r " S S5      r " S	 S
5      r " S S5      rS rS rg)    N)	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestamp
date_rangeto_datetime)BaseIndexer)get_groupbyc                  >    [        / SQ/ SQ[        / SQ5      S.5      $ )z0Frame for testing times argument in EWM groupby.)
abcr   r   r   r   r   r   r   )
r   r   r      r   r      r   r      )

2020-01-01r   r   z
2020-01-02
2020-01-10z
2020-01-22z
2020-01-03
2020-01-23r   z
2020-01-04ABC)r   r
        R/var/www/html/env/lib/python3.13/site-packages/pandas/tests/window/test_groupby.pytimes_framer      s)     C/	
 r   c                  j    [        S/S-  S/S-  -   S/S-  -   [        R                  " S5      S.5      $ 	Nr      r      r      (   r   r   r   nparanger   r   r   
roll_framer)   ,   s6    A38qcBh.!q8ryy}MNNr   c                   2   \ rS rSrS rS rS r\R                  R                  S/ SQ5      S 5       r
\R                  R                  SSS	/5      S
 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  SSS/SS//5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSSS/SS//4SSS/SS//4/5      S 5       rS rS r\R                  R                  SSS/SS//5      S  5       rS! rS" r\R                  R                  S#/ S$Q5      S% 5       rS& rS' rS( rS) r\R                  R                  S*S+S,/5      S- 5       rS. rS/ rS0 rS1 r\R                  R                  S2S3S4SS5.4S60 4/5      S7 5       r \R                  R                  S8S9S:0S:4S9S;0S<4/5      S= 5       r!\R                  R                  S>SS/5      S? 5       r"S@ r#SA r$SB r%SC r&SD r'\R                  R                  SES4SFSG/ SHQ4S4S4SG/ SIQ4SJSJSG/ SKQ4SJSJSL/ SMQ4/5      SN 5       r(\R                  R                  SO\)RT                  " SPSQ/5      SRSS//5      ST 5       r+SU r,\R                  R                  SVSW/SX/ SYQ0/SWS</\-" SZ5      \-" S[5      \-" SZ5      \-" S[5      // S\QS].//5      S^ 5       r.S_ r/S` r0Sa r1Sb r2Sc r3Sdr4g;)eTestRolling1   c                     Sn[         R                  " [        US9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)Nz4groupby\(\) got an unexpected keyword argument 'foo'matchr   r   )foo)pytestraises	TypeErrorgroupby)selfr)   msgs      r   !test_groupby_unsupported_argument-TestRolling.test_groupby_unsupported_argument2   s4    E]]9C0s* 100s	   6
Ac                    UR                  S5      n[        USS9nUR                  R                  S 5      nUR	                  S5      R                  5       R                  n[        R                  " XT5        UR	                  S5      R                  R                  5       n[        R                  " XT5        UR                  R	                  S5      R                  5       n[        R                  " XT5        UR                  R                  UR                  5      R	                  S5      R                  5       n[        R                  " XT5        g )Nr   byc                 @    U R                  S5      R                  5       $ )Nr   rollingmeanxs    r   <lambda>*TestRolling.test_getitem.<locals>.<lambda>;   s    qyy|/@/@/Br   r   )	r4   r   r   applyr>   r?   tmassert_series_equalr   )r5   r)   g	g_mutatedexpectedresults         r   test_getitemTestRolling.test_getitem7   s    s#
s3	;;$$%BC1""$&&
v01$$&
v0Q$$&
v0%%jll3;;A>CCE
v0r   c                 R   UR                  S5      nUR                  SSS9n[        USS9nUR                  R	                  S 5      nUR                  R                  5       n[        R                  " Xe5        UR                  R                  5       n[        R                  " Xe5        g )Nr   r   r   min_periodsr:   c                 >    U R                  SSS9R                  5       $ )Nr   r   rN   )r>   countr@   s    r   rB   3TestRolling.test_getitem_multiple.<locals>.<lambda>N   s    qyyy/J/P/P/Rr   )r4   r>   r   r   rD   rQ   rE   rF   )r5   r)   rG   rrH   rI   rJ   s          r   test_getitem_multiple!TestRolling.test_getitem_multipleI   s    s#IIaQI'
s3	;;$$%RS
v0
v0r   fsumr?   minmaxrQ   kurtskewc                   ^ UR                  SSS9nUR                  SS9n[        UT5      " 5       nSn[        R                  " [
        US9   UR                  U4S j5      nS S S 5        WR                  SS	S
9n[        R                  " US   [        S5      /5      nXl        [        R                  " XW5        g ! , (       d  f       N_= f)Nr   F
group_keys   window7DataFrameGroupBy.apply operated on the grouping columnsr.   c                 D   > [        U R                  S5      T5      " 5       $ Nr`   getattrr>   rA   rV   s    r   rB   *TestRolling.test_rolling.<locals>.<lambda>i   s    1q)A)Cr   r   axisr$   r4   r>   rg   rE   assert_produces_warningDeprecationWarningrD   dropr   from_arraysrangeindexassert_frame_equal	r5   rV   r)   rG   rS   rJ   r6   rI   expected_indexs	    `       r   test_rollingTestRolling.test_rollingV   s     su5IIQIAG''(:#FwwCDH G ==1=-#//C%)0LM'
f/ GF   B<<
C
stdvarc                   ^ UR                  SSS9nUR                  SS9n[        UT5      " SS9nSn[        R                  " [
        US	9   UR                  U4S
 j5      nS S S 5        WR                  SSS9n[        R                  " US   [        S5      /5      nXl        [        R                  " XW5        g ! , (       d  f       N_= f)Nr   Fr^   r`   ra   r   ddofrc   r.   c                 B   > [        U R                  S5      T5      " SS9$ )Nr`   r   r|   rf   rh   s    r   rB   /TestRolling.test_rolling_ddof.<locals>.<lambda>y   s    1q)Aq)Ir   rj   r$   rl   rt   s	    `       r   test_rolling_ddofTestRolling.test_rolling_ddofq   s    su5IIQIAA&G''(:#FwwIJH G ==1=-#//C%)0LM'
f/ GF   B;;
C	interpolationlinearlowerhighermidpointnearestc                   ^ UR                  SSS9nUR                  SS9nUR                  STS9nSn[        R                  " [
        US	9   UR                  U4S
 j5      nS S S 5        WR                  SSS9n[        R                  " US   [        S5      /5      nXl        [        R                  " XW5        g ! , (       d  f       N_= f)Nr   Fr^   r`   ra   皙?r   rc   r.   c                 B   > U R                  S5      R                  STS9$ )Nr`   r   r   )r>   quantilerA   r   s    r   rB   3TestRolling.test_rolling_quantile.<locals>.<lambda>   s    !))A,//=/Qr   r   rj   r$   )r4   r>   r   rE   rm   rn   rD   ro   r   rp   rq   rr   rs   )	r5   r   r)   rG   rS   rJ   r6   rI   ru   s	    `       r   test_rolling_quantile!TestRolling.test_rolling_quantile   s     su5IIQIC}=G''(:#FwwQH G
 ==1=-#//C%)0LM'
f/ GFr   zf, expected_valcorrr   cov      ?c                 $   [        [        S5      S/S-  S/S-  -   / SQS-  S.5      R                  SS/5      n[        [        S5      / SQS	.5      R                  S5      n[        UR	                  S
S9R                  S5      U5      " U5      n[        R                  /U/S-  -   S-  n[        US/[        R                  " S/S-  S/S-  -   S/S-  S/S-  -   [        [        SS5      5      S-  // SQS9S9n[        R                  " XW5        g )N
   r      r   )r   r   r   r`   r   )valueidx1idx2r   r   )r   r   r   levelr`   r      )r   r   r   namescolumnsrr   )r   rq   	set_indexrg   r4   r>   r'   nanr   rp   listrE   rs   )r5   rV   expected_valdfotherrJ   expected_datarI   s           r   /test_rolling_corr_cov_other_same_size_as_groups;TestRolling.test_rolling_corr_cov_other_same_size_as_groups   s"    Bi!qA37):OVWDWX

)VV$
% 	 E!HoFGQQ
 !,44Q7;EB&&\NQ$66!;I((C!GqcAg%C!GqcAg%q!%)
 /
 	f/r   c                 X  ^^ TR                  S5      nUR                  SS9n[        UT5      " T5      nUU4S jnSn[        R                  " [
        US9   UR                  U5      nS S S 5        [        R                  WS'   [        R                  " XX5        g ! , (       d  f       N8= f)Nr   r`   ra   c                 F   > [        U R                  S5      T5      " T5      $ re   rf   )rA   rV   r)   s    r   funcITestRolling.test_rolling_corr_cov_other_diff_size_as_groups.<locals>.func   s    199Q<+J77r   rc   r.   )
r4   r>   rg   rE   rm   rn   rD   r'   r   rs   	r5   rV   r)   rG   rS   rJ   r   r6   rI   s	    ``      r   /test_rolling_corr_cov_other_diff_size_as_groups;TestRolling.test_rolling_corr_cov_other_diff_size_as_groups   s    s#IIQIAz*	8 H''(:#Fwwt}H G 
f/ GFs   B
B)c                 @  ^ UR                  S5      nUR                  SS9n[        UR                  T5      " SS9nU4S jnSn[        R
                  " [        US9   UR                  U5      nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)	Nr   r`   ra   Tpairwisec                 V   > [        U R                  R                  S5      T5      " SS9$ )Nr`   Tr   )rg   r   r>   rh   s    r   r   8TestRolling.test_rolling_corr_cov_pairwise.<locals>.func   s!    133;;q>1-t<<r   rc   r.   )	r4   r>   rg   r   rE   rm   rn   rD   rF   r   s	    `       r   test_rolling_corr_cov_pairwise*TestRolling.test_rolling_corr_cov_pairwise   s    s#IIQIa$/	= H''(:#Fwwt}H G
vx0 GFs   B
Bzfunc, expected_values      ?      @c                    [        / SQ/ SQ/ SQS.5      nUR                  S5      R                  S5      n[        XA5      " 5       n[        S[        R
                  /-  US   -   S	[        R
                  /-  -   S[        R
                  /-  US
   -   S	[        R
                  /-  -   S.[        R                  " / SQ/ SQS9S9n[        R                  " XV5        g )N)g1g2r   r   )r   r   r   r   )r   r   r   r`   r   r   r   r   r   r`   r   r   r   )r   r   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   NNr   rr   )
r   r4   r>   rg   r'   r   r   from_tuplesrE   rs   )r5   r   expected_valuesr   rolrJ   rI   s          r   test_rolling_corr_cov_unordered+TestRolling.test_rolling_corr_cov_unordered   s     -!!
 jjo%%a(#%"&&\OA$66bffXE"&&\OA$66bffXE ((	 (
& 	f/r   c                   ^ UR                  SSS9nUR                  SS9nUR                  S TS9nSn[        R                  " [
        US	9   UR                  U4S
 j5      nS S S 5        WR                  SSS9n[        R                  " US   [        S5      /5      nXl
        [        R                  " XW5        g ! , (       d  f       N_= f)Nr   Fr^   r`   ra   c                 "    U R                  5       $ NrX   r@   s    r   rB   0TestRolling.test_rolling_apply.<locals>.<lambda>   
    1557r   rawrc   r.   c                 D   > U R                  S5      R                  S TS9$ )Nr`   c                 "    U R                  5       $ r   r   ys    r   rB   BTestRolling.test_rolling_apply.<locals>.<lambda>.<locals>.<lambda>   s
    aeegr   r   )r>   rD   rA   r   s    r   rB   r      s    1););<MSV);)Wr   r   rj   r$   )r4   r>   rD   rE   rm   rn   ro   r   rp   rq   rr   rs   )	r5   r   r)   rG   rS   rJ   r6   rI   ru   s	    `       r   test_rolling_applyTestRolling.test_rolling_apply   s    su5IIQI *4G''(:#FwwWXH G ==1=-#//C%)0LM'
f/ GFrx   c                    [        S/S-  S/S-  -   S/S-  S.5      nUR                  S5      n[        R                  " / SQ5      nSS /Ul        [        [
        R                  S	S	/S
-  S/US9nUR                  S
S9R                  5       n[        R                  " XT5        UR                  5         UR                  S
S9R                  5       n[        R                  " XT5        g )Nr0   r   barr   r   r%   r   ))r   r   )r   r`   )r   r   )r0   r   )r0   r   )r0   r          @r   r   r   ra   )r   r4   r   r   r   r'   r   r>   rX   rE   rs   )r5   r   rG   mirI   rJ   s         r   test_rolling_apply_mutability)TestRolling.test_rolling_apply_mutability  s    eWq[E7Q;6aS1WEFJJsO##T
 ;bffc3/!3cU"M!$((*
f/ 	
 !$((*
f/r   zexpected_value,raw_valueT        Fc                    S n[        / SQ/ SQS.5      nUR                  S5      R                  R                  S5      R	                  X2S9n[        U/S-  [        R                  " S	SS /S
9SS9n[        R                  " XV5        g )Nc                 H    [        [        U [        R                  5      5      $ r   )int
isinstancer'   ndarrayr@   s    r   isnumpyarray6TestRolling.test_groupby_rolling.<locals>.isnumpyarray  s    z!RZZ011r   r   r   r   r   r   r   )idr   r   r   r   r   )r   r   r   r   r   r   r   r   rr   name)
r   r4   r   r>   rD   r   r   r   rE   rF   )r5   expected_value	raw_valuer   r   rJ   rI   s          r   test_groupby_rolling TestRolling.test_groupby_rolling  s    	2 i)<=D!''//2888Uq (()A$PTV

 	v0r   c                 F   [        [        SS5      5      nUR                  U5      R                  SSS9R	                  5       n[        [
        R                  /S-  [        R                  " S5      S9n[        R                  " X#5        [        [        SS5      5      nUR                  U5      R                  SSS9R	                  5       n[        [
        R                  /S	-  [        R                  " S
5      S9n[        R                  " X#5        [        S/S-  S/S-  -   [        S5      S.5      nUR                  S5      R                  SSS9R	                  5       n[        [
        R                  SSS[
        R                  [
        R                  SSSS[
        R                  /[        R                  " SSS /S9S/S9n[        R                  " X#5        [        S/S-  S/S-  -   [        S5      S.5      nUR                  S5      R                  SSS9R	                  5       n[        [
        R                  SSS[
        R                  [
        R                  SSS[
        R                  /
[        R                  " SSS /S9S/S9n[        R                  " X#5        g )Nr   r   Tr   )centerrb   r   )r   r   r   r   r   r`   r   )r   r`   r   r`   )r   r   r   r   r   r      r   r   r      r#   	   )r   r   r   r   r   r   r   r   r   r`   r   r   r   r   r   r   r   r#   r   r   )r   r   r   )rr   r   r   )
r   r   r   r   r   r   r   r   r  r  )r   rq   r4   r>   r?   r'   r   r   r   rE   rF   r   rs   )r5   seriesrJ   rI   r   s        r   "test_groupby_rolling_center_center.TestRolling.test_groupby_rolling_center_center*  s<   a$'//tA/FKKMVVHqL(()QR
 	v0a$'//tA/FKKMVVHqL(()IJ
 	v0cUQY#2rCDC((Q(?DDFVVQ1bffbffaAq"&&A(( Dk  E%
( 	f/cUQY#2rCDC((Q(?DDFVVQ1bffbffaArvv>(( Dk E#
& 	f/r   c                 P   [        [        SS5      S/S-  S/S-  -   [        S5      S.S	9nUR                  S
5      R	                  SSSSS9R
                  R                  5       n[        R                  " US
   US   /S
S/S9n[        / SQSUS9n[        R                  " X$5        g )Nr   r   group_1r   group_2r`   r   )Dategbr   )datar
  r	  Tr   )onr   rO   r   )
r         ?r   g      @      @g      @      @      @r  r  r   r   rr   )r   r	   rq   r4   r>   r   r?   r   rp   r   rE   rF   )r5   r   rJ   r   rI   s        r   test_groupby_rolling_center_on*TestRolling.test_groupby_rolling_center_onk  s    "<> kAoa7r
 JJtWQ6$AW>U446 	
 ##RXr&z$:4.Q>

 	v0r   rO   )r   r`   r   c                    [        S/S-  S/S-  -   [        S5      S.5      nSnUR                  S5      R                  USUS	9R	                  5       nUR                  5       SS
/   n/ SQnU Vs/ s H  ofS-   PM	     nn[        SUS-
  5      n[        R                  /U-  n	XUSU-
   -   U	-   n
XUSU-
   -   U	-   n[        S/S-  S/S-  -   X-   S.5      n[        R                  " XL5        g s  snf )Nr   r   r   r!   )groupr  r   r  T)r   rO   r  )
r   r  r   r  r         @g      @r  r         @g      $@r   r   )r   rq   r4   r>   r?   reset_indexrZ   r'   r   rE   rs   )r5   rO   r   window_sizerJ   
grp_A_meanrA   
grp_B_meannum_nansnansgrp_A_expectedgrp_B_expectedrI   s                r   'test_groupby_rolling_center_min_periods3TestRolling.test_groupby_rolling_center_min_periods  s    #sebj!8%)LMJJwW[;WGTV 	
 ##%w&78G
(23
1$h

3q+/*x("8b8m DDtK8b8m DDtKebjC52:-~7VW
 	f/ 4s   0C/c           	         [        / SQ/ SQ/ SQS.5      nUR                  S5      S/   R                  S5      R                  5       n[        [        R
                  [        R
                  S[        R
                  /S/[        R                  " S	SS /S
9S9n[        R                  " X#5        UR                  S5      S   R                  S5      R                  5       n[        [        R
                  [        R
                  S[        R
                  /[        R                  " S	SS /S
9SS9n[        R                  " X#5        g )N)r   r   r   r   )r   r   r  r   )r   r!      r!   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r4   r>   rZ   r'   r   r   r   rE   rs   r   rF   )r5   r   rJ   rI   s       r   test_groupby_subselect_rolling*TestRolling.test_groupby_subselect_rolling  s   %9@PQ
 C#'//2668VVRVVS"&&)E((0d
 	f/C%--a0446VVRVVS"&&)((0d 
 	v0r   c                 x    " S S[         5      n[        S/ SQS-  0S/S-  S/S-  -   S	/S-  -   S
9nUR                  UR                  5      R	                  U" SS9SS9R                  5       nUR                  UR                  5      R	                  SSS9R                  5       n[        R                  " X45        g )Nc                   (    \ rS rSr     SS jrSrg)FTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexeri  Nc                     Uc  U R                   OSn[        R                  " U[        R                  S9S-   nUR	                  5       U R                   -
  nX'US:  '   Xv4$ )Nr   dtyper   )r  r'   r(   int64copy)r5   
num_valuesrO   r   closedstependstarts           r   get_window_boundsXTestRolling.test_groupby_rolling_custom_indexer.<locals>.SimpleIndexer.get_window_bounds  sY     3>2Ed..1ii
"((;a?
T%5%55#.eai z!r   r   )r   NNNN)__name__
__module____qualname____firstlineno__r4  __static_attributes__r   r   r   SimpleIndexerr)    s      "r   r;  r   )r   r   r  r   r  r   r   r   r   r   r   )r  rN   rb   rO   )r   r   r4   rr   r>   rX   rE   rs   )r5   r;  r   rJ   rI   s        r   #test_groupby_rolling_custom_indexer/TestRolling.test_groupby_rolling_custom_indexer  s    	"K 	" +a/0a1#'8IQCRSG8S
 JJrxx W]q1qWASU 	
 ::bhh'//qa/HLLN
f/r   c                    [        [        S5      [        S5      S/S-  S/S-  -   S Vs/ s H  n[        U5      PM     snS-  S.5      nUR                  S5      R	                  S	S
SS9S   R                  5       n[        [        R                  [        R                  SS[        R                  [        R                  SS/[        R                  " USS
/   SS
/S9SS9n[        R                  " X45        g s  snf )Nr#   r   r`   r   
2019-01-01rA  
2019-01-02rB  r   column1column2r  dater  1DrF  leftr  r0  rD  r         "@r   r   r   rq   r   r4   r>   rX   r   r'   r   r   
from_framerE   rF   r5   rF  r   rJ   rI   s        r   'test_groupby_rolling_subset_with_closed3TestRolling.test_groupby_rolling_subset_with_closed  s     8 8cUQY. !Y X dO X 			
 JJw'''G	RVVX 	 VVRVVS#rvvrvvsC@''GV$%' 
 	v0%s   C8c                    [        [        S5      [        S5      S/S-  S/S-  -   S Vs/ s H  n[        U5      PM     snS-  S.5      nUR                  S5      S	S
/   R	                  SS
SS9S	   R                  5       n[        [        R                  [        R                  SS[        R                  [        R                  SS/[        R                  " USS
/   SS
/S9S	S9n[        R                  " X45        g s  snf )Nr#   r   r`   r   r@  r   rC  r  rD  rF  rG  rH  rI  r   rJ  r   r   rK  rM  s        r   .test_groupby_subset_rolling_subset_with_closed:TestRolling.test_groupby_subset_rolling_subset_with_closed  s    8 8cUQY. !Y X dO X 			
 JJwF 34WTfVW4Y@SU 	
 VVRVVS#rvvrvvsC@''GV$%' 
 	v0+s   C=r   rZ   rY   c                 X   [        / SQ[        R                  " / SQSS/S9SS9n[        UR	                  U5      R                  S5      U5      " 5       n[        [        R                  [        R                  S	/[        R                  " / S
Q/ SQS9SS9n[        R                  " X45        g )N)r   r   r   ))r   rA   )r   r   )r   z12r   r   r   r   r   ))r   r   rA   )r   r   r   )r   r   rT  )r   rU  rV  )
r   r   r   rg   r4   r>   r'   r   rE   rF   )r5   r   dsrJ   rI   s        r   "test_groupby_rolling_index_changed.TestRolling.test_groupby_rolling_index_changed
  s     ((4S#J 
 B//2D9;VVRVVS!((=_ 
 	v0r   c           	      P   [        S/ 05      nUR                  S5      R                  SS9R                  5       nUR	                  SS9n[
        R                  " [        / SS9[        / SS9/SS /S9Ul        [        R                  " X!5        [        / / S	.5      nUR                  SS
/5      R                  SS9R                  5       nUR	                  SS
/S9n[
        R                  " [        / SS9[        / SS9[        / SS9// SQS9Ul        [        R                  " X!5        g )Ns1r   ra   r   float64r+  r-  r   )r[  s2r^  )r[  r^  N)r   r4   r>   rX   ro   r   from_productr   rr   rE   rs   )r5   rI   rJ   s      r    test_groupby_rolling_empty_frame,TestRolling.test_groupby_rolling_empty_frame  s    dBZ(!!$'//q/9==?===. $002Y'r)AB4QU,
 	f/Bb12!!4,/77q7AEEG==$=6#00b	*b	*b(
 %
 	f/r   c                 v   [        SS[        SSSS5      /SS[        SSSS5      /SS	[        SSS
S5      /SS[        SSSS5      /SS	[        SSSS5      /// SQS9R                  S5      nUR                  S5      nUR	                  5       US'   UR                  SSS9nUR                  S 5      n[        SS[        SSSS5      S/SS[        SSSS5      S/SS[        SSSS5      S/SS	[        SSS
S5      S/SS	[        SSSS5      S/// SQS9R                  SS/5      n[        R                  " XE5        g )Nr   r    r   r   r   r   Zr  r   Hr   Er!   )rr   r  	eventTimer\  rr   r  count_to_date10drg  r  c                      U R                   S   $ )Nr   )shape)r   s    r   rB   ?TestRolling.test_groupby_rolling_string_index.<locals>.<lambda>J  s    !r   r   r   r  )rr   r  rg  rh  )	r   r   r   r4   cumcountr>   rD   rE   rs   )r5   r   groupsrolling_groupsrJ   rI   s         r   !test_groupby_rolling_string_index-TestRolling.test_groupby_rolling_string_index:  s~   i4Aq!9:i4Aq!9:i4Aq!9:i4Aq!9:i4B!:; 4	
 )G
 	 G$$oo/?+>%%&<=i4Aq!93?i4Aq!93?i4Aq!93?i4Aq!93?i4B!:C@ E	
 )Wg&
' 	 	f/r   c           	      D   [        SS/SS/S.5      R                  SSS9R                  S5      R                  5       n[        [        R
                  " SS/SS//5      SS	/[        R                  " S
S/SS /S9S9nUR                  SS9n[        R                  " X5        g )Nr   r   )r0   r   r0   F)sortr   r   r   )r   r   r   r   r   r\  )r   r4   r>   rY   r'   arrayr   r   ro   rE   rs   )r5   rJ   rI   s      r   test_groupby_rolling_no_sort(TestRolling.test_groupby_rolling_no_sortW  s     q!faV45WUW'WQZSU	 	 HHsCj3*-.EN((&&)9%O
 ===/
f/r   c                    [        [        S5      [        S5      SSS/-  [        SSUS9S.5      nUR                  S5      R	                  S	S
SS9S   R                  5       n[        / SQSU S3S9n[        R                  " / SQU/SS
/S9n[        [        R                  SS[        R                  SS/SUS9n[        R                  " X65        g )Nr   r   r   r   20190101)r2  periodsunitrC  r  3drF  rH  rI  rD  )z
2018-12-27z
2018-12-29z
2018-12-31z
2018-12-28z
2018-12-30rA  M8[]r+  )r   r   r   r   r   r   r   r   r  )r   rq   r	   r4   r>   rQ   r   r   rp   r   r'   r   rE   rF   )r5   r{  r   rJ   dtir   rI   s          r   $test_groupby_rolling_count_closed_on0TestRolling.test_groupby_rolling_count_closed_onh  s     8 8c3Z"z14H	
 JJwWTfVW4Y@UW 	
  vQ-

 ##. F#
 VVS#rvvsC0

 	v0r   )r   kwargsr>   r   r<  	expandingc                    [        SS/SS/SS/SS/SS//SS/S9n[        UR                  S5      U5      " S0 UD6R                  5       n[        [        R
                  /S-  [        R
                  S[        R
                  SS/S	.[        R                  " / S
QSS /S9S9nUR                  SS9n[        R                  " XE5        g )Nr   r   r   r   r   r\  r   g&?r   )r   r   )r   r   )r   r   r   r`   r   r   r   )r   rg   r4   semr'   r   r   r   ro   rE   rs   )r5   r   r  r   rJ   rI   s         r   test_groupby_rolling_sem$TestRolling.test_groupby_rolling_sem  s     1XQx#qC8c1X>c

 C$/9&9==?66(Q,bffgrvvw%PQ((B3PT+
 ===-
f/r   )rollingskeyr  r   Nrr   c                 :   [        [        SS[        R                  /5      / SQ/ SQS.5      nUS:X  a  UR	                  S5      n[
        R                  " [        U S3S	9   UR                  S
5      R                  " S0 UD6  S S S 5        g ! , (       d  f       g = f)Nz2020-06-01 12:00z2020-06-01 14:00r   r   r   rr   r   z values must not have NaTr.   r   )60min)
r   r
   r'   r   r   r1   r2   
ValueErrorr4   r>   )r5   r  r  r   s       r   "test_groupby_rolling_nans_in_index.TestRolling.test_groupby_rolling_nans_in_index  s    
  "46H"&&!QR
 '>c"B]]:u4M-NOJJsO##8x8 POOs   !"B
Br_   c                 &   / SQ/ SQ/n[         R                  " USS9n[        / SQUS9nUR                  SS/US9R	                  S	5      R                  5       n[        / S
Q[         R                  " / SQ/ SQS9S9n[        R                  " XV5        g )Nval1r  val2r   r   r   r   r   r   r   r^   r   )r   r   r  )r  r  r  r  r  )r  r  r  r  )r   r   r   r   )	r   rp   r   r4   r>   r?   r   rE   rF   )r5   r_   arraysrr   srJ   rI   s          r   test_groupby_rolling_group_keys+TestRolling.test_groupby_rolling_group_keys  s    
 +,DE&&v5EF9E*FF+
CKKANSSU((
 7

 	v0r   c                 D   / SQ/ SQ/n[         R                  " USS9n[        / SQ[        S5      S.US9nUR	                  SS	/5      R                  S
5      R                  5       n[        S/ SQ0[         R                  " / SQ/ SQS9S9n[        R                  " XE5        g )Nr  r  r   )r   r   r   r   r%   r   r   r   r   r   )r   r   r   )r  r   r  r  r  )r  r   r  r  )r   r   r   r   )
r   rp   r   rq   r4   r>   r?   r   rE   rs   r5   r  rr   r   rJ   rI   s         r   1test_groupby_rolling_index_level_and_column_label=TestRolling.test_groupby_rolling_index_level_and_column_label  s    *,DE&&v5EFYU1X6eDVSM*2215::</"((
 4

 	f/r   c                 "   [        [        R                  " S5      SS/S-  S.5      nUR                  S5      R	                  S5      R                  5       n[        R                  " / SQSS /S	9n[        R                  " UR                  U5        g )
Nr  r   r   r`   r   r   r   )r   r   )r   r`   )r   r   r   r$  )r   r   )r   r   r   )r   r'   r(   r4   r>   r?   r   r   rE   assert_index_equalrr   r5   r   rJ   ru   s       r   )test_groupby_rolling_resulting_multiindex5TestRolling.test_groupby_rolling_resulting_multiindex  st    
 RYYs^1a&1*=>C((+002#//L+
 	fllN;r   c                 2   [        [        R                  " S5      SS/S-  / SQS-  S.5      nUR                  SS	/5      R	                  S5      R                  5       n[        R                  " / S
Q/ SQS9n[        R                  " UR                  U5        g )Ng      (@r   r   r   r   r   r   r`   r   r   r   r   ))r   r   r   )r   r   r`   )r   r   r#   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r`   r   )r   r`   r   )r   r`   r   )r   r   Nr   )r   r'   r(   r4   r>   rX   r   r   rE   r  rr   r  s       r   *test_groupby_rolling_resulting_multiindex26TestRolling.test_groupby_rolling_resulting_multiindex2  s    RYYt_Aq6A:LSTDTUVS#J'//2668#// #
" 	fllN;r   c                 L   [        [        R                  " S5      SS/S-  / SQS-  S.5      nUR                  SSS	9nUR	                  S
5      R                  S5      R                  5       n[        R                  " / SQ/ SQS9n[        R                  " UR                  USS9  g )Nr  r   r   r`   r  r   r   T)appendr   r   ))r   r   r   r   )r   r`   r   )r   r   r   )r   r   r   )r   r   r`   )r   r   r   )r   r   r`   )r   Nr   r   equiv)exact)r   r'   r(   r   r4   r>   r?   r   r   rE   r  rr   r  s       r   *test_groupby_rolling_resulting_multiindex36TestRolling.test_groupby_rolling_resulting_multiindex3  s    RYYs^1a&1*<RSCSTU\\#d\+C((+002#//	 #
 	fllN'Jr   c                    UR                  SSS9nSn[        R                  " [        US9   UR	                  S 5      R
                  nS S S 5        UR                  SS9nSn[        R                  " [        US9   UR	                  S	 5      R
                  nS S S 5        [        R                  " WW5        g ! , (       d  f       Nu= f! , (       d  f       N7= f)
Nr   Fr^   rc   r.   c                 @    U R                  S5      R                  5       $ re   r>   rX   r@   s    r   rB   UTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply.<locals>.<lambda>  s    1)9)9);r   r`   ra   c                 @    U R                  S5      R                  5       $ re   r  r@   s    r   rB   r  !  s    qyy|'7'7'9r   )r4   rE   rm   rn   rD   rr   r>   r  )r5   r)   rG   r6   rI   _rJ   s          r   7test_groupby_rolling_object_doesnt_affect_groupby_applyCTestRolling.test_groupby_rolling_object_doesnt_affect_groupby_apply  s    su5G''(:#Fww;<BBH GIIQIG''(:#FWW9:@@F G
fh/ GF GFs   B8;C	8
C	
C)rb   rO   r0  rI   r   rH  )Nr   r   r   Nr   r   r   )NNr   r   NNr   r   r`   )NNNNNNNNright)NNNr  NNNr  c           	      4   [        / SQ5      nUR                  / SQ5      R                  XUS9R                  S5      n[        [        R
                  " USS9[        [        R
                  " SS/5      / S	Q// S
Q/ SQ/S9S9n[        R                  " Xg5        g )N)r   r   r   r`   r   r   r   r#   )r   r   r   r   r   r   r   r   )rb   rO   r0  r   r]  r+  r   r   )r   r   r   r   r`   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r`   r   r   r   r   r   )levelscodesr   )	r   r4   r>   rz   r'   ru  r   rE   rs   )r5   rb   rO   r0  rI   r   rJ   expected_results           r   test_groupby_rolling_var$TestRolling.test_groupby_rolling_var$  s     /0JJ/0WFFWKSV 	
 $HHXY/!Q(*BC/1IJ
 	f6r   r   )r    )r   r   r   r   c                 D   [        SS//S-  SS//S-  -   SS//S-  -   US9nUR                  S	5      nUR                  R                  S
S9nUR	                  S5      nUR                  5       nS	UR                  ;  d   e[        R                  " UR                  U5        g )Nr   r   r!   r   r"   r   r#   r\  r   T)deepr`   )	r   r4   objr.  r>   rX   r   rE   rs   )r5   r   r   rG   original_objrS   rJ   s          r   test_by_column_not_in_values(TestRolling.test_by_column_not_in_values=  s    
 Ax"}Ax"}4Ax!|CWUJJsOuuzztz,IIaL&..(((
aee\2r   c                 h   / SQ/ SQ/n[         R                  " USS9n[        S/ SQ0US9nUR                  SS	9S   R	                  S
5      R                  5       n[        [        R                  S[        R                  S/[         R                  " / SQ/ SQS9SS9n[        R                  " XE5        g )N)Falconr  Parrotr  )CaptiveWildr  r  )AnimalTyper   z	Max Speed)g     `x@g     u@g      >@g      4@r   r   r   r   g      @g      I@))r  r  r  )r  r  r  )r  r  r  )r  r  r  )r  r  r  r   )r   rp   r   r4   r>   rX   r   r'   r   r   rE   rF   r  s         r   test_groupby_levelTestRolling.test_groupby_levelJ  s     52
 &&v5GH%?@N!$[199!<@@BVVUBFFD)(( 3 
 	v0r   zby, expected_datar   num)      Y@     b@r        i@
2018-01-01
2018-01-02)r  r  r       @o@)rF  r  c                    / SQ/ SQ/ SQ/ SQ/n[        U/ SQS9nUS   R                  SU S	35      US'   UR                  S/5      nU Vs/ s H  n[        XV5      PM     nnUR	                  US
S9R                  SSS9R                  5       nS/ SQ0n	U	R                  U5        [        U	UR                  S9n	SU;   a  U	S   R                  SU S	35      U	S'   [        R                  " X5        g s  snf )N)r   r  r  )r   r  r  )r   r  r  )r   r  r  )r   rF  r  r\  rF  r}  r~  F)as_indexr   r   r<  r   )r   r   r   r   r   )r   astyper   rg   r4   r>   r?   updaterr   rE   rs   )
r5   r;   r   r{  r  r   attrgp_byrJ   rI   s
             r   test_as_index_falseTestRolling.test_as_index_falseb  s	   * '&&&	
 t%:;Z&&TF!}56
\\6(#/12rt"r2JJuuJ-55QA5NSSU 	 ./&((
 ]"'/66TF!}EHV
f/ 3s   C2c                 8   [         R                  " U5      R                  nSn[         R                  " U" S5      U5      nSUS'   Sn[         R                  " XS5      n[         R                  US'   SUS'   [        UUS.5      R                  S5      nUR                  S5      S   R                  S	SS
9R                  5       n[        US[        R                  " [        S/S-  S/-   USS9[        S/S-  S/-   USS9/5      S9n	[        R                  " X5        g )N  r   r   g52DE)rr   adl2rr   r  r   r<  i  )r,  r   r  )r'   r,  typerepeatr   r   r   r4   r>   r?   r   r   rp   r   rE   rF   )
r5   any_int_numpy_dtypetypsizeidxvalarrr   rJ   rI   s
             r   test_nan_and_zero_endpoints'TestRolling.test_nan_and_zero_endpoints  s   hh*+00iiA%Bii"AB

 )G
 	 G$V,44BA4NSSU((1#)qc/7C1#)qc/7C	
 	v0r   c           	      "   / SQnSn[        U Vs/ s H  n[        SU-  U-  5      US-   SS.PM     sn5      n[        R                  " [        SS9   UR                  S	5      R                  S
SS9  S S S 5        g s  snf ! , (       d  f       g = f)N)r   r   r   r   r  r   r   *   )trA   r   z.* must be monotonicr.   r   r  3s)r  rb   )r   r   r1   r2   r  r4   r>   )r5   shuffledsecrA   r   s        r   "test_groupby_rolling_non_monotonic.TestRolling.test_groupby_rolling_non_monotonic  s      IQRA9QUS[)AB?R
 ]]:-DEJJsO##s4#8 FE SEEs   "A; B  
Bc                    / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/
n[        U/ SQS9n[        US   5      US'   UR                  S5      nSn[        R                  " [
        US9   UR                  S5      R                  S5      R                  S 5      nS S S 5        UR                  S5      R                  SSS9S   R                  5       n[        R                  " UW5        g ! , (       d  f       NV= f)N)Davidz1/1/2015d   )r  z1/5/2015  )r  z	5/30/20152   )r  z	7/25/2015r  )Ryanz1/4/2014r  )r  z	1/19/2015r  )r  z	3/31/2016r  )Joez7/1/2015r  )r  z9/9/2015r  )r  z
10/15/2015r  )r   rF  amount)r  r   rF  rc   r.   r   c                 F    U R                  S5      S   R                  5       $ )N180Dr  r  r@   s    r   rB   4TestRolling.test_groupby_monotonic.<locals>.<lambda>  s    6!28!<!@!@!Br   r  rj  r  )r   r
   sort_valuesrE   rm   rn   r   r4   rD   r>   rX   rF   )r5   r  r   r6   rI   rJ   s         r   test_groupby_monotonic"TestRolling.test_groupby_monotonic  s     '&&&%&%$$%
 D*DE F,6
^^F#G''(:#FV$BC  G F#++Fv+>xHLLN
vx0 GFs   *1C++
C9c                    [        SSSS9n[        S/S-  S/S-  -   S/S	-  -   [        R                  " X45      [        R                  " S
5      S.5      nSn[
        R                  " [        US9   UR                  S5      R                  S5      R                  S 5      nS S S 5        UR                  S5      R                  SSS9R                  R                  5       n[
        R                  " UW5        g ! , (       d  f       N]= f)Nz2016-01-01 09:30:00r!   r  )r3  rz  freqr   r   r"   r   r#   r$   r   rc   r.   r   r   c                 F    U R                  S5      S   R                  5       $ )N4sr   r=   r@   s    r   rB   JTestRolling.test_datelike_on_monotonic_within_each_group.<locals>.<lambda>  s    4!5!:!:!<r   r  rj  )r	   r   r'   concatenater(   rE   rm   rn   r   r4   rD   r>   r   r?   rF   )r5   datesr   r6   rI   rJ   s         r   ,test_datelike_on_monotonic_within_each_group8TestRolling.test_datelike_on_monotonic_within_each_group  s     !6MS2Xb(A372^^UN3YYr]
 H''(:#FS!<=  G C((#(688==?
vx0 GFs   11C99
Dc                 6   [        S/S-  S/S-  -   S Vs/ s H  n[        USS5      PM     snS-  [        S5      S.5      n[        R                  " [
        SS9   UR                  S	5      R                  S
SS9  S S S 5        g s  snf ! , (       d  f       g = f)Nr   r   r   )i  i  rc  r   r   z&Each group within B must be monotonic.r.   r   365Dr   rj  )r   r   rq   r1   r2   r  r4   r>   )r5   yearr   s      r   0test_datelike_on_not_monotonic_within_each_group<TestRolling.test_datelike_on_not_monotonic_within_each_group  s    S1WsQw&8JK8Jia+8JKaO1X
 ]]:-UVJJsO##Fs#3 WV	 L WVs   B
 B


Br   )5r6  r7  r8  r9  r7   rK   rT   r1   markparametrizerv   r   r   r   r   r   r   r   r   r   r  r  r   r%  r=  rN  rQ  rX  r`  rq  rv  r  r  r  r  r  r  r  r  r  r  r   r   r  r  r   r  r  r  r  r  r  r:  r   r   r   r+   r+   1   s   +
1$1 [[	
00 [[S5%.10 20 [[M00" [[.&!ucl0KL0 M00 [[S65/20 30" [[S65/21 31 [[
3*sCj)	*VsCj3*5M,NO0	0@0 0. [[73+U|9TU1 V1?0B1, [[]I60 7041208161< [[VeU^41 51(060:0"&1P [[
!4	5R7HI0	0  [[c{C0D$<2IJ99 [[\D%=91 :1,0(<<.K(
0 [[76EF6GH6KL7JK		
77  [[J**Iz+BCc3ZP3310 [[Ve9:;w ",/!,/!,/!,/	 8	
$0%$061>	9 1D12
4r   r+   c                   ^   \ rS rSr\R
                  S 5       r\R                  R                  S/ SQ5      S 5       r	\R                  R                  SSS/5      S 5       r
\R                  R                  S	/ S
Q5      S 5       r\R                  R                  SSS/5      S 5       rS rSrg)TestExpandingi  c                 j    [        S/S-  S/S-  -   S/S-  -   [        R                  " S5      S.5      $ r    r&   )r5   s    r   frameTestExpanding.frame  s6    sRx1#(2aS1W<299R=QRRr   rV   rW   c                   ^ UR                  SSS9nUR                  5       n[        UT5      " 5       nSn[        R                  " [
        US9   UR                  U4S j5      nS S S 5        WR                  SSS9n[        R                  " US   [        S	5      /5      nXl        [        R                  " XW5        g ! , (       d  f       N_= f)
Nr   Fr^   rc   r.   c                 B   > [        U R                  5       T5      " 5       $ r   rg   r  rh   s    r   rB   .TestExpanding.test_expanding.<locals>.<lambda>  s    )B)Dr   r   rj   r$   r4   r  rg   rE   rm   rn   rD   ro   r   rp   rq   rr   rs   	r5   rV   r  rG   rS   rJ   r6   rI   ru   s	    `       r   test_expandingTestExpanding.test_expanding  s     MM#%M0KKMAG''(:#FwwDEH G ==1=-#//sU2Y0GH'
f/ GF   B==
Cry   rz   c                   ^ UR                  SSS9nUR                  5       n[        UT5      " SS9nSn[        R                  " [
        US9   UR                  U4S j5      nS S S 5        WR                  SS	S
9n[        R                  " US   [        S5      /5      nXl        [        R                  " XW5        g ! , (       d  f       N_= f)Nr   Fr^   r   r|   rc   r.   c                 @   > [        U R                  5       T5      " SS9$ )Nr   r|   r  rh   s    r   rB   3TestExpanding.test_expanding_ddof.<locals>.<lambda>   s    )B)Jr   r   rj   r$   r  r  s	    `       r   test_expanding_ddof!TestExpanding.test_expanding_ddof  s    MM#%M0KKMAA&G''(:#FwwJKH G ==1=-#//sU2Y0GH'
f/ GFrx   r   r   c                   ^ UR                  SSS9nUR                  5       nUR                  STS9nSn[        R                  " [
        US9   UR                  U4S j5      nS S S 5        WR                  SS	S
9n[        R                  " US   [        S5      /5      nXl        [        R                  " XW5        g ! , (       d  f       N_= f)Nr   Fr^   r   r   rc   r.   c                 @   > U R                  5       R                  STS9$ )Nr   r   )r  r   r   s    r   rB   7TestExpanding.test_expanding_quantile.<locals>.<lambda>3  s    !++-00M0Rr   r   rj   r$   )r4   r  r   rE   rm   rn   rD   ro   r   rp   rq   rr   rs   )	r5   r   r  rG   rS   rJ   r6   rI   ru   s	    `       r   test_expanding_quantile%TestExpanding.test_expanding_quantile(  s     MM#%M0KKMC}=G''(:#FwwRH G
 ==1=-#//sU2Y0GH'
f/ GFrx   r   r   c                   ^^ TR                  S5      nUR                  5       n[        UT5      " T5      nUU4S jnSn[        R                  " [
        US9   UR                  U5      nS S S 5        [        [        SS5      5      [        [        SS5      5      -   n	[        R                  WR                  U	S	4'   [        R                  US'   [        R                  " XX5        [        UR                  T5      " S
S9nU4S jn
Sn[        R                  " [
        US9   UR                  U
5      nS S S 5        [        R                  " XX5        g ! , (       d  f       N= f! , (       d  f       N6= f)Nr   c                 D   > [        U R                  5       T5      " T5      $ r   r  )rA   rV   r  s    r   func_05TestExpanding.test_expanding_corr_cov.<locals>.func_0C  s    1;;=!,U33r   rc   r.   r!   =   H   q   r   Tr   c                 T   > [        U R                  R                  5       T5      " SS9$ )NTr   )rg   r   r  rh   s    r   func_15TestExpanding.test_expanding_corr_cov.<locals>.func_1T  s    133==?A.==r   )r4   r  rg   rE   rm   rn   rD   r   rq   r'   r   ilocrs   r   rF   )r5   rV   r  rG   rS   rJ   r*  r6   rI   null_idxr0  s    ``        r   test_expanding_corr_cov%TestExpanding.test_expanding_corr_cov<  s   MM#KKMAu%	4 H''(:#FwwvH G b"&eBn)==%'VVhk" 
f/a$/	> H''(:#FwwvH G
v0' GF" GFs   E E"
E"
E0c                   ^ UR                  SSS9nUR                  5       nUR                  S TS9nSn[        R                  " [
        US9   UR                  U4S j5      nS S S 5        WR                  SS	S
9n[        R                  " US   [        S5      /5      nXl
        [        R                  " XW5        g ! , (       d  f       N_= f)Nr   Fr^   c                 "    U R                  5       $ r   r   r@   s    r   rB   4TestExpanding.test_expanding_apply.<locals>.<lambda>a  r   r   r   rc   r.   c                 B   > U R                  5       R                  S TS9$ )Nc                 "    U R                  5       $ r   r   r   s    r   rB   FTestExpanding.test_expanding_apply.<locals>.<lambda>.<locals>.<lambda>e  s
    r   r   )r  rD   r   s    r   rB   r8  e  s    !++---.?S-Ir   r   rj   r$   )r4   r  rD   rE   rm   rn   ro   r   rp   rq   rr   rs   )	r5   r   r  rG   rS   rJ   r6   rI   ru   s	    `       r   test_expanding_apply"TestExpanding.test_expanding_apply\  s    MM#%M0KKM *4G''(:#FwwIH G
 ==1=-#//sU2Y0GH'
f/ GFr  r   N)r6  r7  r8  r9  r1   fixturer  r  r  r  r!  r&  r4  r<  r:  r   r   r   r  r    s    ^^S S [[C00 [[S5%.10 20 [[M00" [[S65/21 31>0r   r  c            
       @   \ rS rSr\R
                  R                  SS/ SQ/S\R                  SSS//S	\R                  S
SS///5      S 5       r	\R
                  R                  SS\R                  SSS//S\R                  S
SS///5      S 5       r
S rS rS rSrg)TestEWMio  zmethod, expected_datar?   )r   gUUUUUU?gm۶m?g""""""@ry   g۞?g?gt ?rz   r   gn۶m۶?g++?c                    [        S/S-  [        S5      S.5      n[        UR                  S5      R	                  SS9U5      " 5       n[        SU0[
        R                  " / SQSS /S	9S
9n[        R                  " XE5        g )Nr   r`   r%   r   r   comr   )r   r   r   r   r   r   )	r   rq   rg   r4   ewmr   r   rE   rs   r5   methodr   r   rJ   rI   s         r   test_methodsTestEWM.test_methodsp  s     cUQYU1X67C,,,5v>@- (( Dk
 	f/r   r   r   r   r   grڶ?g߿yq+?c                   ^ [        S/S-  [        S5      S.5      n[        UR                  S5      R	                  SS9T5      " 5       n[        SU0[
        R                  " / SQ/ S	QS
9S9n[        R                  " XE5        UR                  S5      S/   R                  U4S j5      n[        R                  " XE5        g )Nr   r`   r%   r   r   rB  r   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   NNr   r   c                 @   > [        U R                  SS9T5      " 5       $ )Nr   rB  )rg   rD  )rA   rF  s    r   rB   /TestEWM.test_pairwise_methods.<locals>.<lambda>  s    gaeeenf57r   )
r   rq   rg   r4   rD  r   r   rE   rs   rD   rE  s    `    r   test_pairwise_methodsTestEWM.test_pairwise_methods  s     cUQYU1X67C,,,5v>@- (( (
 	f/::c?C5)//7
 	f/r   c                     SnUR                  S5      nUR                  S5      R                  X#S9R                  5       n[	        S/ SQ0[
        R                  " / SQSS /S9S	9n[        R                  " XE5        g )
N23 daysr   r   halflifetimesr   )
r   gCus=?g;pGR?gZkB?r   g>(?g8Kr?r   gҧU?gA9w?)
r   r   )r   r   )r   r   )r   r   r  r   )r   r   )r   r   )r   r#   r   r   )	popr4   rD  r?   r   r   r   rE   rs   )r5   r   rQ  rR  rJ   rI   s         r   
test_timesTestEWM.test_times  s    $$$S)--x-MRRT  (( Dk
> 	f/r   c                     SnUR                  S5      nUR                  S5      nUR                  X#S9R                  5       nUR                  X#R                  S9R                  5       n[
        R                  " XV5        g )NrO  r   r   rP  )rS  r4   rD  r?   valuesrE   rs   )r5   r   rQ  rR  r
  rJ   rI   s          r   test_times_arrayTestEWM.test_times_array  si    $  %7<<>668<<6@EEG
f/r   c                 ^   [        / SQ[        SSSS9[        S5      S.5      nUR                  S5      R	                  SS	S
9nUR                  5       n[        [        SSSS9S/S-  S.[        R                  " / SQ[        [        S5      5      /SS /S9S9n[        R                  " X45        US   R                  5       n[        S/S-  [        R                  " / SQ[        SSSS9/SS	/S9SS9n[        R                  " X55        UR                  5       n[        R                  " X45        g )N)r   r   r   r   r   z2021-9-1r   h)rz  r  )r   	timestampr   r   1hr\  rj  r   )r\  r   r   r   r   r   )r   r	   rq   r4   r>   rQ   r   rp   r   rE   rs   r   rF   )r5   r   grprJ   expected_dfexpected_seriess         r   "test_dont_mutate_obj_after_slicing*TestEWM.test_dont_mutate_obj_after_slicing  s)   /'
ACH1X
 jj&&t&<'
ACHUQY ((*DqN;D$<
 	f2S! EAI((-z13? [) 

 	v7
f2r   r   N)r6  r7  r8  r9  r1   r  r  r'   r   rG  rL  rT  rX  ra  r:  r   r   r   r@  r@  o  s    [[VWRVVXx:;RVVS"46HIJ	
00$ [[
2663Q'	(52663(2S*TU0	0.%0N0%3r   r@  c                  |   [        / SQ/ SQS.5      n U R                  S/5      nUR                  S5      R                  U S9n[        R
                  " / SQSS /S9n[        [        R                  [        R                  [        R                  /[        R                  S	S	/S.US
9n[        R                  " X$5        g )N)r   rd  rd  r`   r   r   r   r   r   r   ))rd  r   )rd  r   )rd  r   r   r   r   
r   r4   r>   r   r   r   r'   r   rE   rs   r   r
  rJ   rr   rI   s        r   .test_rolling_corr_with_single_integer_in_indexri    s    	+)<	=B	SE	BZZ]b)F""#DSRVKXEvvrvvrvv&bffc3-?@H &+r   c                  |   [        / SQ/ SQS.5      n U R                  S/5      nUR                  S5      R                  U S9n[        R
                  " / SQSS /S9n[        [        R                  [        R                  [        R                  /[        R                  S	S	/S.US
9n[        R                  " X$5        g )N)r   r   r   re  r   r   r   rf  ))r   r   )r   r   )r   r   r   r   r   rg  rh  s        r   &test_rolling_corr_with_tuples_in_indexrk  	  s    	 	

B& 
SE	BZZ]b)F""/T{E vvrvvrvv&bffc3-?@H &+r   )numpyr'   r1   pandasr   r   r   r   r   r   r	   r
   pandas._testing_testingrE   pandas.api.indexersr   pandas.core.groupby.groupbyr   r>  r   r)   r+   r  r@  ri  rk  r   r   r   <module>rr     s     	 	 	  + 3  0 O OM4 M4`k0 k0\K3 K3\	,,r   