a
    oÝEb^P  ã                   @   sŒ  d dl Zd dlZd dlmZ d dlmZmZmZm	Z	 d dl
mZ d dlmZ dd„ Zdd„ Zej d	g d
¢¡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 d-d.„ Z!ej d/d0ee"d1ƒe"d2d3ƒg d4¢d5œe#d6�gd7eej$gd1 d8gd1 g d9¢d5œƒgd:eej$gd1 d;gd1 g d<¢d5œƒgg¡d=d>„ ƒZ%d?d@„ Z&dAdB„ Z'ej dCg dD¢dEgg dF¢dGgg¡dHdI„ ƒZ(dJdK„ Z)dLdM„ Z*dNdO„ Z+ej dPeej$dQdRgƒdGdEej$dSdQgfeej$dQdRgƒdGdGej$dSdQgfeej$dQdRgƒdEdEej$dSdTgfeej$dQdRgƒdEdGej$dSdTgfedQej$dRgƒdGdEdUej$dQgfedQej$dRgƒdGdGdSej$dQgfedQej$dRgƒdEdEdUej$dTgfedQej$dRgƒdEdGdSej$dTgfeej$dQej$ej$dRej$gƒdGdEej$dVej$ej$dQej$gfeej$dQej$ej$dRej$gƒdGdGej$dSej$ej$dQej$gfeej$dQej$ej$dRej$gƒdEdEej$dVej$ej$dTej$gfeej$dQej$ej$dRej$gƒdEdGej$dSej$ej$dTej$gfedQej$dRdWgƒdGdEdVej$dSdQgfedQej$dRdWgƒdGdGdUej$dSdQgfedQej$dRdWgƒdEdEdVej$dXdYgfedQej$dRdWgƒdEdGdUej$dXdTgfg¡dZd[„ ƒZ,d\d]„ Z-d^d_„ Z.ej d	g d`¢¡dadb„ ƒZ/ej dd dcg¡ej ddg de¢¡dfdg„ ƒƒZ0ej dddhdig¡djdk„ ƒZ1ej dg d5¢¡ej dddhdig¡dldm„ ƒƒZ2ej dddhdig¡dndo„ ƒZ3ej ddg dp¢¡dqdr„ ƒZ4ej ddg dp¢¡dsdt„ ƒZ5dudv„ Z6dwdx„ Z7dydz„ Z8ej d{dhdig¡d|d}„ ƒZ9dS )~é    N)ÚUnsupportedFunctionCall)Ú	DataFrameÚDatetimeIndexÚSeriesÚ
date_range)ÚExponentialMovingWindowc                  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   ú\/home/ja/django-apps/lartica_env/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    



**,***r1   Úmethod)Ústdr   Úvarc                 C   sœ   t tg d¢ƒdd�}d}tjt|d��" t|| ƒdddƒ W d   ƒ n1 sN0    Y  tjt|d��" t|| ƒtjd	� W d   ƒ n1 sŽ0    Y  d S )
N)r
   r   é   r   r   z2numpy operations are not valid with window objectsr"   r	   r
   é   ©Údtype)r   r   r,   r-   r   Úgetattrr   Úfloat64)r2   Úer0   r   r   r   Útest_numpy_compatC   s    0r<   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\[ns\] dtype.r"   r   ©Útimes)r,   r-   r.   r   r+   r   r   Úarange©r0   r   r   r   Ú!test_ewma_times_not_datetime_typeP   s    rA   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]r=   ©	r,   r-   r.   r   r+   r   r   r?   Úastyper@   r   r   r   Útest_ewma_times_not_same_lengthV   s    rE   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 )Nz6halflife must be a string or datetime.timedelta objectr"   r   r	   rB   ©r   r>   rC   r@   r   r   r   Ú#test_ewma_halflife_not_correct_type\   s    rG   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_timesr0   r   r   r   Ú test_ewma_halflife_without_timesb   s    rI   r>   é
   zdatetime64[D]rB   Ú2000ÚD©ÚfreqZperiodsÚUTCÚmin_periodsr
   c                 C   sš   | }t  d¡}t j|d d d…< t|tdddd�dœƒ}tjtdd	��6 |j|||d
� 	¡ }|jd|d� 	¡ }W d   ƒ n1 s€0    Y  t 
||¡ d S )Nç      $@r
   rK   rL   rJ   rM   ©ÚAÚtime_colznuisance columnsr"   ©r   rP   r>   ç      ð?©r   rP   ©r   r?   r   r   r   ÚtmÚassert_produces_warningÚFutureWarningr   r   Úassert_frame_equal)rH   r>   rP   r   Údatar   ÚresultÚexpectedr   r   r   Ú"test_ewma_with_times_equal_spacingh   s    

0r`   c                 C   sZ   | }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:23r6   rF   )ç        gÐÇþE(â?gÁ*‡M¹ø?)	r   Útz_localizer   r?   r   r   r   rY   r\   )Ztz_aware_fixtureÚtzr   r>   r]   r   r^   r_   r   r   r   Ú%test_ewma_with_times_variable_spacing}   s    ÿþ
rd   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   r>   )r   r+   r   r,   r-   r.   r   )rH   Úserr>   r   r   r   Útest_ewm_with_nat_raisesŠ   s    
rg   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 )NrQ   r
   rK   rL   rJ   rM   ©rS   r   rF   rS   rV   r   )	r   r?   r   r   r   r   r   rY   Úassert_series_equal)rH   r   r]   r>   r   r^   r_   r   r   r   Útest_ewm_with_times_getitem’   s    
rj   Ú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_narh   c                    s   i | ]}|t ˆ |ƒ“qS r   ©r9   ©Ú.0Úattr©r   r   r   Ú
<dictcomp>£   ó    z8test_ewm_getitem_attributes_retained.<locals>.<dictcomp>rS   c                    s   i | ]}|t ˆ |ƒ“qS r   rn   ro   rr   r   r   rs   ¥   rt   )r   r+   r   Ú_attributes)rk   rl   rm   Úkwargsr_   Z	ewm_slicer^   r   rr   r   Ú$test_ewm_getitem_attributes_retainedž   s    "rw   c                  C   sf   t tdƒƒ} t t¡�  | jdd� ¡ }W d   ƒ n1 s<0    Y  | jdd� ¡ }t ||¡ d S )Nr	   re   r   )	r   r+   rY   rZ   r[   r   Zvolr3   ri   )rf   r^   r_   r   r   r   Útest_ewm_vol_deprecated©   s
    .rx   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	   re   FrK   rL   rM   )rl   r>   )r,   r-   ÚNotImplementedErrorr   r+   r   r   r   r   r   r   Ú#test_ewma_times_adjust_false_raises±   s    ÿÿrz   zfunc, expectedr   r   r   é	   )gZôPÛ¶@r{   gÓø…W’$%@gd~�$I(@g7ûå¶m+@©r   r	   r
   r7   r3   gÉ¬Þávø@)g‡§WÊ2„@g.äÜÈ@gÿ>ãÂ� @g ‰°áé…@g›äGüŠõ@r4   g      2@)g—=Ô¶m5@é   gË�jÛ¶@@gÎþ@¹m[D@gg Ü¶mH@c                 C   sP   t tdƒtddƒtdddƒdœ|d�}|jd	d
d�}t|| ƒƒ }t ||¡ d S )Nr   r5   é   rJ   é   r
   r|   r7   r   r	   )r   Zaxis)r   r+   r   r9   rY   r\   )Úfuncr_   Zfloat_numpy_dtyper   r;   r^   r   r   r   Útest_float_dtype_ewma»   s    'ÿr�   c                  C   s–   t  d¡} t j| d d d…< t| tdddd�dœƒ}tjtdd	��6 |jd
ddd� 	¡ }|jddd� 	¡ }W d   ƒ n1 s|0    Y  t 
||¡ d S )NrQ   r
   rK   rL   rJ   rM   rR   zSpecifying timesr"   z1 dayr   rT   rU   rV   rW   rX   )r]   r   r^   r_   r   r   r   Ú test_times_string_col_deprecatedë   s    
0r‚   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   rl   z
sum is notr"   )r   r+   r   r,   r-   ry   Úsum)r]   r   r   r   Ú(test_ewm_sum_adjust_false_notimplementedö   s    r…   zexpected_data, ignore)rQ   ç      @g      @g     €&@F)rQ   r†   r†   g      )@Tc                 C   s<   t ddtjdgƒ}|jd|d� ¡ }t | ƒ}t ||¡ d S )NrJ   r   r   )r   rm   )r   r   r   r   r„   rY   ri   )Zexpected_dataÚignorer]   r^   r_   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   rl   g{®Gáz„?)r   r   Zzerosr   r   r„   Úabs)Úvalsr^   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)rV   ç       @g      @g       @)rV   gš™™™™™ù?gÊ�"kå@gYÂÚ;±@)rV   gR×ÚûTUõ?g�óSÇ@g	ßû´—@r�   ©r   rl   rm   )r   r   r   rY   ri   )rl   rm   Úsr_   r^   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 )NrV   r   r   r
   r   )r   r   r   r   r   rY   ri   Úlen)r�   r^   r   r   r   Útest_ewma_nan_handling  s    (r’   zs, adjust, ignore_na, wrV   g     @Y@gVUUUUUå?gUUUUUUÕ?gÇqÇqÜ?gj/¡½„öÒ?g      I@gÇqÇqÌ?g|	í%´—Ð?c                 C   sl   |   |¡ ¡ t|ƒ ¡  jdd�}| jd||d� ¡ }t ||¡ |du rh| jd|d� ¡ }t ||¡ d S )NZffill)r2   r�   rŽ   Frƒ   )ÚmultiplyZcumsumr   Zfillnar   r   rY   ri   )r�   rl   rm   Úwr_   r^   r   r   r   Útest_ewma_nan_handling_cases(  s     "r•   c                  C   s’   t j 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   é(   gŽVÎÕRÀã?r   g¿Æ·CØã?r   g‚_ãÛ!ì@r   gXlWYíç?r   )
r   ÚrandomÚrandnr?   ÚNaNr   r   r   rY   ri   )ÚarrÚlocsr�   ÚaÚbr/   Údr   r   r   Útest_ewm_alpha¼  s    
rŸ   c                  C   s¨  t j d¡} t  dd¡}t j| |< t| ƒ}d}tjt|d�� |j	dd� W d   ƒ n1 s^0    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 �s*0    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 �sF0    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   r–   r&   r"   gš™™™™™¹¿r   ra   re   r(   r   gÍÌÌÌÌÌì?rV   gš™™™™™ñ?r)   r   r*   r   )
r   r—   r˜   r?   r™   r   r,   r-   r.   r   )rš   r›   r�   r0   r   r   r   Útest_ewm_domain_checksÌ  sB    
***,,,,,r    )r   r3   r4   c                 C   s4   t g tjd�}| d¡}t|| ƒƒ }t ||¡ d S )Nr7   r6   )r   r   r:   r   r9   rY   Úassert_almost_equal)r2   r‹   r   r^   r   r   r   Útest_ew_empty_seriesõ  s    
r¢   r	   Úname)r   r4   r3   c                 C   s¦  t j d¡}t j|d d…< t j|dd …< t|ƒ}t|jddd�|ƒƒ }|d d…  ¡  ¡ s^J ‚|dd …  ¡  	¡ rvJ ‚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�r^t |td
gƒ¡ nt |tt jgƒ¡ ttt  d¡ƒjdd�|ƒƒ }|jt jk�s¢J ‚d S )Né2   rJ   éöÿÿÿr
   ©r   rP   r~   r   r7   r:   rV   )rP   r   )r   r—   r˜   r™   r   r9   r   ZisnaÚallÚanyÚobjectrY   ri   r?   r8   Zfloat_)rP   r£   rš   r�   r^   Zresult2r   r   r   Útest_ew_min_periodsþ  s*    
rª   ZcovZcorrc                 C   s¢   t tj d¡t d¡d�}|dd … tj d¡ }tj|d d…< tj|dd …< t|jddd	�| ƒ|ƒ}t |j	d d
… ¡ 
¡ s‚J ‚t |j	d
d … ¡ ¡ ržJ ‚d S )Nr¤   ©Úindexr
   é0   rJ   r¥   r   r   r¦   é   )r   r   r—   r˜   r?   r™   r9   r   ÚisnanÚvaluesr§   r¨   )r£   rS   r   r^   r   r   r   Útest_ewm_corr_cov)  s    r±   c                 C   s  t tj d¡t d¡d�}|dd … tj d¡ }tj|d d…< t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­   rJ   r¥   r   r¦   r~   r7   rV   )r   r   r—   r˜   r?   r™   r9   r   r¯   r°   r§   r¨   r:   rY   ri   )r£   rP   rS   r   r^   Úemptyr   r   r   Útest_ewm_corr_cov_min_periods6  s    ÿr³   c                 C   s~   t tj d¡t d¡d�}tj|d d…< d}tjt|d��0 t	|j
ddd�| ƒtj d¡ƒ W d   ƒ n1 sp0    Y  d S )	Nr¤   r«   rJ   z#other must be a DataFrame or Seriesr"   r   r   r¦   )r   r   r—   r˜   r?   r™   r,   r-   r.   r9   r   )r£   rS   r0   r   r   r   Ú*test_different_input_array_raise_exceptionR  s
    r´   )r4   r3   r   c                 C   s&   t | jdd�|ƒƒ }t|tƒs"J ‚d S ©NrJ   r   )r9   r   Ú
isinstancer   )Úseriesr£   Zseries_resultr   r   r   Útest_ewma_series]  s    r¸   c                 C   s&   t | jdd�|ƒƒ }t|tƒs"J ‚d S rµ   )r9   r   r¶   r   )Úframer£   Zframe_resultr   r   r   Útest_ewma_framec  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   r   r   r!   r"   r   ú1Must pass one of comass, span, halflife, or alpha©r   r   rY   r¡   r,   r-   r.   ©r·   rS   r   r0   r   r   r   Útest_ewma_span_com_argsi  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   rQ   r   r!   r"   r   r¤   r%   r»   )r   r   )r   r   r   r¼   r½   r¾   r   r   r   Útest_ewma_halflife_argv  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!   rQ   r   r$   )r   r   r    )r,   r-   r.   r   )r·   r�   r0   r   r   r   Útest_ewm_alpha_arg†  s    &,,rÁ   r€   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 )NrJ   r   )r   rP   r	   F)Zcheck_names)r9   r   ÚlocÚslicer¬   Z	droplevelrY   ri   )r€   r¹   r^   r_   r   r   r   Útest_ewm_pairwise_cov_corr–  s
     rÄ   ):Únumpyr   r,   Zpandas.errorsr   Zpandasr   r   r   r   Zpandas._testingZ_testingrY   Zpandas.core.windowr   r   r1   ÚmarkZparametrizer<   rA   rE   rG   rI   r?   rD   rb   r`   rd   rg   rj   rw   rx   rz   r+   Úfloatr   r�   r‚   r…   rˆ   rŒ   r�   r’   r•   rŸ   r    r¢   rª   r±   r³   r´   r¸   rº   r¿   rÀ   rÁ   rÄ   r   r   r   r   Ú<module>   sœ  ,
ýþ

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



