o
    5cq                      @   s   d dl Zd dlZd dlmZmZmZ d dlmZ	 dd Z
dd Zdd Zd	d
 Z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S )    N)	DataFrameSeriesconcatc                    sp   t tr1tjstjjdS t fddttjD dd}j|_j|_|S t S )N)indexcolumnsc                    s*   g | ]}t jd d |f  dqS )Ncomadjust	ignore_na)create_mock_series_weightsiloc).0ir	   r   r
   obj n/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/window/moments/test_moments_consistency_ewm.py
<listcomp>   s    z'create_mock_weights.<locals>.<listcomp>   )axis)
isinstancer   lenr   r   r   ranger   )r   r   r	   r
   wr   r   r   create_mock_weights   s   

	r   c           
      C   s  t tj| j| jd}dd|  }|r@d}tt| D ]#}| j| | j| kr7tdd|  ||j|< |d7 }q|s=|d7 }q|S d}d}	d}tt| D ]:}| j| | j| kr|	dkrbd|j|< n|| td| ||	  |j|< ||j| 7 }|}	|d7 }qL|s|d7 }qL|S )N)r   nameg      ?r   r           )	r   npnanr   r   r   r   iatpow)
sr   r	   r
   r   alphacountr   sum_wtsprev_ir   r   r   r       s6   
 
r   c                 C   s   d}| j ||||d }t| |||d}| | | jdd}tj|| 	 
 |r4t|dndk < t||d d S )N      @r   min_periodsr	   r
   r   ffillmethodr   float64)ewmmeanr   multiplycumsumdividefillnar   r   	expandingr$   maxtmassert_equalastype)all_datar	   r
   r)   r   resultweightsexpectedr   r   r   test_ewm_consistency_mean=   s$   
r=   c           
      C   s   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   )r4   r$   r.   r/   corrr   r   r5   r   r   r6   r7   )
consistent_datar	   r
   r)   r   count_xmean_xcorr_x_xexpr<   r   r   r   test_ewm_consistency_consistentP   s*   


rD   c                 C   s   d}| j ||||djdd}| j ||||djdd}t| |||d}| jdd}||  jdd}	|| }
|
|	 }tj||d	k< |
| }t|||  d S )
Nr'   r(   FbiasTr   r*   r+   r   )	r.   varr   r1   r3   r   r   r6   r7   )r9   r	   r
   r)   r   var_unbiased_xvar_biased_xr;   cum_sum
cum_sum_sq	numeratordenominatorvar_debiasing_factors_xr   r   r   *test_ewm_consistency_var_debiasing_factorsk   s&   rO   rF   TFc           	      C   s   d}| j ||||d }| j ||||dj|d}|dk   r$J |r?| |  j ||||d }t||||   d S d S Nr'   r(   rE   r   )r.   r/   rG   anyr6   r7   )	r9   r	   r
   r)   rF   r   rA   var_xmean_x2r   r   r   test_moments_consistency_var   s(   
rT   c           	      C   s   d}| j |d }| j||||dj|d}|dk  r!J | tj }d||t|dk< |s8tj||dk < t	|| d S )	Nr'   )r)   r(   rE   r   r   r      )
r4   r$   r.   rG   rQ   r   r   r5   r6   r7   )	r?   r	   r
   r)   rF   r   r@   rR   r<   r   r   r   %test_moments_consistency_var_constant   s   
rV   c           	      C   s   d}| j ||||dj|d}|dk   rJ | j ||||dj|d}|dk   r0J t|||  | j ||||dj| |d}|dk   rPJ t|| d S rP   )r.   rG   rQ   stdr6   r7   cov)	r9   r	   r
   r)   rF   r   rR   std_xcov_x_xr   r   r   test_ewm_consistency_std   s*   r[   c                 C   s  d}| |  j ||||dj|d}| j ||||dj|d}| j ||||dj|d}| j ||||dj| |d}	t|	d|| |   tjtdd | j ||||dj| |d}
W d    n1 sew   Y  | j ||||dj|d}| j ||||dj|d}t|
|	||   |r| j ||||d	 }| j ||||d	 }| |  j ||||d	 }t|	|||   d S d S )Nr'   r(   rE   g      ?zPassing additional kwargs)match)
r.   rG   rX   r6   r7   assert_produces_warningFutureWarningr>   rW   r/   )series_datar	   r
   r)   rF   r   var_x_plus_yrR   var_ycov_x_ycorr_x_yrY   std_yrA   mean_ymean_x_times_yr   r   r   $test_ewm_consistency_series_cov_corr   sv   

rg   )numpyr   pytestpandasr   r   r   pandas._testing_testingr6   r   r   r=   rD   rO   markparametrizerT   rV   r[   rg   r   r   r   r   <module>   s"    


