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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	   t/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/window/moments/test_moments_consistency_expanding.pyno_nans      r   c                 C   r   r   )isnullr   r   r	   r	   r
   all_na   r   r   fc                 C   s   t |  S r   )r   sum)vr	   r	   r
   <lambda>   s    r   c                 C   st   |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min_periodsT)funcraw)npr   r   r   emptynode
add_markerpytestmarkxfail	expandingapplytmassert_equal)requestall_datar   r   expanding_f_resultexpanding_apply_f_resultr	   r	   r
   )test_expanding_apply_consistency_sum_nans   s    
r'   ddof   c                 C   sp   | j |dj|d}|dk   rJ |dkr6| |  j |d }| j |d }t||||   d S d S Nr   r(   r   )r   varanymeanr!   r"   )r$   r   r(   var_xmean_x2mean_xr	   r	   r
   test_moments_consistency_var    s   r2   c                 C   sz   | j |d }| j |dj|d}|dk  rJ | tj }d||t|dk< |dkr5tj||dk < t|| d S )Nr   r+   r           r)      )	r   countr,   r-   r   nanmaxr!   r"   )consistent_datar   r(   count_xr/   expectedr	   r	   r
   %test_moments_consistency_var_constant,   s   
r;   c                 C   s   | j |dj|d}|dk   rJ | j |dj|d}|dk   r(J t|||  | j |dj| |d}|dk   rEJ t|| d S r*   )r   r,   r-   stdr!   r"   cov)r$   r   r(   r/   std_xcov_x_xr	   r	   r
   &test_expanding_consistency_var_std_cov:   s   r@   c                 C   s  | |  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   r+   g      ?r   )r   r,   r=   r!   r"   corrr<   r.   )series_datar   r(   var_x_plus_yr/   var_ycov_x_ycorr_x_yr>   std_yr1   mean_ymean_x_times_yr	   r	   r
   *test_expanding_consistency_series_cov_corrL   s"   rJ   c                 C   sF   | j |d }| j |d | j |d  }t||d d S )Nr   float64)r   r.   r   r5   r!   r"   astype)r$   r   resultr:   r	   r	   r
   test_expanding_consistency_meanj   s   rN   c                 C   s   |    }| j |d }| j |d| }t| tr |  n|   }| tj }|||t|dk< t	
|| tj|d d < t	
|| d S )Nr   r)   )r   r5   r.   rA   
isinstancer   r7   r   r6   r!   r"   )r8   r   r9   r1   corr_x_xexpr:   r	   r	   r
   #test_expanding_consistency_constants   s   


rR   c                 C   s^   | j |d }| j |djdd}|    |    d dtj }t|||  d S )Nr   r   r+   g      ?r3   )r   r,   r5   replacer   r6   r!   r"   )r$   r   var_unbiased_xvar_biased_xvar_debiasing_factors_xr	   r	   r
   0test_expanding_consistency_var_debiasing_factors   s   

rW   )numpyr   r   pandasr   pandas._testing_testingr!   r   r   r   parametrizenansumr   r'   r2   r;   r@   rJ   rN   rR   rW   r	   r	   r	   r
   <module>   s&    




	