
    OwgE                     (   d dl m Z  d dlZd dlZd dlmc mZ d dl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ej,                  di gej.                  di gd d	i gej0                  d
i gej2                  di gej4                  di gd di gd ddd igd di gd ddd igg
      d        Zej(                  j+                  dej,                  di gej.                  di gd d	i gej0                  d
i gej2                  di gej4                  di gd di gd ddd igd di gd ddd igg
      d        Zej(                  j+                  dej,                  di dgej.                  di dgd d	i d gej0                  d
i dgej2                  di dgej4                  di dgd di dgd ddd idgd  di dgd! ddd idgg
      d"        Zej(                  j+                  dej,                  di dgej.                  di dgd# d	i d gej0                  d
i dgej2                  di dgej4                  di dgd$ di dgd% ddd idgd& di dgd' ddd idgg
      d(        Zej(                  j+                  dej,                  di gej.                  di gej0                  d
i gej2                  di gej4                  di gd) di gd* ddd igd+ di gd, ddd igg	      d-        Zd. Z ej(                  j+                  d/di gdi gd
i gdi gdi gdi gddd igdi gddd igg	      ej(                  j+                  d0g d1      d2               Z!d3 Z"ej(                  j+                  d4di d5gdi d5gd	i d gd
i d5gdi d5gdi d5gdi d5gddd id5gdi d5gddd id5gg
      d6        Z#ej(                  j+                  d7di ddgdi ddgd	i d d gd
i ddgdi ddgdi ddgdi ddgddd iddgdi ddgddd iddgg
      d8        Z$ej(                  j+                  d7di ddgdi ddgd	i d d gd
i ddgdi ddgdi ddgdi ddgddd iddgdi ddgddd iddgg
      d9        Z%ej(                  j+                  d:d; d< d= d> d? d@ dA dB dC dD dE dF dG dH  ejL                  dI  ejN                  dJ      K      g      dL        Z(dM Z)dN Z*dO Z+dP Z,dQ Z-ej(                  j+                  dRdSD  cg c]  }  ej\                  d:|         c} dTD  cg c]  } dUD ]  } ej\                  | |         ! c}} z         dV        Z/ej(                  j+                  d:dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de  ejL                  df  ejN                  dJ      K      g      dg        Z0yc c} w c c}} w )h    )datetimeN)	DataFrameDatetimeIndexSeriesconcatisnanotna)offsetszcompare_func, roll_func, kwargsmeansumc                 n    t        j                  |       j                  t              j	                         S Nnpisfiniteastypefloatr   xs    a/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/window/test_rolling_functions.py<lambda>r      "    bkk!n++E2668     countmedianminmaxc                 0    t        j                  | d      S N   ddofr   stdr   s    r   r   r   "       266!!$ r   r$   c                 0    t        j                  | d      S Nr   r!   r#   r   s    r   r   r   #   r%   r   r"   c                 0    t        j                  | d      S r   r   varr   s    r   r   r   $   r%   r   r*   c                 0    t        j                  | d      S r'   r)   r   s    r   r   r   %   r%   r   c                     t        | j                  d|      |      di |}t        |t              sJ t	        dt        |       |xs d      d   dz   }t        j                  |j                  d    || |dz
  |              y )N2   stepr   r     )	getattrrolling
isinstancer   rangelentmassert_almost_equaliloc)seriescompare_func	roll_funckwargsr/   resultends          r   test_seriesr@      s    ( ?WV^^BT^2I>HHFff%%%
3v;	
*2
.
2C6;;r?Lb39O,PQr   c                 n    t        j                  |       j                  t              j	                         S r   r   r   s    r   r   r   5   r   r   c                 0    t        j                  | d      S r   r#   r   s    r   r   r   <   r%   r   c                 0    t        j                  | d      S r'   r#   r   s    r   r   r   =   r%   r   c                 0    t        j                  | d      S r   r)   r   s    r   r   r   >   r%   r   c                 0    t        j                  | d      S r'   r)   r   s    r   r   r   ?   r%   r   c                 P    t        |j                  d|      |      d	i |}t        |t              sJ t	        dt        |      |xs d      d   dz   }t        j                  |j                  dd d f   |j                  |dz
  |d d f   j                  |d|       d       y )
Nr-   r.   r   r    r0   )axisrawFcheck_namesr1   )
r2   r3   r4   r   r5   r6   r7   assert_series_equalr9   apply)rH   framer;   r<   r=   r/   r>   r?   s           r   
test_framerN   /   s    ( >WU]]2D]19=GGFfi(((
3u:tyq
)"
-
1CBE

38c>1$%++Lqc+Jr   z%compare_func, roll_func, kwargs, minp
   c                 n    t        j                  |       j                  t              j	                         S r   r   r   s    r   r   r   R   "    2;;q>((/335 r   c                 0    t        j                  | d      S r   r#   r   s    r   r   r   V   r%   r   c                 0    t        j                  | d      S r'   r#   r   s    r   r   r   W   r%   r   c                 0    t        j                  | d      S r   r)   r   s    r   r   r   X   r%   r   c                 0    t        j                  | d      S r'   r)   r   s    r   r   r   Y   r%   r   c                 l   d}| d d d   j                  d      j                         } t        |j                  ||      |      di |}|j                  d   }|dt        j                         z  z
  }	| d d d   j                  |	|      }
t        j                  |j                  d    ||
             y )N      Bwindowmin_periodsr0      r1   )resampler   r2   r3   indexr
   BDaytruncater7   r8   r9   )r:   r;   r<   r=   minpwinserseries_result	last_date	prev_datetrunc_seriess              r   test_time_rule_seriesri   M   s      C
1+

s
#
(
(
*CQGCKKsKEyQ 
M ##B'IB//I#A#;''	9=L=--b1<3MNr   c                 n    t        j                  |       j                  t              j	                         S r   r   r   s    r   r   r   n   rQ   r   c                 0    t        j                  | d      S r   r#   r   s    r   r   r   r   r%   r   c                 0    t        j                  | d      S r'   r#   r   s    r   r   r   s   r%   r   c                 0    t        j                  | d      S r   r)   r   s    r   r   r   t   r%   r   c                 0    t        j                  | d      S r'   r)   r   s    r   r   r   u   r%   r   c                    d}|d d d   j                  d      j                         } t        |j                  ||      |      d
i |}|j                  d   }	|	dt        j                         z  z
  }
|d d d   j                  |
|	      }t        j                  |j                  |	      |j                  ||       d	       y )NrW   rX   rY   rZ   r0   r]   rH   FrI   r1   )r^   r   r2   r3   r_   r
   r`   ra   r7   rK   xsrL   )rH   rM   r;   r<   r=   rb   rc   frmframe_resultrf   rg   trunc_frames               r   test_time_rule_frameru   i   s      C
!*

c
"
'
'
)CP73;;ct;DiP 
L ""2&IB//I!*%%i;K	",C0r   c                 0    t        j                  | d      S r   r#   r   s    r   r   r      r%   r   c                 0    t        j                  | d      S r'   r#   r   s    r   r   r      r%   r   c                 0    t        j                  | d      S r   r)   r   s    r   r   r      r%   r   c                 0    t        j                  | d      S r'   r)   r   s    r   r   r      r%   r   c                 R   t        t        j                  j                  d      j	                  d            }t        j
                  |d d t        j
                  |dd   t        |j                  dd      |      di |}t        j                  |j                  d    | |dd               t        |j                  dd	      |      di |}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            } t        |j                  dd      |      di |}t        |j                  d         sJ t        |j                  d         sJ |dk7  r] t        |j                  dd      |      di |} t        |j                  dd      |      di |}t        j                  ||       y y )NrX   r-   rO      r\   r0            r]   i         r   r   r    r1   )r   r   randomdefault_rngstandard_normalnanr2   r3   r7   r8   r9   r   r	   )r;   r<   r=   objr>   obj2result0result1s           r   	test_nansr      s    &&q)99"=
>CvvCHCI@WS[[[4i@J6JF6;;r?LR,EF AWS[[[4i@J6JFB   FKKO$$$FKKO$$$B   "))''*::2>?D@WT\\"!\4i@J6JFAQ   ED'#++ba+8)DNvND'#++ba+8)DNvN
w0 r   c                     t        t        j                  j                  d      j	                  d            } t        j
                  | d d t        j
                  | dd  | j                  dd      j                         }t        j                  |j                  d   t        j                  | dd       j                  t              j                                y )NrX   r-   rO   r{   r|   r}   r0   )r   r   r   r   r   r   r3   r   r7   r8   r9   r   r   r   r   )r   r>   s     r   test_nans_countr      s    
&&q)99"=
>CvvCHCI[[[,224FBSC[188?CCEr   zroll_func, kwargsrb   )r   c   d   c                 P    t        | j                  t        |       dz   ||      |      di |} t        | j                  t        |       ||      |      di |}t        |      }t	        j
                  |t        |             | }t	        j                  ||   ||          y )Nr    r\   r/   r1   )r2   r3   r6   r   r7   rK   r8   )r:   rb   r<   r=   r/   r>   expectednan_masks           r   test_min_periodsr      s     Ws6{QDtDi Fws6{4@) H F|H8T(^4yH6(+Xh-?@r   c                 H   | j                  t        |       dz   d|      j                         }| j                  t        |       d|      j                         }t        |      }t	        j
                  |t        |             | }t	        j                  ||   ||          y )Nr    r   r   )r3   r6   r   r   r7   rK   r8   )r:   r/   r>   r   r   s        r   test_min_periods_countr      s    ^^CK!O^FLLNF~~c&kqt~DJJLHF|H8T(^4yH6(+Xh-?@r   zroll_func, kwargs, minpr   c           
         t        t        j                  j                  d      j	                  d            }t        j
                  |d d t        j
                  |dd   t        |j                  d|d      |       di |} t        t        |t        t        j
                  gdz        g      j                  d|	      |       di |j                  dd  j                  d
      }t        j                  ||       y )NrX   r-   rO   r{   r~   T)r\   center	   r}   )dropr1   )r   r   r   r   r   r   r2   r3   r   r9   reset_indexr7   rK   )r<   r=   rb   r   r>   r   s         r   test_centerr      s      &&q)99"=
>CvvCHCIOWS[[d[CYO 
F	
C1-./777My	
 		 
ab	 
$	  68,r   z#roll_func, kwargs, minp, fill_valuec                    t        d      D cg c]  }d|d
 }} t        | j                  t        | j                        |z         j                  d|      |      d	i |j                  d      j                  | j                        } t        | j                  d|d      |      d	i |}||j                  |      }t        j                  ||       y c c}w 
N   r   drW   rZ   iT)r[   r\   r   r1   )
r5   r2   reindexlistr_   r3   shiftfillnar7   rK   )	r:   r<   r=   rb   
fill_valuer   s	series_xp	series_rss	            r   test_center_reindex_seriesr     s    " ""I&q1QqE&A&	
NN4-12::"RV:W	
 	 	 
s		 bd4@) I $$Z0	9i0 	'   Cc                    t        d      D cg c]  }d|d
 }} t        | j                  t        | j                        |z         j                  d|      |      d	i |j                  d      j                  | j                        } t        | j                  d|d      |      d	i |}||j                  |      }t        j                  ||       y c c}w r   )
r5   r2   r   r   r_   r3   r   r   r7   assert_frame_equal)	rM   r<   r=   rb   r   r   r   frame_xpframe_rss	            r   test_center_reindex_framer   '  s    " ""I&q1QqE&A&	
MM$u{{+a/088PT8U	
 	 	 
s		 wRT$? H ??:.(H- 	'r   fc                 J    | j                  dd      j                  | d      S NrO   r   rZ   F)pairwiser3   covr   s    r   r   r   M  #    !))21)599!e9L r   c                 J    | j                  dd      j                  | d      S r   r3   corrr   s    r   r   r   N  #    !))21)5::1u:M r   c                 D    | j                  dd      j                         S NrO   r   rZ   r3   r   r   s    r   r   r   O      !))21)599; r   c                 D    | j                  dd      j                         S r   r3   r   r   s    r   r   r   P  r   r   c                 D    | j                  dd      j                         S r   r3   r   r   s    r   r   r   Q  r   r   c                 D    | j                  dd      j                         S r   r3   r   r   s    r   r   r   R      !))21)5::< r   c                 D    | j                  dd      j                         S r   r3   r$   r   s    r   r   r   S  r   r   c                 D    | j                  dd      j                         S r   r3   r*   r   s    r   r   r   T  r   r   c                 D    | j                  dd      j                         S r   r3   skewr   s    r   r   r   U  r   r   c                 D    | j                  dd      j                         S r   r3   kurtr   s    r   r   r   V  r   r   c                 H    | j                  dd      j                  d      S )NrO   r   rZ         ?)qr3   quantiler   s    r   r   r   W  s!    !))21)5>>>E r   c                 D    | j                  dd      j                         S r   r3   r   r   s    r   r   r   X      !))21)5<<> r   c                 R    | j                  dd      j                  t        d      S NrO   r   rZ   Frp   r3   rL   r   r   s    r   r   r   Y  #    !))21)5;;CU;K r   c                 R    | j                  dd      j                  t        d      S NrO   r   rZ   Trp   r   r   s    r   r   r   Z  #    !))21)5;;CT;J r   c                 F    | j                  ddd      j                         S NboxcarrO   r   )win_typer[   r\   r   r   s    r   r   r   \      aii"!iLQQS r   scipy)marksc                    t        t        d            }t        t        j                  |j                        }t        ddgddgddgdd	ggd
dg      }t        t        j                  |j                  |j                        } | |      }t        j                  ||        | |      }t        j                  ||       y )Nr   r_   r    r   r   rX   r   r0   r   ArY   columns)r_   r   )
r   r5   r   r   r_   r   r   r7   rK   r   )r   r   
s_expecteddfdf_expecteds_result	df_results          r   +test_rolling_functions_window_non_shrinkager   J  s    2 	uQxAagg.J	QFQFQFRG4sCj	IBBFF"((BJJGKtH8Z0"I)[1r   c                 >   t        dd      D cg c]  }t        dd|       }}|j                  t        ddddd             t        t        dd      |      }|j	                  d       }|j                         }t        g d	t        t        dd      D cg c]  }t        dd|d       c}d
            dd|    }|j                  d
      j                         j                  d|       j                         }t        j                  ||       yc c}w c c}w )z%Replicate result expected in GH #6297r         r   r      r   c                     t        |       S r   r   r   s    r   r   z)test_rolling_max_gh6297.<locals>.<lambda>v  
    %( r   )      ?       @g      @      @g      @DfreqNr[   r/   )r5   r   appendr   map
sort_indexr   r^   r   r3   r7   rK   )r/   iindicesr:   r   r   s         r   test_rolling_max_gh6297r  o  s    -21a[9xa#9G9NN8D!Q1-.E!QKw/FZZ*+F F!eAqkJXdAq!4JQTU fH 	  "**!$*?CCEA8Q' : Ks   DDc                    t        dd      D cg c]  }t        dd|       }}|j                  t        dddd             |j                  t        dddd             t        t	        t        d            ddgz   |      }|j                  d	       }|j                         }t        g d
t        t        dd      D cg c]  }t        dd|d       c}d            d d |    }|j                  d      j                         j                  d|       j                         }t        j                  ||       t        g dt        t        dd      D cg c]  }t        dd|d       c}d            d d |    }|j                  d      j                         j                  d|       j                         }t        j                  ||       d}t        dddd|gt        t        dd      D cg c]  }t        dd|d       c}d            d d |    }|j                  d      j                         j                  d|       j                         }t        j                  ||       y c c}w c c}w c c}w c c}w )Nr    r   r   r   rX   rO   r~   r   c                     t        |       S r   r   r   s    r   r   z+test_rolling_max_resample.<locals>.<lambda>  r   r   )        r   r         @g      4@r   r   r   r   )r	  r   r   r
  g      $@g&@r	  r   r   r
  )r5   r   r  r   r   r  r  r   r^   r   r3   r7   rK   r   r   )r/   r  r  r:   r   r   vs          r   test_rolling_max_resampler    sF   -21a[9xa#9G9NN8D!Q*+NN8D!Q*+DqNb"X-W=FZZ*+F F "eAqkJXdAq!4JQTU fH 	  "**!$*?CCEA8Q' "eAqkJXdAq!4JQTU fH 	##%--QT-BFFHA8Q' 	"A	c3QeAqkJXdAq!4JQTU fH 	!!#++14+@DDFA8Q'C : K K Ks   I3 I8I=5Jc                    t        dd      D cg c]  }t        dd|       }}|j                  t        dddd             |j                  t        dddd             t        t	        t        d            ddgz   |      }|j                  d	       }|j                         }t        g d
t        t        dd      D cg c]  }t        dd|d       c}d            d d |    }|j                  d      j                         j                  d|       }t        j                  ||j                                y c c}w c c}w )Nr    r   r   r   rX   rO   r~   r   c                     t        |       S r   r   r   s    r   r   z+test_rolling_min_resample.<locals>.<lambda>  r   r   )r	  r   r   r
  r   r   r   r   r   )r5   r   r  r   r   r  r  r   r^   r   r3   r7   rK   )r/   r  r  r:   r   rs         r   test_rolling_min_resampler    s   -21a[9xa#9G9NN8D!Q*+NN8D!Q*+DqNb"X-W=FZZ*+F F !eAqkJXdAq!4JQTU fH 	  "**!$*?A8QUUW-! : Ks   D> Ec                     t        dd      D  cg c]  } t        dd|        }} |j                  t        dddd             |j                  t        dddd             t        t	        t        d            ddgz   |      }|j                  d	       }|j                         }t        g d
t        t        dd      D  cg c]  } t        dd| d       c} d            }|j                  d      j                         j                  d      j                         }t        j                  ||       y c c} w c c} w )Nr    r   r   r   rX   rO   r~   r   c                     t        |       S r   r   r   s    r   r   z.test_rolling_median_resample.<locals>.<lambda>  r   r   )r	  r   r   r
  rO   r   r   r   r[   )r5   r   r  r   r   r  r  r   r^   r   r3   r7   rK   )r  r  r:   r   r   s        r   test_rolling_median_resampler    s   -21a[9xa#9G9NN8D!Q*+NN8D!Q*+DqNb"X-W=FZZ*+F F  eAqkJXdAq!4JQTUH 	##%--Q-7>>@A8Q'! : Ks   D7 D<c                  `   d} t        t        j                  j                  d      j	                  |             j                  dd      j                          t        t        j                  j                  d      j	                  |             j                  dd      j                          y )Ni N  rX   F)r[   r   )r   r   r   r   r   r3   r   )ns    r    test_rolling_median_memory_errorr    s    A
299  #33A67?? @ fh
299  #33A67?? @ fhr   	data_type)r      )r    rX   r   r  uic                    t        t        j                  d|             j                  d      j	                         }|j
                  d   t        j                  d      k(  sJ t        t        j                  d|             j                  d      j                         }|j
                  d   t        j                  d      k(  sJ y )Nr~   dtyper   r  r   f8)r   r   aranger3   r   dtypesr  r   )r  r>   s     r   "test_rolling_min_max_numeric_typesr!    s     ryy956>>a>HLLNF==rxx~---ryy956>>a>HLLNF==rxx~---r   c                 D    | j                  dd      j                         S )NrO   r   rZ   )r3   r   r   s    r   r   r     s    !))21)5;;= r   c                 J    | j                  dd      j                  | d      S r   r   r   s    r   r   r     r   r   c                 J    | j                  dd      j                  | d      S r   r   r   s    r   r   r     r   r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 F    | j                  dd      j                  d      S )NrO   r   rZ   r   r   r   s    r   r   r     s    !))21)5>>sC r   c                 D    | j                  dd      j                         S r   r   r   s    r   r   r     r   r   c                 R    | j                  dd      j                  t        d      S r   r   r   s    r   r   r     r   r   c                 R    | j                  dd      j                  t        d      S r   r   r   s    r   r   r     r   r   c                 F    | j                  ddd      j                         S r   r   r   s    r   r   r     r   r   c                 T   t        t        j                        }|}t               }|}t        dg      }|d   j	                  d      |d<   |} | |      }t        j                  ||        | |      }t        j                  ||        | |      }	t        j                  |	|       y )Nr  ar   float64)r   r   r4  r   r   r7   rK   r   )
r   r   r   df1df1_expecteddf2df2_expectedr   
df1_result
df2_results
             r   !test_moment_functions_zero_lengthr;    s    4 	RZZ AJ
+CL
SE
"C3xy)CHLtH8Z03J*l33J*l3r   )1r   numpyr   pytestpandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r   r	   pandas._testing_testingr7   pandas.tseriesr
   markparametrizer   nansumr   r   r   r@   rN   ri   ru   r   r   r   r   r   r   r   param
skip_if_nor   r  r  r  r  r  r  r!  r;  )widthsigns   00r   <module>rM     s      ) )   " %	&"	E28	

 
Hb!			$eR0	$efa[9	$eR0	$efa[9&R'&R %	&"	E28	

 
Hb!			$eR0	$efa[9	$eR0	$efa[9&'& +	&"b!	E2r"	5wAF	Hb"%	B	B	$eR4	$efa["=	$eR4	$efa["=
O
O +	&"b!	E2r"	5wAF	Hb"%	B	B	$eR4	$efa["=	$eR4	$efa["=" %	&"	E2	Hb!			$eR0	$efa[9	$eR0	$efa[9
116 			2						
 .A /AA 	R	B	"a	2r	B	B	B	R 	B	R --$ )	R	B	"a	2r4 	B	B	B	R&	B	R&11( )	R	B	"a	2r4 	B	B	B	R&	B	R&..( LM;;;<;;<<E>KJS"--(	
.2/.2(&"(J.((( (./uXRXX%k//;MeMxrxx4& !M!MN
	.
	. =LM;;;<;;<<C>KJS"--(	
!04104O 0Ms   V	
0$V