a
    é´«jìY  ã                   @   sÞ  d dl Zd dlZd dlmZ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dd„ Zej de d¡ d¡ d¡edddd�edddd� d¡g¡ej dd dg¡dd„ ƒƒZdd„ Zdd„ Zdd „ Zej d!g d"¢¡d#d$„ ƒZd%d&„ Zej d'd(eed)ƒed*d+ƒg d,¢d-œed.�gd/eejgd) d0gd) g d1¢d-œƒgd2eejgd) d3gd) g d4¢d-œƒgg¡d5d6„ ƒZd7d8„ Z d9d:„ Z!ej d;g d<¢d=gg d>¢d?gg¡d@dA„ ƒZ"dBdC„ Z#dDdE„ Z$dFdG„ Z%ej dHeejdIdJgƒd?d=ejdKdIgfeejdIdJgƒd?d?ejdKdIgfeejdIdJgƒd=d=ejdKdLgfeejdIdJgƒd=d?ejdKdLgfedIejdJgƒd?d=dMejdIgfedIejdJgƒd?d?dKejdIgfedIejdJgƒd=d=dMejdLgfedIejdJgƒd=d?dKejdLgfeejdIejejdJejgƒd?d=ejdNejejdIejgfeejdIejejdJejgƒd?d?ejdKejejdIejgfeejdIejejdJejgƒd=d=ejdNejejdLejgfeejdIejejdJejgƒd=d?ejdKejejdLejgfedIejdJdOgƒd?d=dNejdKdIgfedIejdJdOgƒd?d?dMejdKdIgfedIejdJdOgƒd=d=dNejdPdQgfedIejdJdOgƒd=d?dMejdPdLgfg¡dRdS„ ƒZ&dTdU„ Z'dVdW„ Z(ej dXg dY¢¡dZd[„ ƒZ)ej dd d\g¡ej d]g d^¢¡d_d`„ ƒƒZ*ej d]dadbg¡dcdd„ ƒZ+ej dg d-¢¡ej d]dadbg¡dedf„ ƒƒZ,ej d]dadbg¡dgdh„ ƒZ-ej d]g di¢¡djdk„ ƒZ.ej d]g di¢¡dldm„ ƒZ/dndo„ Z0dpdq„ Z1drds„ Z2ej dtdadbg¡dudv„ ƒZ3dwdx„ Z4ej dydbdag¡ej dzd?d=g¡d{d|„ ƒƒZ5ej d}e6e7g¡d~d„ ƒZ8ej dydbdag¡ej dzd?d=g¡ej d}e6e7g¡d€d�„ ƒƒƒZ9dS )‚é    N)Ú	DataFrameÚDatetimeIndexÚSeriesÚ
date_rangec                  C   s0   t ddddtjdgiƒ} |  | jdd� ¡  d S )NÚBr   é   é   é   ç      à?©Úcom)r   ÚnpÚnanÚewmÚmean©Údf© r   ú[/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/window/test_ewm.pyÚtest_doc_string   s    r   c              	   C   s  | t dƒƒj}|dd� |dd� |dd� |dd� |dd d	� |dd d
� |dd d� d}tjt|d�� |ddd� W d   ƒ n1 sŽ0    Y  tjt|d�� |ddd� W d   ƒ n1 sÈ0    Y  tjt|d�� |ddd� W d   ƒ n1 �s0    Y  d}tjt|d�� |dd� W d   ƒ n1 �sB0    Y  d}tjt|d�� |dd� W d   ƒ n1 �s€0    Y  d}tjt|d�� |dd� W d   ƒ n1 �s¾0    Y  d}dD ]@}tjt|d�� ||d� W d   ƒ n1 �s0    Y  �qÐd S )Né   r
   r   ç      ø?©Úspan©Úalphag      è?©Úhalflife©r   r   )r   r   ©r   r   ú8comass, span, halflife, and alpha are mutually exclusive©Úmatch©r   r   ©r   r   )r   r   ú comass must satisfy: comass >= 0ç      à¿úspan must satisfy: span >= 1ú#halflife must satisfy: halflife > 0r   ú"alpha must satisfy: 0 < alpha <= 1)r&   r   )Úranger   ÚpytestÚraisesÚ
ValueError)Zframe_or_seriesÚcÚmsgr   r   r   r   Útest_constructor   s8    



**,***r0   c                  C   sP   d} t jt| d��* ttdƒƒjt d¡d� W d   ƒ n1 sB0    Y  d S )Nztimes must be datetime64 dtype.r!   r   ©Útimes)r+   r,   r-   r   r*   r   r   Úarange©r/   r   r   r   Ú!test_ewma_times_not_datetime_type>   s    r5   c                  C   sV   d} t jt| d��0 ttdƒƒjt d¡ d¡d� W d   ƒ n1 sH0    Y  d S )Nz,times must be the same length as the object.r!   r   r	   údatetime64[ns]r1   ©	r+   r,   r-   r   r*   r   r   r3   Úastyper4   r   r   r   Útest_ewma_times_not_same_lengthD   s    r9   c                  C   sX   d} t jt| d��2 ttdƒƒjdt d¡ d¡d� W d   ƒ n1 sJ0    Y  d S )Nz/halflife must be a timedelta convertible objectr!   r   r   r6   ©r   r2   r7   r4   r   r   r   Ú#test_ewma_halflife_not_correct_typeJ   s    r;   c                 C   sJ   d}t jt|d��$ ttdƒƒj| d� W d   ƒ n1 s<0    Y  d S )NzKhalflife can only be a timedelta convertible argument if times is not None.r!   r   r   )r+   r,   r-   r   r*   r   )Úhalflife_with_timesr/   r   r   r   Ú test_ewma_halflife_without_timesP   s    r=   r2   é
   zdatetime64[D]r6   Ú2000ÚD©ÚfreqZperiodsÚUTCÚmin_periodsr   c                 C   s`   | }t  d¡}t j|d d d…< td|iƒ}|j|||d� ¡ }|jd|d� ¡ }t ||¡ d S )Nç      $@r   ÚA©r   rD   r2   ç      ð?)r   rD   )r   r3   r   r   r   r   ÚtmÚassert_frame_equal)r<   r2   rD   r   Údatar   ÚresultÚexpectedr   r   r   Ú"test_ewma_with_times_equal_spacingV   s    

rN   c           	      C   s`   | }d}t g d¢ƒ |¡ |¡}t d¡}t|ƒ}|j||d� ¡ }tg d¢ƒ}t 	||¡ d S )Nz23 days)z
2020-01-01z2020-01-10T00:04:05z2020-02-23T05:00:23é   r:   )ç        gÐÇþE(â?gÁ*‡M¹ø?)
r   Útz_localizeZas_unitr   r3   r   r   r   rI   rJ   )	Ztz_aware_fixtureÚunitÚtzr   r2   rK   r   rL   rM   r   r   r   Ú%test_ewma_with_times_variable_spacingi   s    ÿþÿ
rT   c                 C   sX   t tdƒƒ}tdgƒ}tjtdd��  |jd| |d� W d   ƒ n1 sJ0    Y  d S )Nr   ZNaTz$Cannot convert NaT values to integerr!   çš™™™™™¹?)r   r   r2   )r   r*   r   r+   r,   r-   r   )r<   Úserr2   r   r   r   Útest_ewm_with_nat_raisesx   s    
rW   c                 C   st   | }t  d¡}t j|d d d…< tdddd�}t||dœƒ}|j||d�d	  ¡ }|jd
d�d	  ¡ }t ||¡ d S )NrE   r   r?   r@   r>   rA   ©rF   r   r:   rF   rH   r   )	r   r3   r   r   r   r   r   rI   Úassert_series_equal)r<   r   rK   r2   r   rL   rM   r   r   r   Útest_ewm_with_times_getitem€   s    
rZ   Úarg)r   r   r   r   c                    sr   | dd|d|i}t tdƒtdƒdœƒjf i |¤Ž‰ ‡ fdd„ˆ jD ƒ}ˆ d }‡ fdd„|jD ƒ}||ksnJ ‚d S )	Nr   ÚadjustÚ	ignore_narX   c                    s   i | ]}|t ˆ |ƒ“qS r   ©Úgetattr©Ú.0Úattr©r   r   r   Ú
<dictcomp>‘   ó    z8test_ewm_getitem_attributes_retained.<locals>.<dictcomp>rF   c                    s   i | ]}|t ˆ |ƒ“qS r   r^   r`   rc   r   r   rd   “   re   )r   r*   r   Ú_attributes)r[   r\   r]   ÚkwargsrM   Z	ewm_slicerL   r   rc   r   Ú$test_ewm_getitem_attributes_retainedŒ   s    "rh   c                	   C   sT   t jtdd��2 ttdƒƒjddtdddd�d	� W d   ƒ n1 sF0    Y  d S )
Nz)times is not supported with adjust=False.r!   r   rU   Fr?   r@   rA   )r\   r2   )r+   r,   ÚNotImplementedErrorr   r*   r   r   r   r   r   r   Ú#test_ewma_times_adjust_false_raises—   s    ÿÿrj   zfunc, expectedr   r   r	   é	   )gZôPÛ¶@rk   gÓø…W’$%@gd~�$I(@g7ûå¶m+@©r   r   r   ©ÚdtypeÚstdgÉ¬Þávø@)g‡§WÊ2„@g.äÜÈ@gÿ>ãÂ� @g ‰°áé…@g›äGüŠõ@Úvarg      2@)g—=Ô¶m5@é   gË�jÛ¶@@gÎþ@¹m[D@gg Ü¶mH@c                 C   s‚   t tdƒtddƒtdddƒdœ|d�}d	}tjt|d
�� |jddd�}W d   ƒ n1 s\0    Y  t|| ƒƒ }t ||¡ d S )Nr   é   é   r>   é   r   rl   rm   z1Support for axis=1 in DataFrame.ewm is deprecatedr!   r
   r   )r   Zaxis)r   r*   rI   Zassert_produces_warningÚFutureWarningr   r_   rJ   )ÚfuncrM   Zfloat_numpy_dtyper   r/   ÚerL   r   r   r   Útest_float_dtype_ewma¡   s    'ÿ,rx   c                  C   s`   t t d¡tdddd�dœƒ} tjtdd��  | jd	d
dd� W d   ƒ n1 sR0    Y  d S )NrE   r?   r@   r>   rA   )rF   Útime_colztimes must be datetime64r!   z1 dayr   ry   rG   )r   r   r3   r   r+   r,   r-   r   r   r   r   r   Útest_times_string_col_raisesÓ   s
    ÿrz   c                  C   sP   t tdƒƒjddd�} tjtdd�� |  ¡  W d   ƒ n1 sB0    Y  d S )Nr   F©r   r\   z
sum is notr!   )r   r*   r   r+   r,   ri   Úsum)rK   r   r   r   Ú(test_ewm_sum_adjust_false_notimplementedÜ   s    r}   zexpected_data, ignore)rE   ç      @g      @g     €&@F)rE   r~   r~   g      )@Tc                 C   s<   t ddtjdgƒ}|jd|d� ¡ }t | ƒ}t ||¡ d S )Nr>   r   r
   )r   r]   )r   r   r   r   r|   rI   rY   )Zexpected_dataÚignorerK   rL   rM   r   r   r   Útest_ewm_sumâ   s    r€   c                  C   sF   t t d¡ƒ} d| d< | jddd� ¡  ¡ }t |d ¡dk sBJ ‚d S )Niè  r   r   éd   F)r   r\   g{®Gáz„?)r   r   Zzerosr   r   r|   Úabs)ÚvalsrL   r   r   r   Útest_ewma_adjustï   s    r„   c                 C   sN   t g d¢ƒ}| rt g d¢ƒ}nt g d¢ƒ}|jd| |d� ¡ }t ||¡ d S )N)rH   ç       @g      @g       @)rH   gš™™™™™ù?gÊ�"kå@gYÂÚ;±@)rH   gR×ÚûTUõ?g�óSÇ@g	ßû´—@r…   ©r   r\   r]   )r   r   r   rI   rY   )r\   r]   ÚsrM   rL   r   r   r   Útest_ewma_casesö   s    rˆ   c                  C   s¤   t dgtjgd  dg ƒ} | jdd� ¡ }t |t dgt| ƒ ƒ¡ t tjgd dg tjgd  dg ƒ} | jdd� ¡ }t |t tjgd dgd  ƒ¡ d S )NrH   r   r   r   r	   )r   r   r   r   r   rI   rY   Úlen)r‡   rL   r   r   r   Útest_ewma_nan_handling  s    (rŠ   zs, adjust, ignore_na, wrH   g     @Y@gVUUUUUå?gUUUUUUÕ?gÇqÇqÜ?gj/¡½„öÒ?g      I@gÇqÇqÌ?g|	í%´—Ð?c                 C   sh   |   |¡ ¡ t|ƒ ¡   ¡ }| jd||d� ¡ }t ||¡ |du rd| jd|d� ¡ }t ||¡ d S )Nr…   r†   Fr{   )ÚmultiplyZcumsumr   Zffillr   r   rI   rY   )r‡   r\   r]   ÚwrM   rL   r   r   r   Útest_ewma_nan_handling_cases  s     r�   c                  C   s˜   t j d¡ d¡} t  dd¡}t j| |< t| ƒ}|jdd� ¡ }|jdd� ¡ }|jd	d
� ¡ }|jdd� ¡ }t	 
||¡ t	 
||¡ t	 
||¡ d S )Nr   r�   rt   é(   gŽVÎÕRÀã?r   g¿Æ·CØã?r   g‚_ãÛ!ì@r   gXlWYíç?r   )r   ÚrandomÚdefault_rngÚstandard_normalr3   r   r   r   r   rI   rY   )ÚarrÚlocsr‡   ÚaÚbr.   Údr   r   r   Útest_ewm_alpha¢  s    
r—   c                  C   s®  t j d¡ d¡} t  dd¡}t j| |< t| ƒ}d}tjt	|d�� |j
dd� W d   ƒ n1 sd0    Y  |j
d	d� |j
d
d� d}tjt	|d�� |j
dd� W d   ƒ n1 sº0    Y  tjt	|d�� |j
d	d� W d   ƒ n1 sô0    Y  tjt	|d�� |j
dd� W d   ƒ n1 �s00    Y  |j
dd� |j
dd� d}tjt	|d�� |j
dd� W d   ƒ n1 �sˆ0    Y  tjt	|d�� |j
d	d� W d   ƒ n1 �sÄ0    Y  |j
d
d� d}tjt	|d�� |j
dd� W d   ƒ n1 �s0    Y  tjt	|d�� |j
d	d� W d   ƒ n1 �sL0    Y  |j
d
d� |j
dd� tjt	|d�� |j
dd� W d   ƒ n1 �s 0    Y  d S )Nr   r�   rt   rŽ   r%   r!   gš™™™™™¹¿r   rP   rU   r'   r   gÍÌÌÌÌÌì?rH   gš™™™™™ñ?r(   r   r)   r   )r   r�   r�   r‘   r3   r   r   r+   r,   r-   r   )r’   r“   r‡   r/   r   r   r   Útest_ewm_domain_checks²  sB    
***,,,,,r˜   Úmethod)r   ro   rp   c                 C   s4   t g tjd�}| d¡}t|| ƒƒ }t ||¡ d S )Nrm   rO   )r   r   Úfloat64r   r_   rI   Úassert_almost_equal)r™   rƒ   r   rL   r   r   r   Útest_ew_empty_seriesÛ  s    
rœ   r   Úname)r   rp   ro   c                 C   s¬  t j d¡ d¡}t j|d d…< t j|dd …< t|ƒ}t|jddd�|ƒƒ }|d d…  ¡  	¡ sdJ ‚|dd …  ¡  
¡ r|J ‚t|jd| d�|ƒƒ }|dkrÌ|d d…  ¡  	¡ s²J ‚|dd …  ¡  
¡ rüJ ‚n0|d d…  ¡  	¡ säJ ‚|dd …  ¡  
¡ rüJ ‚tttd�jd| d�|ƒƒ }t |td	d�¡ ttd
gƒjd| d�|ƒƒ }|dk�rdt |td
gƒ¡ nt |tt jgƒ¡ ttt  d¡ƒjdd�|ƒƒ }|jt jk�s¨J ‚d S )Nr   é2   r>   éöÿÿÿ©r   rD   rs   r   rm   rš   rH   )rD   r   )r   r�   r�   r‘   r   r   r_   r   ZisnaÚallÚanyÚobjectrI   rY   r3   rn   rš   )rD   r�   r’   r‡   rL   Zresult2r   r   r   Útest_ew_min_periodsä  s*    
r¤   ZcovZcorrc                 C   s®   t tj d¡ d¡tdƒd�}|dd … tj d¡ d¡ }tj|d d…< tj|jdd …< t|j	ddd	�| ƒ|ƒ}t 
|jd d
… ¡ ¡ sŽJ ‚t 
|jd
d … ¡ ¡ rªJ ‚d S )Nr   rž   ©Úindexé0   r>   rŸ   rt   r   r    é   )r   r   r�   r�   r‘   r*   r   Úilocr_   r   ÚisnanÚvaluesr¡   r¢   )r�   rF   r   rL   r   r   r   Útest_ewm_corr_cov  s    r¬   c                 C   s  t tj d¡ d¡tdƒd�}|dd … tj d¡ d¡ }tj|d d…< tj|jdd …< t|j	d|d�| ƒ|ƒ}t 
|jd d	… ¡ ¡ sŽJ ‚t 
|jd	d … ¡ ¡ rªJ ‚t g tjd
�}t|j	d|d�| ƒ|ƒ}t ||¡ tt dgƒj	d|d�| ƒt dgƒƒ}t |t tjgƒ¡ d S )Nr   rž   r¥   r§   r>   rŸ   rt   r    rs   rm   rH   )r   r   r�   r�   r‘   r*   r   r©   r_   r   rª   r«   r¡   r¢   rš   rI   rY   )r�   rD   rF   r   rL   Úemptyr   r   r   Útest_ewm_corr_cov_min_periods  s    ÿr®   c                 C   sˆ   t tj d¡ d¡tdƒd�}tj|d d…< d}tjt	|d��6 t
|jddd	�| ƒtj d¡ d¡ƒ W d   ƒ n1 sz0    Y  d S )
Nr   rž   r¥   r>   z#other must be a DataFrame or Seriesr!   rt   r   r    )r   r   r�   r�   r‘   r*   r   r+   r,   r-   r_   r   )r�   rF   r/   r   r   r   Ú*test_different_input_array_raise_exception8  s    ÿr¯   )rp   ro   r   c                 C   s&   t | jdd�|ƒƒ }t|tƒs"J ‚d S ©Nr>   r   )r_   r   Ú
isinstancer   )Úseriesr�   Zseries_resultr   r   r   Útest_ewma_seriesE  s    r³   c                 C   s&   t | jdd�|ƒƒ }t|tƒs"J ‚d S r°   )r_   r   r±   r   )Úframer�   Zframe_resultr   r   r   Útest_ewma_frameK  s    rµ   c                 C   s®   | j dd� ¡ }| j dd� ¡ }t ||¡ d}tjt|d�� | j ddd� W d   ƒ n1 sb0    Y  d}tjt|d�� |   ¡  ¡  W d   ƒ n1 s 0    Y  d S )	Nç      #@r   rt   r   r    r!   r   ú1Must pass one of comass, span, halflife, or alpha©r   r   rI   r›   r+   r,   r-   ©r²   rF   r   r/   r   r   r   Útest_ewma_span_com_argsQ  s    ,rº   c                 C   s&  | j dd� ¡ }| j dd� ¡ }t ||¡ d}tjt|d�� | j ddd	� W d   ƒ n1 sb0    Y  tjt|d�� | j d
dd� W d   ƒ n1 sž0    Y  tjt|d��  | j d
ddd� W d   ƒ n1 sÜ0    Y  d}tjt|d�� |   ¡  W d   ƒ n1 �s0    Y  d S )Ng ‘ñHŽÝ+@r   rE   r   r    r!   rt   rž   r$   r¶   )r   r   )r   r   r   r·   r¸   r¹   r   r   r   Útest_ewma_halflife_arg^  s    ,,.r»   c                 C   sú   | }d}t jt|d�� | ¡  W d   ƒ n1 s40    Y  d}t jt|d�� |jddd� W d   ƒ n1 st0    Y  t jt|d�� |jddd� W d   ƒ n1 s°0    Y  t jt|d�� |jddd� W d   ƒ n1 sì0    Y  d S )	Nr·   r!   r    rE   r
   r#   )r   r   r   )r+   r,   r-   r   )r²   r‡   r/   r   r   r   Útest_ewm_alpha_argn  s    &,,r¼   rv   c                 C   sn   t |jddd�| ƒƒ }|jtd ƒdfdf }|j d¡|_t |d jddd�| ƒ|d ƒ}tj||dd� d S )Nr>   r   ©r   rD   r   F)Zcheck_names)r_   r   ÚlocÚslicer¦   Z	droplevelrI   rY   )rv   r´   rL   rM   r   r   r   Útest_ewm_pairwise_cov_corr~  s
     rÀ   c           	      C   s¨   | }t dgdddœƒ}|d  t¡|d< |jddd�}t||d ƒ}|d ur¤||d�}|r`dd	gng d¢}||  |g¡jd
d� t¡}t|j	ƒ|ks˜J ‚t
 ||¡ d S )Nr   r   rO   ©r”   r•   r.   r.   r½   ©Únumeric_onlyr”   r•   T©Zdrop)r   r8   r£   r   r_   ÚaggÚreset_indexÚfloatÚlistÚcolumnsrI   rJ   )	Úarithmetic_win_operatorsrÃ   Úkernelr   r   ÚoprL   rÉ   rM   r   r   r   Útest_numeric_only_frame‡  s    
rÍ   rË   Úuse_argc                 C   sÀ   t g d¢dddœƒ}|d  t¡|d< |r0|fnd}|jddd�}t|| ƒ}||d	|iŽ}|rfd
dgng d¢}||  t¡}	|r†|	fnd}
|	jddd�}t|| ƒ}||
d	|iŽ}t ||¡ d S )N©r   r   rO   r   rO   rÁ   r.   r   r   r½   rÃ   r”   r•   )r   r8   r£   r   r_   rÇ   rI   rJ   )rË   rÃ   rÎ   r   r[   r   rÌ   rL   rÉ   Zdf2Úarg2Úewm2Úop2rM   r   r   r   Ú test_numeric_only_corr_cov_frame˜  s    

rÓ   rn   c           
      C   sÄ   | }t dg|d�}|jddd�}t||d ƒ}|d u r>t d¡ |r�|tu r�d|› d�}tjt|d�� ||d	� W d   ƒ qÀ1 s„0    Y  n0||d	�}| |g¡j	d
d� 
t¡}	t ||	¡ d S )Nr   rm   r   r½   zNo op to testúExponentialMovingWindow.ú  does not implement numeric_onlyr!   rÂ   TrÄ   )r   r   r_   r+   Úskipr£   r,   ri   rÅ   rÆ   r8   rÇ   rI   rY   )
rÊ   rÃ   rn   rË   rV   r   rÌ   r/   rL   rM   r   r   r   Útest_numeric_only_series®  s    
*
r×   c                 C   sè   t g d¢|d�}|r|fnd}|jddd�}t|| ƒ}|rŒ|tu rŒd| › d�}tjt|d	�� ||d
|iŽ W d   ƒ qä1 s€0    Y  nX||d
|iŽ}	| t¡}
|r®|
fnd}|
jddd�}t|| ƒ}||d
|iŽ}t	 
|	|¡ d S )NrÏ   rm   r   r   r   r½   rÔ   rÕ   r!   rÃ   )r   r   r_   r£   r+   r,   ri   r8   rÇ   rI   rY   )rË   rÎ   rÃ   rn   rV   r[   r   rÌ   r/   rL   Zser2rÐ   rÑ   rÒ   rM   r   r   r   Ú!test_numeric_only_corr_cov_seriesÂ  s    
.

rØ   ):Únumpyr   r+   Zpandasr   r   r   r   Zpandas._testingZ_testingrI   r   r0   r5   r9   r;   r=   ÚmarkZparametrizer3   r8   rQ   rN   rT   rW   rZ   rh   rj   r*   rÇ   r   rx   rz   r}   r€   r„   rˆ   rŠ   r�   r—   r˜   rœ   r¤   r¬   r®   r¯   r³   rµ   rº   r»   r¼   rÀ   rÍ   rÓ   Úintr£   r×   rØ   r   r   r   r   Ú<module>   s¦  +ýþ



ýúþ
ýÿþ
ýÿþêþ$
	þ
	

ü
ü
ü
ü
ü
ü
ü
üüüúüúüüüüüüüüü‡þ 	
)
)





