
    >iefD                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dl	m
Z d dlZd dlmZ d dlmZ dZ ej        ej                            e                                          ej                            def          ej                            def          ej                            def          ej                            def          d          Z ej        ed	          Z ej        d
dd                               ej        d
dd                    de         Z ej        d
dd          de         Zej                            e                                          ej                            def          ej                            def          ej                            def          ej                            def          dZ ej        ee          Z  ej        ee          Z! ej        e d	          Z"dQdZ#ej$        %                    dddg          ej$        %                    dddg          d                         Z&ej$        %                    dddg          ej$        %                    dddg          ej$        %                    dddg          ej$        %                    dddg          ej$        %                    dddg          ej$        %                    ded d	fed	d fed	d	fed d fe! ej'        d	           ej'        d	          fe! ej'        d	          d fg          d                                                                         Z(ej$        %                    dddg          ej$        %                    dddg          ej$        %                    dddg          ej$        %                    dddg          d                                                 Z)d Z*d  Z+d! Z,d"d#d$d%d&d'd(d)d*d+d,d-e,fdfgZ-ej$        %                    d.e-          ej$        %                    d/g d0          ej$        %                    d1ddg          d2                                     Z.ej$        %                    d/g d0          ej$        %                    d1ddg          d3                         Z/d4 Z0d5 Z1ej$        %                    d6 e2d 7           e2d7           e2dd8           e2d97           e2d:7           e2d;7          g          d<             Z3d= Z4d> Z5d? Z6d@ Z7ej$        %                    d.e-          ej$        %                    d/ddAdej8        9                    dB          g          dC                         Z:ej$        %                    d/ddAdej8        9                    dB          g          dD             Z;ej$        %                    dEg dF          dG             Z<ej$        %                    d/g dH          dI             Z=ej$        %                    dJg dK          dL             Z>dM Z?dN Z@dO ZAdP ZBdS )R    )annotationsN)PANDAS_GE_210)	assert_eq(   d   size)abcde   z
2016-01-013s)freqperiods5s1sindexc                n    |                      |          }|                      |           }| |z   |z   |z   S N)shift)dfbeforeafterr   r
   r   s         Alib/python3.11/site-packages/dask/dataframe/tests/test_rolling.pyshifted_sumr   5   s8    
A
%A6A:>    npartitions      use_dask_inputTFc           
        t           }|rt          j        t           |           }dD ]\  }}t          j        j                            t          |||||d          }t          t           ||d          }t          ||           t          j        j                            t          |j	        ||||d          }t          t           j	        ||d          }t          ||           d S )N))r   r   )r   r   )r   r   )r   r      r   )
r   ddfrom_pandasdask	dataframerollingmap_overlapr   r   r   )r    r#   ddfr   r   ressols          r   test_map_overlapr0   ;   s     C .nR--9  n$00feVUa 1 
 
 "feq111#s n$00vu 1 
 
 "$333#s r   enforce_metadatatransform_divisionsalign_dataframesoverlap_setup)secondsc                2   |\  }}}|}	|dz  }
| r*t          j        |	|          }	t          j        |
|          }
d } ||           ||          }}t          j        j                            t          |	|||||
|||
  
        }t          ||||dz            }t          ||           t          j        j                            t          |	j        |||||
j        |||
  
        }t          |j        |||j        dz            }t          ||           d S )Nr%   c                N    t          | t          j                  r
| j        dz
  n| S )Nr!   )
isinstancedatetime	timedeltar5   )overlaps    r   get_shifted_sum_argzAtest_map_overlap_multiple_dataframes.<locals>.get_shifted_sum_argv   s)    #-gx7I#J#JWGOaPW	
r   )r3   r2   r1   )	r'   r(   r)   r*   r+   r,   r   r   r   )r#   r    r1   r2   r3   r4   r*   r   r   r-   ddf2r<   before_shifted_sumafter_shifted_sumr.   r/   s                   r   $test_map_overlap_multiple_dataframesr@   R   sm   8  -Ivu
Cq=D 1nS+..~dK00
 
 

 -@,?- -5!! *
 .
 
,
,)/) -  C i!35F	TU
V
VCc3 .
 
,
,)/) -  C '):IK!O C c3r   c                |   t          j        t          |           }|                    t          ddddd|||	  	        }|                    t          ddddd|||	  	        }t          |j                  t          |j                  k    sJ |                    t          ddddd|||	  	        }|j        |j        k    sJ |j                                        |j                                        z
  }t          |          | k    sJ |                    t          ddddd          }	|	j        |j        k    sJ d S )Nr   r   r%   )r   r3   r2   r1   r&   )
r'   r(   r   r,   r   setr)   _namekeyslen)
r    r1   r2   r3   r-   r.   res2res3diffres4s
             r   test_map_overlap_namesrJ      sY    .[
)
)C
//				
)/)  
 
C ??				
)/)  
 
D sx==C	NN****??				
)/)  
 
D :""""9>>chmmoo-Dt99####??;1aa?88D:""""""r   c            	        t          j        t                    5  t                              t
          ddddd           d d d            n# 1 swxY w Y   t          j        t                    5  t                              t
          ddddd           d d d            n# 1 swxY w Y   t          j        t                    5  t                              t
          ddddd                                           d d d            n# 1 swxY w Y   t          j        t                    5  t                              t
          t          j
        d          t          j
        d          ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t                              t
          ddddd           d d d            d S # 1 swxY w Y   d S )	Ng      ?r   r   r%   r&   r   r   )pytestraises
ValueErrorr-   r,   r   NotImplementedErrorcompute	TypeErrorpd	Timedelta r   r   test_map_overlap_errorsrV      s   	z	"	" 8 8S!QQ7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
z	"	" 7 7QAqA6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
*	+	+ D DQQq99AACCCD D D D D D D D D D D D D D D 
y	!	! X XR\$%7%7d9K9KQPQUVWWWX X X X X X X X X X X X X X X 
y	!	! < <T4A;;;< < < < < < < < < < < < < < < < < <sZ   &AAA0&B""B&)B&8D

DD.A
FFF(&GG"Gc                 6   t          j        g dg dd                              d          } t          j        | d          }|                    d ddd	d	d
          }|                     d                                          }t          ||           d S )N)r!   r%   r"         )g      ?g       @g      @g      @g      @)xymyindexr%   r    c                P    |                      d                                          S )Nr%   )r+   sum)r   s    r   <lambda>z/test_map_overlap_provide_meta.<locals>.<lambda>   s    2::a==$$&& r   r   i8)meta)	rS   	DataFramerename_axisr'   r(   r,   r+   r_   r   )r   r-   r.   r/   s       r   test_map_overlap_provide_metare      s    	%>%>%>??
 
k)  .
+
+
+C //&&1D3I3I   C **Q--



Cc3r   c                x    t          j        | |                                 z
                                            S r   )npfabsmeanrZ   s    r   madrk      s*    71qvvxx<  %%'''r   )countrU   F)r_   rU   F)ri   rU   F)medianrU   F)minrU   F)maxrU   F)stdrU   T)varrU   T)skewrU   T)kurtrU   T)quantile)gRQ?Fapplyzmethod,args,check_less_precisewindow)r!   r%   r"      centerc                   |rddd}ni }| dk    rd}nd }t                               |||          }t                              |||          }| dk    rddi}ni }t           t	          ||           |i | t	          ||           |i |fi | t           j                            |||          }t          j                            |||          }t           t	          ||           |i | t	          ||           |i |fi | d S )	NMbP?atolrtolrl   r   )rx   min_periodsru   rawF)r   r+   r-   r   getattrr
   )	methodargsrv   rx   check_less_preciser~   prollingdrollingkwargss	            r   test_rolling_methodsr     ss      &*D99zz&[zIIH{{6&k{JJH!&!!42622!&!!42622     t||F6{|KKHu}}VF}LLH!&!!42622!&!!42622      r   c                   t                               dd                              | |          }t                              dd                              | |          }t	          |                                |                                           t           j                            | |          }t          j                            | |          }t	          |                                |                                           d S )Nr
   r!   axis)rx   )r   dropr+   r-   r   covr   )rv   rx   r   r   s       r   test_rolling_covr   :  s     wwsw##++F6+BBHxx!x$$,,VF,CCHhllnnhllnn--- t||F6|22Hu}}VF}33Hhllnnhllnn-----r   c                    t          j        t          j                            d                                          t          j                            dd          d          } t          j        | d          t          j
        t          fd           t          j
        t          fd           t          j
        t          fd	           t          j
        t          fd
           t          j
        t          fd           t          j
        t          fd           t          j
        t          fd           d S )N   r   )r   r   r
   r   r   c                 .                          d          S )Ng      ?r+   r-   s   r   r`   z%test_rolling_raises.<locals>.<lambda>N  s    ckk#&6&6 r   c                 .                          d          S )Nr   r   s   r   r`   z%test_rolling_raises.<locals>.<lambda>O  s    ckk"oo r   c                 2                          dd          S )Nr   g333333?r~   r   r   s   r   r`   z%test_rolling_raises.<locals>.<lambda>P  s    ckk!k&E&E r   c                 2                          dd          S )Nr   r   r   r   s   r   r`   z%test_rolling_raises.<locals>.<lambda>Q  s    ckk!k&D&D r   c                 2                          dd          S )Nr   
   r   r   r   s   r   r`   z%test_rolling_raises.<locals>.<lambda>R  s    ckk!"k&=&= r   c                 2                          dd          S )Nr   coulombsr   r   r   s   r   r`   z%test_rolling_raises.<locals>.<lambda>S  s    ckk!*k&E&E r   c                 v                          d                                                                          S )Nr   )r+   ri   rQ   r   s   r   r`   z%test_rolling_raises.<locals>.<lambda>T  s+    s{{3/?/?/D/D/F/F/N/N/P/P r   )rS   rc   rg   randomrandncumsumrandintr'   r(   rM   rN   rO   rP   r   r-   s    @r   test_rolling_raisesr   H  s,   	ioob!!((**1B1B3U1B1S1STT
 
B .Q

C
M*6666777
M*5555666
M*EEEEFFF
M*DDDDEEE
M*====>>>
M*EEEEFFF
M%'P'P'P'PQQQQQr   c                 T   t          j        g dg dd          } t          j        | d          }t	          |                    d                                          j                  t	          |                    d                                          j                  k    sJ d S )N)r!   r%   r   )r"   rw      r   r%   r]   )rS   rc   r'   r(   sortedr+   r_   r)   )r   r
   s     r   test_rolling_namesr   W  s    	IIIIII66	7	7B
rq)))A!))A,,""$$)**fQYYq\\5E5E5G5G5L.M.MMMMMMMr   r   r   )r~   r   columnsrowsseriesc                d   t          j        t          j                            dd                    }t          j        |d          }t          rt          j	        t          d          nt          j                    }| d         dk    r|5  |d                             d	d
                                          }d d d            n# 1 swxY w Y   |5  |d                             d	d
                                          }d d d            n# 1 swxY w Y   t          ||           d S |5   |j        di |                                 }d d d            n# 1 swxY w Y   |5   |j        di |                                 }d d d            n# 1 swxY w Y   t          ||           d S )N      r   r]   z#The 'axis' keyword|Support for axismatchr   r   rw   r   r   )r   )rS   rc   rg   r   r   r'   r(   r   rM   warnsFutureWarning
contextlibnullcontextr+   rp   r   ri   )r   r   r-   ctxexpectedresults         r   test_rolling_axisr   ]  s    
bioob"--	.	.B
.
+
+
+C 	&]*OPPPP#%% 
 f~!! 	6 	6!u}}QQ}//3355H	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	5 	5V^^AA^..2244F	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5(F#####  	6 	6!rz..v..3355H	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	5 	5 S[--f--2244F	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5(F#####sH   0CCC0DDD0 EE #E ) FFFc                 
   t          j        t          j                            dd                    } t          j        | d          }| |f| d         |d         ffD ]$\  }}t          |                    d          	                                |                    d          	                                           t          |                    d          	                                |                    d          	                                           t          j        t                    5  |                    d          	                                                                 d d d            n# 1 swxY w Y   &d S )	N2   r%   rw   r]   r   r   rY      )rS   rc   rg   r   r   r'   r(   r   r+   ri   rM   rN   rP   rQ   )r   r-   objdobjs       r   test_rolling_partition_sizer     st   	bioob!,,	-	-B
.
+
+
+C3i"Q%Q1 . .	T#++b//&&(($,,r*:*:*?*?*A*ABBB#++b//&&(($,,r*:*:*?*?*A*ABBB].// 	. 	.LL!!##++---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.. .s   0:E66E:	=E:	c                     t          j        t          j        dgdz            d          } t	          |                     d                    }|dk    sJ d S )Nr      r   r]   r"   zRolling [window=4,center=False])r'   r(   rS   rc   reprr+   )r-   r.   s     r   test_rolling_reprr     sU    
.rdRi00a
@
@
@C
s{{1~~

C3333333r   c                 d    t          t                              d                    } | dk    sJ d S )N4sz.Rolling [window=4s,center=False,win_type=freq])r   dtsr+   )r.   s    r   test_time_rolling_reprr     s3    
s{{4  
!
!CBBBBBBBr   c                     t                               d          } | j        dk    sJ | j        J | j        J | j        dk    sJ d S )Nr   r   )r   r+   rv   r~   win_type	_win_type)r   s    r   test_time_rolling_constructorr     s]    [[F=D    %%%?"""v%%%%%%r   2srw   c                   |rddd}ni }| dk    rddi}ni }t                               |          }t                              |          }t           t	          ||           |i | t	          ||           |i |fi | t           j                            |          }t          j                            |          }t           t	          ||           |i | t	          ||           |i |fi | d S )Nrz   r{   ru   r   F)tsr+   r   r   r   r
   )r   r   rv   r   r   r   r   s          r   test_time_rolling_methodsr     sF   
   &*D99 zz&!!H{{6""H!&!!42622!&!!42622     t||F##Hu}}V$$H!&!!42622!&!!42622      r   c                   t                               dd                              |           }t                              dd                              |           }t	          |                                |                                           t           j                            |           }t          j                            |           }t	          |                                |                                           d S )Nr
   r!   r   )r   r   r+   r   r   r   r   )rv   r   r   s      r   test_time_rolling_covr     s     wwsw##++F33Hxx!x$$,,V44Hhllnnhllnn--- t||F##Hu}}V$$Hhllnnhllnn-----r   zwindow,N))r   r   )r   r   )10sr   )10hr   )r   r   )r   r   c                   t          j        t          j        d|d          t          j                            d|f          d          }|                    d          }t          j        |d          }t          |
                    |                                           |
                    |                                                      t          |
                    |                                           |
                    |                                                      t          |
                    |                                           |
                    |                                                      d S )	N2016-01-01 00:00:00r   r   r   r   r   r   r
   rw   )rS   rc   
date_rangerg   r   r   	set_indexr'   r(   r   r+   r_   rl   ri   )rv   Nr   r-   s       r   +test_time_rolling_large_window_fixed_chunksr     s8   
 
4adKKK""3aT"22	
 	

 
B 
c		B
.Q

Cckk&!!%%''F););)?)?)A)ABBBckk&!!''))2::f+=+=+C+C+E+EFFFckk&!!&&(("**V*<*<*A*A*C*CDDDDDr   )r   r   20sr   c                f   t          j        t          j        ddd          t          j                            dd          d          }t          j        |d          }|                    g d	
          }|	                    d          }|	                    d          }t          |                    |                                           |                    |                                                      t          |                    |                                           |                    |                                                      t          |                    |                                           |                    |                                                      d S )Nr   r   r   r   )r   r   r   rw   )
r   rw   r      !   6   O   P   R   c   )	divisionsr
   )rS   rc   r   rg   r   r   r'   r(   repartitionr   r   r+   r_   rl   ri   )rv   r   r-   s      r   .test_time_rolling_large_window_variable_chunksr     s_   	4cMMM""3V"44	
 	

 
B .Q

C
//$J$J$J/
K
KC	c		B
--

Cckk&!!%%''F););)?)?)A)ABBBckk&!!''))2::f+=+=+C+C+E+EFFFckk&!!&&(("**V*<*<*A*A*C*CDDDDDr   zbefore, after))6sr   )r   r   )r   r   c                   | t                                                                                                         }t                               fd| |          }t          ||           t          j        |           } t          j        |          }t                               fd| |          }t          ||           d S )Nc                R    |                                                                S r   r+   rl   rZ   rv   s    r   r`   z#test_time_rolling.<locals>.<lambda>      qyy'8'8'>'>'@'@ r   c                R    |                                                                S r   r   r   s    r   r`   z#test_time_rolling.<locals>.<lambda>  r   r   )r   rQ   r+   rl   r,   r   rS   rT   )r   r   r   r   rv   s       @r   test_time_rollingr     s    F{{}}$$V,,2244H __@@@@&%PPFfh \&!!FLE__@@@@&%PPFfhr   c                 d   t          j        t          d          t          ddd          d          } t          j        | d          }t          |                     d                              d	d
g          |                    d                              d	d
g                     t          |                     d                              dd d          |                    d                              dd d                     t          |                     d                              dd	g          |                    d                              dd	g                     t          |                     d                              ddd	gi          |                    d                              ddd	gi                     ddi}t           |                     d          j        d fi | |                    d          j        d fi |           d S )Nrw   r   r   r%   ABr   r]   )rv   ri   rp   r_   c                .    t          j        | d          S Nr!   )ddofrg   rp   rj   s    r   r`   z,test_rolling_agg_aggregate.<locals>.<lambda>  s    RVAA=N=N=N r   c                .    t          j        | d          S r   r   rj   s    r   r`   z,test_rolling_agg_aggregate.<locals>.<lambda>  s    bfQQ>O>O>O r   r   r   Tc                .    t          j        | d          S r   r   rj   s    r   r`   z,test_rolling_agg_aggregate.<locals>.<lambda>  s    RVAA->->-> r   c                .    t          j        | d          S r   r   rj   s    r   r`   z,test_rolling_agg_aggregate.<locals>.<lambda>  s    bfQQ.?.?.? r   )	rS   rc   ranger'   r(   r   r+   aggru   )r   r-   r   s      r   test_rolling_agg_aggregater     s8   	E!HH5B??;;	<	<B
.
+
+
+C


!
  &%111!!65/22  
 


!
  u3N3N!O!OPP1!!4O4O"P"PQQ  
 


!
  %111!!5&/22  
 


!
  #v!7881!!3"899  
 T]F"

!
"#>#>II&II#1#$?$?JJ6JJ    r   c                    t          j        d           t          j        t	          d          t	          ddd          d          } t          j        | d          }d	 }t          |                     d          	                    |dd
          |                    d          	                    |dd
                     d S )Nnumbarw   r   r   r%   r   r   r]   c                0    t          j        |           dz   S )Nrw   )rg   r_   rj   s    r   fz$test_rolling_numba_engine.<locals>.f%  s    vayy1}r   T)enginer   )
rM   importorskiprS   rc   r   r'   r(   r   r+   ru   )r   r-   r   s      r   test_rolling_numba_enginer     s    
   	E!HH5B??;;	<	<B
.
+
+
+C   


1Ag488AQwD99    r   c                 ,   t          j        t          d          dd t          d          D             z  dt          j        dd                              d	          
          } t          j        | d          }|                     d                              d          	                                }|                    d                              d          	                                }t          ||d           |                     d          j                            d                                          }|                    d          j                            d                                          }t          ||d           d S )NiX  rw   c                2    g | ]}d t          |          z   S )g)str).0is     r   
<listcomp>z(test_groupby_rolling.<locals>.<listcomp>2  s"    <<<A3Q<<<<r   x   )column1group120190101<   )r   r   r      r]   r  15DF)check_divisions)rS   rc   r   r   repeatr'   r(   groupbyr+   r_   r   r  ri   )r   r-   r   actuals       r   test_groupby_rollingr  .  sb   	Szz<<s<<<<	
 	
 mJ333::2>>
 
 
B .
+
+
+Czz(##++E226688H[[""**5115577Fh6666zz(##+33E::??AAH[[""*22599>>@@Fh666666r   c            	     b   t          j        dddt          j        dddgg dd          } t	          j        | d	          }t          j        t          d
          5  |	                    d          
                    d                                           d d d            d S # 1 swxY w Y   d S )Nr   r!   r%   r"   rw   r   )r
   r
   r
   r   r   r
   r   )r   Cr]   z``window`` must be a ``freq``r   r  )rS   rc   rg   nanr'   r(   rM   rN   rO   r  r+   r_   r   s     r   /test_groupby_rolling_with_integer_window_raisesr  D  s    	!Q1a(/R/R/RSS
 
B .
+
+
+C	z)H	I	I	I * *C  ##'')))* * * * * * * * * * * * * * * * * *s   ;B$$B(+B()r   )C
__future__r   r   r9   numpyrg   pandasrS   rM   dask.dataframer*   r'   dask.dataframe.rollingr)   dask.dataframe._compatr   dask.dataframe.utilsr   r   rc   r   r   r   r   r   r(   r-   r   unionidxidx_constant_freqts_datar   ts_constant_freqr   r   markparametrizer0   r:   r@   rJ   rV   re   rk   &rolling_method_args_check_less_preciser   r   r   r   dictr   r   r   r   r   offsetsSecondr   r   r   r   r   r   r  r  r  rU   r   r   <module>r,     s   " " " " " "                         0 0 0 0 0 0 * * * * * *R\Y__Q&&((Ys!..Ys!..Ys!..Ys!..   bnR BM,T3777==ls;;;  1"	 #R]<dCHHH"1"M  
			"	"	$	$			3aT		*	*			3aT		*	*			3aT		*	*			3aT		*	*  R\
  
  2</@AAA bnR    A//)D%=99  :9 0/* )D%=99A//+dE];;.u>>+dE];;	Q
	Q
	Q
	Q
Hq)))Hq)))	

 
-8-a888!< 9 9  <; ?> <; 0/ :9(9x A//+dE];;.u>>+dE];;.# .# <; ?> <; 0/.#b< < <,  ( ( (
  !sfe#* &* $&L  <<<00D%=11  21 10 
B <<<00D%=11	. 	. 21 10	.R R RN N N !!###)&(
 
$ $
 
$2. . .4 4 4C C C
& & & $&L  D$bj6G6G6J6J#KLL  ML : D$bj6G6G6J6J#KLL	. 	. ML	. RRR E E	 E #=#=#=>>E E ?>E  *T*T*TUU    VU   >  7 7 7,* * * * *r   