U
    _{f                     @   s   d dl Zd dlZd dlmZmZmZ d dlm  m	Z
 d dlmZmZ d dlmZ ejje ohe phe ddZe
dejdG dd	 d	ZdS )
    N)is_ci_environmentis_platform_macis_platform_windows)	DataFrameSeriesz`On GHA CI, Windows can fail with 'Windows fatal exception: stack overflow' and macOS can timeout)reasonZnumbaignorec                	   @   s   e Zd Zdd Zejjejdee	de	dde
e	dddgdd	 Zejjed
ejdee	de	dde
e	dddgdd Zejddddddgdd ZdS )TestEWMc              	   C   sZ   t tdtdd}|dd }tjtdd |j|dd W 5 Q R X d S )	N   ab         ?z;Must call mean with update=None first before passing updatematch   update)	r   rangeheadewmonlinepytestraises
ValueErrormean)selfZdf
online_ewm r   ^/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/pandas/tests/window/test_online.pytest_invalid_update   s    zTestEWM.test_invalid_updateobjr
   r   Zfoo)namec                 C   s   |j d||d }|||d}|dj d||dj|d}	tdD ]J}
|	 }t||d |	j|dd}t||d |	  qFd S )Nr   )adjust	ignore_nanogilparallelnopythonr   engine_kwargs   r   )	r   r   r   r   r   tmassert_equaltailreset)r   r"   r'   r(   r)   r$   r%   expectedr+   r   _resultr   r   r    test_online_vs_non_online_mean'   s     
  z&TestEWM.test_online_vs_non_online_mean)r   c                 C   s   t tjdddddgdd}|jd||||d	 }	|||d
}
|djd|||d|d	j|
d}tdD ]R}| }t	||	d |j|
d|
dd}t	||	
d |  qpd S )Nz
2020-01-01z
2020-01-05z
2020-01-07z
2020-01-17z
2020-01-21zdatetime64[ns])Zdtyper   )r$   r%   timesZhalflifer&   r   r*   r,   )r   Zupdate_times)r   nparrayr   r   r   r   r   r-   r.   r/   r0   )r   r"   r'   r(   r)   r$   r%   Zhalflife_with_timesr5   r1   r+   r   r2   r3   r   r   r    test_update_times_mean@   s<    

zTestEWM.test_update_times_meanmethod	aggregateZstdZcorrZcovvarc              	   C   s\   t td}i }|dkr$dd |d< tjtdd  t|d |f | W 5 Q R X d S )	N
   r:   c                 S   s   | S )Nr   )xr   r   r    <lambda>p       z=TestEWM.test_ewm_notimplementederror_raises.<locals>.<lambda>funcz.* is not implemented.r   r   )r   r   r   r   NotImplementedErrorgetattrr   r   )r   r9   Zserkwargsr   r   r    #test_ewm_notimplementederror_raisesk   s    z+TestEWM.test_ewm_notimplementederror_raisesN)__name__
__module____qualname__r!   r   markZslowZparametrizer   r   r   r4   ZxfailrA   r8   rD   r   r   r   r    r	      s   	 $ $'r	   )numpyr6   r   Zpandas.compatr   r   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   Zpandas._testingZ_testingr-   rH   ZskipifZ
pytestmarkZ
skip_if_nofilterwarningsr	   r   r   r   r    <module>   s   
