
     j                        d dl Zd dlZd dlmZmZmZ d dlmZ	 d Z
d Zd Zd Zd Zej                            dd	d
g          d             Zej                            dd	d
g          d             Zej                            dd	d
g          d             Zej                            dd	d
g          d             ZdS )    N)	DataFrameSeriesconcatc                 h    t           t                    rt           j                  st           j         j                  S t           fdt          t           j                            D             d          } j        |_         j        |_        |S t                     S )N)indexcolumnsc                 T    g | ]$}t          j        d d |f                   %S )Ncomadjust	ignore_na)create_mock_series_weightsiloc).0ir   r   r   objs     C:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pandas/tests/window/moments/test_moments_consistency_ewm.py
<listcomp>z'create_mock_weights.<locals>.<listcomp>   sQ         +HQQQTNFi           )axis)
isinstancer   lenr   r   r   ranger   )r   r   r   r   ws   ```` r   create_mock_weightsr      s    #y!! G3; 	C39ckBBBB       s3;//00	   
 
 
 )K	)#sFIFFFr   c                 b   t          t          j        | j        | j                  }dd|z   z  }|rid}t          t          |                     D ]I}| j        |         | j        |         k    r$t          dd|z
  z  |          |j        |<   |dz  }B|s|dz  }Jnd}d}	d}t          t          |                     D ]r}| j        |         | j        |         k    rM|	dk    rd|j        |<   n$||z  t          d|z
  ||	z
            z  |j        |<   ||j        |         z  }|}	|dz  }k|s|dz  }s|S )N)r   nameg      ?r   r           )	r   npnanr   r   r   r   iatpow)
sr   r   r   r   alphacountr   sum_wtsprev_is
             r   r   r       sg   rvQW16222A39E s1vv 	 	AuQx158# scEk2E::a
 
	 s1vv 
	 
	AuQx158# 	R< R"AE!HH$wS5[%&.1Q1QQAE!H158#
 
Hr   c                 $   d}|                      ||||                                          }t          | |||          }|                     |                                                              |                                                                          }t          j        || 	                                
                                |rt          |d          ndk     <   t          j        ||                    d                     d S )N      @r   min_periodsr   r   r
   r   float64)ewmmeanr   multiplycumsumdivideffillr!   r"   	expandingr'   maxtmassert_equalastype)all_datar   r   r-   r   resultweightsexpecteds           r   test_ewm_consistency_meanr>   =   s    
C\\[9   
dff  "(FiXXXG  ))002299'..:J:JKKQQSSH 	 ""$${(QK(;(;(;PQR OFHOOI6677777r   c                 d   d}|                                                                  }|                     ||||                                          }|                     ||||                              |           }t          | t                    r|                                 n%|                                                                 }| t          j	        z  }	||	|t          |d          k    <   t          j        ||	           t          j	        |	d d <   t          j        ||	           d S )Nr+   r,   r   )r5   r'   r/   r0   corrr   r   r6   r!   r"   r7   r8   )
consistent_datar   r   r-   r   count_xmean_xcorr_x_xexpr=   s
             r   test_ewm_consistency_consistentrF   K   s/   
C''))//11G  [9 !  
dff  ""[9 #  
d? 
 ov..	)  ""&&((  'H/2HWK+++,OFH%%% &HQQQKOHh'''''r   c                    d}|                      ||||                              d          }|                      ||||                              d          }t          | |||          }|                                                                }||z                                                                  }	||z  }
|
|	z
  }t
          j        ||dk    <   |
|z  }t          j        |||z             d S )Nr+   r,   FbiasTr
   r   )	r/   varr   r2   r4   r!   r"   r7   r8   )r:   r   r   r-   r   var_unbiased_xvar_biased_xr<   cum_sum
cum_sum_sq	numeratordenominatorvar_debiasing_factors_xs                r   *test_ewm_consistency_var_debiasing_factorsrR   f   s    C \\[9 "  	cucoo  <<[9    	ctcnn  "(FiXXXGnn$$&&GG#++--3355J'!Ij(K&(fKs"#'+5ONL3J$JKKKKKr   rI   TFc                    d}|                      ||||                                          }|                      ||||                              |          }|dk                                                                     rJ |rK| | z                       ||||                                          }t	          j        ||||z  z
             d S d S Nr+   r,   rH   r   )r/   r0   rJ   anyr7   r8   )	r:   r   r   r-   rI   r   rC   var_xmean_x2s	            r   test_moments_consistency_varrX   ~   s    
C\\[9   
dff  LL[9   	ctcnn 
 	  $$&&&&& <  SSk&ISVVTVV 	
 	w&6/:;;;;;< <r   c                    d}|                      |                                          }|                     ||||                              |          }|dk                                                                    rJ | t
          j        z  }d||t          |d          k    <   |st
          j        ||dk     <   t          j	        ||           d S )	Nr+   )r-   r,   rH   r   r   r      )
r5   r'   r/   rJ   rU   r!   r"   r6   r7   r8   )	rA   r   r   r-   rI   r   rB   rV   r=   s	            r   %test_moments_consistency_var_constantr[      s     C''K'@@FFHHG[9    	ctcnn 

 	  $$&&&&&'H/2HWK+++, ' "1OE8$$$$$r   c                 |   d}|                      ||||                              |          }|dk                                                                     rJ |                      ||||                              |          }|dk                                                                     rJ t	          j        |||z             |                      ||||                              | |          }|dk                                                                     rJ t	          j        ||           d S rT   )r/   rJ   rU   stdr7   r8   cov)	r:   r   r   r-   rI   r   rV   std_xcov_x_xs	            r   test_ewm_consistency_stdra      sJ   
CLL[9   	ctcnn 
 	  $$&&&&&LL[9   	ctcnn 
 	  $$&&&&& OE55=)))ll[9   	c(c  !  ""&&((((( OE7#####r   c                 >   d}| | z                        ||||                              |          }|                      ||||                              |          }|                      ||||                              |          }|                      ||||                              | |          }	t          j        |	d||z
  |z
  z             |                      ||||                              |           }
|                      ||||                              |          }|                      ||||                              |          }t          j        |
|	||z  z             |r|                      ||||                                          }|                      ||||                                          }| | z                       ||||                                          }t          j        |	|||z  z
             d S d S )Nr+   r,   rH   g      ?)r/   rJ   r^   r7   r8   r@   r]   r0   )series_datar   r   r-   rI   r   var_x_plus_yrV   var_ycov_x_ycorr_x_yr_   std_yrC   mean_ymean_x_times_ys                   r   $test_ewm_consistency_series_cov_corrrk      ss    C 
{	"	+f		R	R	$ 
 OO[9   	ctcnn 
 OO[9   	ctcnn 
 oo[9   	c+Dc!! 
 OGSL5$85$@ABBB [9   
d;  OO[9   	ctcnn 
 OO[9   	ctcnn 
 OHg7888 E Vy ! 
 

$&& 	 Vy ! 
 

$&& 	 ;&SSk&ISVVTVV 	
 	6F?!CDDDDDE Er   )numpyr!   pytestpandasr   r   r   pandas._testing_testingr7   r   r   r>   rF   rR   markparametrizerX   r[   ra   rk    r   r   <module>rt      s                
      G G G(  :8 8 8( ( (6L L L0 $//< < 0/<* $//% % 0/%$ $//$ $ 0/$0 $//2E 2E 0/2E 2E 2Er   