o
    5c                     @   s   d dl Zd dlZd dlmZ d dlmZ dd Zdd Z	ej
ddgd	d
d Zejddd ejejgdd Zejdd dgdd Zejdd dgdd Zejdd dgdd Zejdd dgdd Zdd Zdd Zdd  ZdS )!    N)Seriesc                 C      |     S N)notnaallx r	   r/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/window/moments/test_moments_consistency_rolling.pyno_nans      r   c                 C   r   r   )isnullr   r   r	   r	   r
   all_na   r   r   )   r   )   r   )paramsc                 C   s   | j S )zwindow, min_periods)param)requestr	   r	   r
   rolling_consistency_cases   s   r   fc                 C   s   t |  S r   )r   sum)vr	   r	   r
   <lambda>   s    r   c           	      C   s   |\}}|t ju r#t|s#t|r|js|dks#| jtjj	dd |j
|||d }|j
|||dj|dd}t|| d S )Nr   z'np.sum has different behavior with NaNs)reasonwindowmin_periodscenterT)funcraw)npr   r   r   emptynode
add_markerpytestmarkxfailrollingapplytmassert_equal)	r   all_datar   r   r   r   r   rolling_f_resultrolling_apply_f_resultr	   r	   r
   "test_rolling_apply_consistency_sum   s.   
r.   ddofr   c           	      C   s   |\}}| j |||dj|d}|dk   rJ |dkr@| j |||d }| |  j |||d }t||||   d S d S Nr   r/   r   )r'   varanymeanr)   r*   )	r+   r   r   r/   r   r   var_xmean_xmean_x2r	   r	   r
   test_moments_consistency_var,   s$   r8   c           	      C   s   |\}}| j |||d }| j |||dj|d}|dk  r$J | tj }d||t|dk< |dkr=tj||dk < t|| d S )Nr   r1   r           r      )	r'   countr2   r3   r    nanmaxr)   r*   )	consistent_datar   r   r/   r   r   count_xr5   expectedr	   r	   r
   %test_moments_consistency_var_constantB   s"   
rA   c           	      C   s   |\}}| j |||dj|d}|dk   rJ | j |||dj|d}|dk   r0J t|||  | j |||dj| |d}|dk   rOJ t|| d S r0   )r'   r2   r3   stdr)   r*   cov)	r+   r   r   r/   r   r   r5   std_xcov_x_xr	   r	   r
   $test_rolling_consistency_var_std_covX   s"   rF   c                 C   sD  |\}}| |  j |||dj|d}| j |||dj|d}| j |||dj|d}| j |||dj| |d}	t|	d|| |   | j |||d| }
| j |||dj|d}| j |||dj|d}t|
|	||   |dkr| j |||d }| j |||d }| |  j |||d }t|	|||   d S d S )Nr   r1   g      ?r   )r'   r2   rC   r)   r*   corrrB   r4   )series_datar   r   r/   r   r   var_x_plus_yr5   var_ycov_x_ycorr_x_yrD   std_yr6   mean_ymean_x_times_yr	   r	   r
   (test_rolling_consistency_series_cov_corrt   sr   rP   c                 C   s\   |\}}| j |||d }| j |||d | j |||d }t||d d S )Nr   float64)r'   r4   r   divider;   r)   r*   astype)r+   r   r   r   r   resultr@   r	   r	   r
   test_rolling_consistency_mean   s    	rU   c           
      C   s   |\}}| j |||d }| j |||d }| j |||d| }t| tr,|  n|   }| tj }	||	|t|dk< t	
||	 tj|	d d < t	
||	 d S )Nr   r   )r'   r;   r4   rG   
isinstancer   r=   r    r<   r)   r*   )
r>   r   r   r   r   r?   r6   corr_x_xexpr@   r	   r	   r
   !test_rolling_consistency_constant   s2   


rY   c                 C   s   |\}}| j |||d }| j |||djdd}| j |||d | j |||d d dtj}t|||  d S )Nr   r   r1   g      ?r9   )	r'   r2   r;   rR   replacer    r<   r)   r*   )r+   r   r   r   r   var_unbiased_xvar_biased_xvar_debiasing_factors_xr	   r	   r
   .test_rolling_consistency_var_debiasing_factors   s0   
r^   )numpyr    r$   pandasr   pandas._testing_testingr)   r   r   fixturer   r%   parametrizenansumr   r.   r8   rA   rF   rP   rU   rY   r^   r	   r	   r	   r
   <module>   s*    





5 