o
    _~#g                     @   s`  d dl mZ d dlZd dlZd dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZ dd Zejdg dd	d
 Zejdg ddd Zejdg ddd Zejdg ddd Zejdg ddd Zejdg dejdg ddd Zejdg ddd Zejdg ddd Zejdg ddd Zdd ZdS )    )partialN)	DataFrameSeriesconcatisnanotna)offsetsc           	      C   s   t j| dd}t|d |jd d  }||jd d kr#|d }|S ||jd d  }|d |jd d  }|| }||d  }||| ||  ||   }|S )Nr   )axis      ?   )npsortintshape)	apervaluesidxretvalqlowqhigvlowvhig r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/window/test_rolling_quantile.pyscoreatpercentile   s   	r   q)g        g?g      ?g?r
   c                 C   sp   t t|d}| jd|d|}t|tsJ tdt| |pdd d }t	|j
d || |d |  d S )Nr   2   stepr   r   r   )r   r   rollingquantile
isinstancer   rangelentmassert_almost_equaliloc)seriesr   r!   compare_funcresultendr   r   r   test_series$   s
   &r.   c                 C   s   t t|d}|jd|d|}t|tsJ tdt||pdd d }tj	|j
dd d f |j
|d |d d f j|d| ddd	 d S )
Nr   r   r    r   r   r   )r	   rawFcheck_names)r   r   r"   r#   r$   r   r%   r&   r'   assert_series_equalr)   apply)r/   framer   r!   r+   r,   r-   r   r   r   
test_frame-   s   $
r5   c           	      C   s   t t|d}d}| d d d d }|j|dd|}|jd }|dt   }| d d d 	||}t
|jd || d S )	Nr         B
   windowmin_periodsr      )r   r   resamplemeanr"   r#   indexr   BDaytruncater'   r(   r)   )	r*   r   r+   winserseries_result	last_date	prev_datetrunc_seriesr   r   r   test_time_rule_series:   s   
rI   c           
      C   s   t t|d}d}|d d d d }|j|dd|}|jd }|dt   }|d d d 	||}	t
j|||	j|| d	d
d d S )Nr   r6   r7   r8   r9   r:   r   r=   )r/   Fr0   )r   r   r>   r?   r"   r#   r@   r   rA   rB   r'   r2   xsr3   )
r/   r4   r   r+   rC   frmframe_resultrF   rG   trunc_framer   r   r   test_time_rule_frameG   s   

rN   c                 C   sR  t t| d}ttjdd}tj|d d< tj|dd < |jddd	| }t
|jd ||dd  |jd	d
d	| }t|jd sKJ t|jd rTJ t|jd r]J t|jd sfJ ttjdd	}|jddd	| }t|jd sJ t|jd sJ |jd	dd	| }|jd	dd	| }t
|| d S )Nr   r7   r   r9      )r<   r            r=   i         r   r   )r   r   r   r   randomdefault_rngstandard_normalnanr"   r#   r'   r(   r)   r   r   )r   r+   objr,   obj2result0result1r   r   r   	test_nansX   s$   r`   minp)r   c   d   c                 C   sn   | j t| d ||d|}| j t| ||d|}t|}t|t| | }t|| ||  d S )Nr   )r<   r!   )r"   r&   r#   r   r'   r2   r(   )r*   ra   r   r!   r,   expectednan_maskr   r   r   test_min_periodst   s   rf   c                 C   s   t tjdd}tj|d d< tj|dd < |jddd| }t|t tjgd gd| j	dd  j
dd	}t|| d S )
Nr7   r   r9   rO   rQ   T)center	   )drop)r   r   rX   rY   rZ   r[   r"   r#   r   r)   reset_indexr'   r2   )r   r\   r,   rd   r   r   r   test_center   s   rk   c                 C   f   dd t dD }| t| j| jdd|d| j}| jddd|}t|| d S )	Nc                 S      g | ]}d |dqS xdr   .0ro   r   r   r   
<listcomp>       z.test_center_reindex_series.<locals>.<listcomp>   r6   r;   Tr;   rg   )	r%   reindexlistr@   r"   r#   shiftr'   r2   )r*   r   s	series_xp	series_rsr   r   r   test_center_reindex_series   s   r   c                 C   rl   )	Nc                 S   rm   rn   r   rq   r   r   r   rs      rt   z-test_center_reindex_frame.<locals>.<listcomp>ru   r6   rv   rw   Trx   )	r%   ry   rz   r@   r"   r#   r{   r'   assert_frame_equal)r4   r   r|   frame_xpframe_rsr   r   r   test_center_reindex_frame   s   r   c                  C   sN   t g d} tt | djdd W d    d S 1 s w   Y  d S )N)r   r7   rV   rW   r7   g?)r#   )r   r'   assert_produces_warningFutureWarningr"   r#   )r|   r   r   r    test_keyword_quantile_deprecated   s   "r   )	functoolsr   numpyr   pytestpandasr   r   r   r   r   pandas._testing_testingr'   pandas.tseriesr   r   markparametrizer.   r5   rI   rN   r`   rf   rk   r   r   r   r   r   r   r   <module>   s6    








