
    bMhE                     	   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                            dej        di gej        di gd d	i gej        d
i gej        di gej        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                            dej        di gej        di gd d	i gej        d
i gej        di gej        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                            dej        di dgej        di dgd d	i d gej        d
i dgej        di dgej        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                            dej        di dgej        di dgd# d	i d gej        d
i dgej        di dgej        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                            dej        di gej        di gej        d
i gej        di gej        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                            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                            d0g d1          d2                         Z!d3 Z"e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                            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                            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                            d:d; d< d= d> d? d@ dA dB dC dD dE dF dG dH  ej&        dI  ej'        dJ          K          g          dL             Z(dM Z)dN Z*dO Z+dP Z,dQ Z-ej                            dRdS dTD             dU dVD             z             dW             Z.ej                            d:dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df  ej&        dg  ej'        dJ          K          g          dh             Z/dS )i    datetimeN)	DataFrameDatetimeIndexSeriesconcatisnanotna)offsetszcompare_func, roll_func, kwargsmeansumc                 ~    t          j        |                               t                                                    S Nnpisfiniteastypefloatr   xs    j/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/window/test_rolling_functions.py<lambda>r      (    bk!nn++E226688     countmedianminmaxc                 .    t          j        | d          S N   ddofr   stdr   s    r   r   r   "       26!!$$$ r   r%   c                 .    t          j        | d          S Nr   r"   r$   r   s    r   r   r   #   r&   r   r#   c                 .    t          j        | d          S r    r   varr   s    r   r   r   $   r&   r   r+   c                 .    t          j        | d          S r(   r*   r   s    r   r   r   %   r&   r   c                 D    t          |                     d|          |          di |}t          |t                    sJ t	          dt          |           |pd          d         dz   }t          j        |j        d          || |dz
  |                              d S )N2   stepr   r!    )	getattrrolling
isinstancer   rangelentmassert_almost_equaliloc)seriescompare_func	roll_funckwargsr0   resultends          r   test_seriesrA      s    ( ?WV^^BT^22I>>HHHHFff%%%%%
3v;;	
*
*2
.
2C6;r?LLb39O,P,PQQQQQr   c                 ~    t          j        |                               t                                                    S r   r   r   s    r   r   r   5   r   r   c                 .    t          j        | d          S r    r$   r   s    r   r   r   <   r&   r   c                 .    t          j        | d          S r(   r$   r   s    r   r   r   =   r&   r   c                 .    t          j        | d          S r    r*   r   s    r   r   r   >   r&   r   c                 .    t          j        | d          S r(   r*   r   s    r   r   r   ?   r&   r   c                 |    t          |                    d|          |          d	i |}t          |t                    sJ t	          dt          |          |pd          d         dz   }t          j        |j        dd d f         |j        |dz
  |d d f         	                    |d|           d           d S )
Nr.   r/   r   r!   r1   )axisrawFcheck_namesr2   )
r3   r4   r5   r   r6   r7   r8   assert_series_equalr:   apply)rI   framer<   r=   r>   r0   r?   r@   s           r   
test_framerO   /   s    ( >WU]]2D]119==GGGGFfi(((((
3u::tyq
)
)"
-
1CBE
38c>111$%++Lqc+JJ     r   z%compare_func, roll_func, kwargs, minp
   c                 ~    t          j        |                               t                                                    S r   r   r   s    r   r   r   R   (    2;q>>((//3355 r   c                 .    t          j        | d          S r    r$   r   s    r   r   r   V   r&   r   c                 .    t          j        | d          S r(   r$   r   s    r   r   r   W   r&   r   c                 .    t          j        | d          S r    r*   r   s    r   r   r   X   r&   r   c                 .    t          j        | d          S r(   r*   r   s    r   r   r   Y   r&   r   c                    d}| d d d                              d                                          } t          |                    ||          |          di |}|j        d         }|dt          j                    z  z
  }	| d d d                             |	|          }
t          j	        |j
        d          ||
                     d S )N      Bwindowmin_periodsr1      r2   )resampler   r3   r4   indexr   BDaytruncater8   r9   r:   )r;   r<   r=   r>   minpwinserseries_result	last_date	prev_datetrunc_seriess              r   test_time_rule_seriesrj   M   s      C
1+

s
#
#
(
(
*
*CQGCKKsKEEyQQ  
 M #B'IB//I##A#;''	9==L=-b1<<3M3MNNNNNr   c                 ~    t          j        |                               t                                                    S r   r   r   s    r   r   r   n   rR   r   c                 .    t          j        | d          S r    r$   r   s    r   r   r   r   r&   r   c                 .    t          j        | d          S r(   r$   r   s    r   r   r   s   r&   r   c                 .    t          j        | d          S r    r*   r   s    r   r   r   t   r&   r   c                 .    t          j        | d          S r(   r*   r   s    r   r   r   u   r&   r   c                    d}|d d d                              d                                          } t          |                    ||          |          d
i |}|j        d         }	|	dt          j                    z  z
  }
|d d d                             |
|	          }t          j	        |
                    |	          |                    ||           d	           d S )NrX   rY   rZ   r[   r1   r^   rI   FrJ   r2   )r_   r   r3   r4   r`   r   ra   rb   r8   rL   xsrM   )rI   rN   r<   r=   r>   rc   rd   frmframe_resultrg   rh   trunc_frames               r   test_time_rule_framerv   i   s      C
!*

c
"
"
'
'
)
)CP73;;ct;DDiPP  
 L "2&IB//I!*%%i;;K	"",C00     r   c                 .    t          j        | d          S r    r$   r   s    r   r   r      r&   r   c                 .    t          j        | d          S r(   r$   r   s    r   r   r      r&   r   c                 .    t          j        | d          S r    r*   r   s    r   r   r      r&   r   c                 .    t          j        | d          S r(   r*   r   s    r   r   r      r&   r   c                    t          t          j                            d                              d                    }t          j        |d d<   t          j        |dd <    t          |                    dd          |          di |}t          j	        |j
        d          | |dd                               t          |                    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                            d                              d                    } t          |                    dd          |          di |}t          |j
        d                   sJ t          |j
        d                   sJ |dk    rm t          |                    dd          |          di |} t          |                    dd          |          di |}t          j	        ||           d S d S )NrY   r.   rP      r]   r1            r^   i         r   r   r!   r2   )r   r   randomdefault_rngstandard_normalnanr3   r4   r8   r9   r:   r	   r
   )r<   r=   r>   objr?   obj2result0result1s           r   	test_nansr      sY    &&q))99"==
>
>CvCHCI@WS[[[44i@@JJ6JJF6;r?LLRV,E,EFFF AWS[[[44i@@JJ6JJFB     FKO$$$$$FKO$$$$$B     ")''**::2>>??D@WT\\"!\44i@@JJ6JJFAQ     ED'#++ba+88)DDNNvNND'#++ba+88)DDNNvNN
w00000 r   c                     t          t          j                            d                              d                    } t          j        | d d<   t          j        | dd <   |                     dd                                          }t          j	        |j
        d         t          j        | dd                                       t                                                               d S )NrY   r.   rP   r|   r}   r~   r1   )r   r   r   r   r   r   r4   r   r8   r9   r:   r   r   r   r   )r   r?   s     r   test_nans_countr      s    
&&q))99"==
>
>CvCHCI[[[,,2244FBSC[1188??CCEE    r   zroll_func, kwargsrc   )r   c   d   c                     t          |                     t          |           dz   ||          |          di |} t          |                     t          |           ||          |          di |}t          |          }t	          j        |t          |                     | }t	          j        ||         ||                    d S )Nr!   r]   r0   r2   )r3   r4   r7   r	   r8   rL   r9   )r;   rc   r=   r>   r0   r?   expectednan_masks           r   test_min_periodsr      s     Ws6{{QDtDDi    Fws6{{4@@)    H F||H8T(^^444yH6(+Xh-?@@@@@r   c                    |                      t          |           dz   d|                                          }|                      t          |           d|                                          }t          |          }t	          j        |t          |                     | }t	          j        ||         ||                    d S )Nr!   r   r   )r4   r7   r   r	   r8   rL   r9   )r;   r0   r?   r   r   s        r   test_min_periods_countr      s    ^^CKK!O^FFLLNNF~~c&kkqt~DDJJLLHF||H8T(^^444yH6(+Xh-?@@@@@r   zroll_func, kwargs, minpr   c           
      6   t          t          j                            d                              d                    }t          j        |d d<   t          j        |dd <    t          |                    d|d          |           di |} t          t          |t          t          j        gdz            g                              d|	          |           di |j	        dd          
                    d
          }t          j        ||           d S )NrY   r.   rP   r|   r   T)r]   center	   r~   )dropr2   )r   r   r   r   r   r   r3   r4   r   r:   reset_indexr8   rL   )r=   r>   rc   r   r?   r   s         r   test_centerr      s%     &&q))99"==
>
>CvCHCIOWS[[d[CCYOO  
 F	
C1--.//777MMy	
 	
 	 		 	 
abb	 
$		  68,,,,,r   z#roll_func, kwargs, minp, fill_valuec                    d t          d          D             } t          |                     t          | j                  |z                                 d|          |          di |                    d                              | j                  } t          |                     d|d          |          di |}||                    |          }t          j	        ||           d S )	Nc                     g | ]}d |d	S r   dr2   .0r   s     r   
<listcomp>z.test_center_reindex_series.<locals>.<listcomp>       &&&qQ&&&r      rX   r[   Tr\   r]   r   r2   )
r6   r3   reindexlistr`   r4   shiftfillnar8   rL   )r;   r=   r>   rc   
fill_values	series_xp	series_rss           r   test_center_reindex_seriesr     s   " 	'&E"II&&&A	
NN4--122::"RV:WW	
 	
 	 	 	 	 
s			 bd4@@)    I $$Z00	9i00000r   c                    d t          d          D             } t          |                     t          | j                  |z                                 d|          |          di |                    d                              | j                  } t          |                     d|d          |          di |}||                    |          }t          j	        ||           d S )	Nc                     g | ]}d |d	S r   r2   r   s     r   r   z-test_center_reindex_frame.<locals>.<listcomp>8  r   r   r   rX   r[   r   Tr   r2   )
r6   r3   r   r   r`   r4   r   r   r8   assert_frame_equal)rN   r=   r>   rc   r   r   frame_xpframe_rss           r   test_center_reindex_framer   '  s   " 	'&E"II&&&A	
MM$u{++a/0088PT8UU	
 	
 	 	 	 	 
s			 wRT$??    H ??:..(H-----r   fc                 Z    |                      dd                              | d          S NrP   r   r[   F)pairwiser4   covr   s    r   r   r   M  )    !))21)5599!e9LL r   c                 Z    |                      dd                              | d          S r   r4   corrr   s    r   r   r   N  )    !))21)55::1u:MM r   c                 T    |                      dd                                          S NrP   r   r[   r4   r   r   s    r   r   r   O  "    !))21)5599;; r   c                 T    |                      dd                                          S r   r4   r   r   s    r   r   r   P  r   r   c                 T    |                      dd                                          S r   r4   r   r   s    r   r   r   Q  r   r   c                 T    |                      dd                                          S r   r4   r   r   s    r   r   r   R  "    !))21)55::<< r   c                 T    |                      dd                                          S r   r4   r%   r   s    r   r   r   S  r   r   c                 T    |                      dd                                          S r   r4   r+   r   s    r   r   r   T  r   r   c                 T    |                      dd                                          S r   r4   skewr   s    r   r   r   U  r   r   c                 T    |                      dd                                          S r   r4   kurtr   s    r   r   r   V  r   r   c                 X    |                      dd                              d          S )NrP   r   r[         ?)qr4   quantiler   s    r   r   r   W  s'    !))21)55>>>EE r   c                 T    |                      dd                                          S r   r4   r   r   s    r   r   r   X  "    !))21)55<<>> r   c                 d    |                      dd                              t          d          S NrP   r   r[   Frq   r4   rM   r   r   s    r   r   r   Y  )    !))21)55;;CU;KK r   c                 d    |                      dd                              t          d          S NrP   r   r[   Trq   r   r   s    r   r   r   Z  )    !))21)55;;CT;JJ r   c                 V    |                      ddd                                          S NboxcarrP   r   )win_typer\   r]   r   r   s    r   r   r   \  $    aii"!iLLQQS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	        ||           d S )Nr   r`   r!   r   r   rY   r   r1   r   ArZ   columns)r`   r   )
r   r6   r   r   r`   r   r   r8   rL   r   )r   r   
s_expecteddfdf_expecteds_result	df_results          r   +test_rolling_functions_window_non_shrinkager   J  s    2 	uQxxAag...J	QFQFQFRG4sCj	I	I	IBBF"(BJGGGKqttH8Z000"I)[11111r   c           
      d   d t          dd          D             }|                    t          ddddd                     t          t          dd          |          }|                    d	           }|                                }t          g d
t          d t          dd          D             d                    dd|          }|                    d                                          	                    d|                                           }t          j        ||           dS )z%Replicate result expected in GH #6297c                 0    g | ]}t          d d|          S   r!   r   r   is     r   r   z+test_rolling_max_gh6297.<locals>.<listcomp>q  $    999xa##999r   r!      r   r   r      r   c                      t          |           S r   r   r   s    r   r   z)test_rolling_max_gh6297.<locals>.<lambda>v      %(( r   )      ?       @g      @      @g      @c                 2    g | ]}t          d d|d          S r   r!   r   r   r   s     r   r   z+test_rolling_max_gh6297.<locals>.<listcomp>|  &    JJJXdAq!44JJJr   DfreqNr\   r0   )r6   appendr   r   map
sort_indexr   r_   r   r4   r8   rL   )r0   indicesr;   r   r   s        r   test_rolling_max_gh6297r  o  s+   99U1a[[999GNN8D!Q1--...E!QKKw///FZZ**++F  F!!!JJeAqkkJJJQTUUU   ffH 	  ""**!$*??CCEEA8Q'''''r   c           
      p   d t          dd          D             }|                    t          dddd                     |                    t          dddd                     t          t	          t          d                    ddgz   |	          }|                    d
           }|                                }t          g dt          d t          dd          D             d          	          d d |          }|                    d          	                                
                    d|           	                                }t          j        ||           t          g dt          d t          dd          D             d          	          d d |          }|                    d                                          
                    d|           	                                }t          j        ||           d}t          dddd|gt          d t          dd          D             d          	          d d |          }|                    d                                          
                    d|           	                                }t          j        ||           d S )Nc                 0    g | ]}t          d d|          S r   r   r   s     r   r   z-test_rolling_max_resample.<locals>.<listcomp>  r  r   r!   r  r   r   rY   rP   r   r   c                      t          |           S r   r  r   s    r   r   z+test_rolling_max_resample.<locals>.<lambda>  r  r   )        r  r        @g      4@c                 2    g | ]}t          d d|d          S r  r   r   s     r   r   z-test_rolling_max_resample.<locals>.<listcomp>  r  r   r  r  r  )r  r  r  r  g      $@c                 2    g | ]}t          d d|d          S r  r   r   s     r   r   z-test_rolling_max_resample.<locals>.<listcomp>  r  r   g&@r  r  r  r  c                 2    g | ]}t          d d|d          S r  r   r   s     r   r   z-test_rolling_max_resample.<locals>.<listcomp>  r  r   )r6   r  r   r   r   r  r  r   r_   r   r4   r8   rL   r   r   )r0   r  r;   r   r   vs         r   test_rolling_max_resampler    s   99U1a[[999GNN8D!Q**+++NN8D!Q**+++DqNNb"X-W===FZZ**++F  F """JJeAqkkJJJQTUUU   ffH 	  ""**!$*??CCEEA8Q''' """JJeAqkkJJJQTUUU   ffH 	##%%--QT-BBFFHHA8Q''' 	"A	c3QJJeAqkkJJJQTUUU   ffH 	!!##++14+@@DDFFA8Q'''''r   c           
         d t          dd          D             }|                    t          dddd                     |                    t          dddd                     t          t	          t          d                    ddgz   |	          }|                    d
           }|                                }t          g dt          d t          dd          D             d          	          d d |          }|                    d          	                                
                    d|           }t          j        ||	                                           d S )Nc                 0    g | ]}t          d d|          S r   r   r   s     r   r   z-test_rolling_min_resample.<locals>.<listcomp>  r  r   r!   r  r   r   rY   rP   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	  c                 2    g | ]}t          d d|d          S r  r   r   s     r   r   z-test_rolling_min_resample.<locals>.<listcomp>  r  r   r  r  r  )r6   r  r   r   r   r  r  r   r_   r   r4   r8   rL   )r0   r  r;   r   rs        r   test_rolling_min_resampler%    sT   99U1a[[999GNN8D!Q**+++NN8D!Q**+++DqNNb"X-W===FZZ**++F  F !!!JJeAqkkJJJQTUUU   ffH 	  ""**!$*??A8QUUWW-----r   c            
         d t          dd          D             } |                     t          dddd                     |                     t          dddd                     t          t	          t          d                    ddgz   | 	          }|                    d
           }|                                }t          g dt          d t          dd          D             d          	          }|                    d          	                                
                    d          	                                }t          j        ||           d S )Nc                 0    g | ]}t          d d|          S r   r   r   s     r   r   z0test_rolling_median_resample.<locals>.<listcomp>  r  r   r!   r  r   r   rY   rP   r   r   c                      t          |           S r   r  r   s    r   r   z.test_rolling_median_resample.<locals>.<lambda>  r  r   )r  r  r  r  rP   c                 2    g | ]}t          d d|d          S r  r   r   s     r   r   z0test_rolling_median_resample.<locals>.<listcomp>  r  r   r  r  r\   )r6   r  r   r   r   r  r  r   r_   r   r4   r8   rL   )r  r;   r   r   s       r   test_rolling_median_resampler+    sF   99U1a[[999GNN8D!Q**+++NN8D!Q**+++DqNNb"X-W===FZZ**++F  F    JJeAqkkJJJQTUUU  H 	##%%--Q-77>>@@A8Q'''''r   c                     d} t          t          j                            d                              |                                         dd                                           t          t          j                            d                              |                                         dd                                           d S )Ni N  rY   F)r\   r   )r   r   r   r   r   r4   r   )ns    r    test_rolling_median_memory_errorr.    s    A
29  ##33A6677?? @  fhhh
29  ##33A6677?? @  fhhhhhr   	data_typec                 <    g | ]}t          j        d |           S )r   r   dtype)r   widths     r   r   r     s(    ///uRXk%kk///r   )r      c                 H    g | ]}d D ]}t          j        | |            S )uir1  )r   r3  signs      r   r   r     s:    MMMeMMrx4   !!MMMMr   )r!   rY   r   r4  c                    t          t          j        d|                                         d                                          }|j        d         t          j        d          k    sJ t          t          j        d|                                         d                                          }|j        d         t          j        d          k    sJ d S )Nr   r2  r   r*  r   f8)r   r   aranger4   r   dtypesr2  r   )r/  r?   s     r   "test_rolling_min_max_numeric_typesr=    s     ry955566>>a>HHLLNNF=rx~~----ry955566>>a>HHLLNNF=rx~~------r   c                 T    |                      dd                                          S )NrP   r   r[   )r4   r   r   s    r   r   r     s"    !))21)55;;== r   c                 Z    |                      dd                              | d          S r   r   r   s    r   r   r     r   r   c                 Z    |                      dd                              | d          S r   r   r   s    r   r   r     r   r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 V    |                      dd                              d          S )NrP   r   r[   r   r   r   s    r   r   r     s$    !))21)55>>sCC r   c                 T    |                      dd                                          S r   r   r   s    r   r   r     r   r   c                 d    |                      dd                              t          d          S r   r   r   s    r   r   r     r   r   c                 d    |                      dd                              t          d          S r   r   r   s    r   r   r     r   r   c                 V    |                      ddd                                          S r   r   r   s    r   r   r     r   r   c                    t          t          j                  }|}t                      }|}t          dg          }|d                             d          |d<   |} | |          }t          j        ||            | |          }t          j        ||            | |          }	t          j        |	|           d S )Nr9  ar   float64)r   r   rP  r   r   r8   rL   r   )
r   r   r   df1df1_expecteddf2df2_expectedr   
df1_result
df2_results
             r   !test_moment_functions_zero_lengthrW    s    4 	RZ   AJ
++CL
SE
"
"
"C3xy))CHLqttH8Z0003J*l3333J*l33333r   )0r   numpyr   pytestpandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r	   r
   pandas._testing_testingr8   pandas.tseriesr   markparametrizer   nansumr   r   r   rA   rO   rj   rv   r   r   r   r   r   r   r   param
skip_if_nor   r  r  r%  r+  r.  r=  rW  r2   r   r   <module>rg     s	              ) ) ) ) ) ) ) ) )                      " " " " " " %	&"	E288	

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

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