o
    _~#g3                     @   s  d dl Zd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZ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dgddgddidddgdd Zdd Zdd Zdd  Zd!d" Zd#d$ Z ejd%d&d'ej!ej!ej!ej!gg d(g d)ej!ej!ej!ej!gg d*g d+g d,gfd-dg d.g d(g d/g d0g d*g d1g d2gfgd3d4 Z"d5d6 Z#d7d8 Z$d9d: Z%d;d< Z&dS )=    N)	DataErrorSpecificationError)		DataFrameIndex
MultiIndexPeriodSeries	Timestampconcat
date_rangetimedelta_rangec                 C   s   t tjdd}|jd| d}t|jj	|d d |  j	 |jd| dd }|jj
|d d |  j	d ks9J |jd| dd }t|jj	|d d |  j	ddg  |jd| dddg }t|jj	|d d |  j	ddg  d S )N   )   r   r   windowstep   )r      r   )r   nprandomdefault_rngstandard_normalrollingtmassert_index_equal_selected_objcolumnsname)r   framer r    /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/window/test_api.pytest_getitem   s    $(r"   c                  C   s   t ddggddgd} | jdd}tjtdd	 |d
g  W d    n1 s(w   Y  tjtdd	 |dd
g  W d    d S 1 sFw   Y  d S )Nr   r   ABr   r   r   zColumns not found: 'C'matchCz^[^A]+$)r   r   pytestraisesKeyError)dfgr    r    r!   test_select_bad_cols'   s   "r/   c                  C   sz   t ddggddgd} | jdd}t|j |d   d}tjt|d	 |j	 W d    d S 1 s6w   Y  d S )
Nr   r   r#   r$   r%   r   r&   z%'Rolling' object has no attribute 'F'r'   )
r   r   r   assert_series_equalr#   sumr*   r+   AttributeErrorF)r-   r   msgr    r    r!   test_attribute_access2   s   "r5   c                 C   s   t tdtdddd}|jd| d}|ddg  }t tjtjdd	d
gtjtjdddgdtddd d |  }t|| d S )Nr   
   foor#   r$   r)   r   r   r#   r$      	            r#   r$   ABr%   )	r   ranger   r1   r   nanlistr   assert_frame_equalr   r-   r   resultexpectedr    r    r!   tests_skip_nuisance;   s   $rG   c                 C   sd   t tdtdddd}|jd| d}tjtdd |  W d    d S 1 s+w   Y  d S )	Nr   r6   r7   r8   r   r   z0Cannot aggregate non-numeric type: object|stringr'   )r   r@   r   r*   r+   r   r1   )r   r-   r   r    r    r!   test_sum_object_str_raisesF   s   
"rH   c                 C   s  t tdtdddd}|jd| d}|d  }|d  }|d  }|d	  }|d	  }tjtd
d |	t
jt
jg}W d    n1 sMw   Y  t||||gdd}	tdd	gddgg|	_t||	 tjtd
d |	t
jt
jd}W d    n1 sw   Y  t||gdd}	tj||	dd |	dddgi}t||gdd}	tddg|	_t||	 |d 	ddg}t||gdd}	ddg|	_t||	 d}
tjt|
d |	ddddi W d    n1 sw   Y  tjt|
d |	ddddddd W d    n	1 sw   Y  |	ddgddgd}t||||gdd}	g d}t||	_tj||	dd d S )Nr   r   r6   r   r>   r   r   r#   r$   zusing Rolling.[mean|std]r'   r   axismeanstdT
check_liker#   rK   r#   rL   r1   nested renamer is not supported)rK   r1   )mean2sum2)rO   rP   )r$   rK   )r$   rL   )r   r@   r   rK   rL   r1   r   assert_produces_warningFutureWarning	aggregater   r
   r   from_productr   rC   from_tuplesr*   r+   r   )r   r-   r   a_meana_stda_sumb_meanb_stdrE   rF   r4   exp_colsr    r    r!   test_aggP   sP   
r_   funcminrK   maxbr1   prodmedian)rc   cc                 C   s   t g dg dg dd}d}tjt|d |jddd	}W d    n1 s)w   Y  tjtd
d ||  W d    d S 1 sFw   Y  d S )N)r   r   r   )r      r   )r9         )arc   rf   5Support for axis=1 in DataFrame.rolling is deprecatedr'   r   r   )r   rJ   z"axis other than 0 is not supported)	r   r   rT   rU   r   r*   r+   NotImplementedErroragg)r`   r-   r4   r   r    r    r!   test_multi_axis_1_raises   s   "rn   c                 C   s   t tdtdddd}|jdd}|d  }tjtd	d
 |tjdd d}W d    n1 s6w   Y  |d j	dd | d}t
||gdd}tj||dd d S )Nr   r   r6   r   r>   r   r&   r#   zusing Rolling.[sum|std]r'   c                 S      t j| ddS Nr   )ddofr   rL   xr    r    r!   <lambda>       z test_agg_apply.<locals>.<lambda>r$   c                 S   ro   rp   rr   rs   r    r    r!   ru      rv   )rawr   rI   TrM   )r   r@   r   r1   r   rT   rU   rm   r   applyr
   rC   )rw   r-   r   r[   rE   rcustomrF   r    r    r!   test_agg_apply   s   rz   c                 C   sN  t tdtdddd}|jd| d}tjtdd	 |tjtj	gj
}W d    n1 s0w   Y  ttd
ddgg}t|| tjtdd	 |d tjtj	gj
}W d    n1 sdw   Y  tddg}t|| tjtdd	 |dtjtj	gij
}W d    n1 sw   Y  tddg}t|| d S )Nr   r   r6   r   r>   r   r   zusing Rolling.[sum|mean]r'   r?   r1   rK   r#   )r#   r1   rO   )r   r@   r   r   rT   rU   rm   r   r1   rK   r   r   rW   rB   r   r   rX   rD   r    r    r!   test_agg_consistency   s"   r{   c                  C   sf  t tdtdddd} | jdd}d}tjt|d	 |d
ddgidddgid W d    n1 s7w   Y  t|d
  |d
 	 |d  |d 	 gdd}t
g d|_tjt|d	 |d
dg dddgidddgid W d    n1 sw   Y  tjt|d	 |dddgidddgid W d    d S 1 sw   Y  d S )Nr   r   r6   r   r>   r   r&   rQ   r'   r#   rK   r1   r$   )r1r2r   rI   ))rarK   )r~   rL   )rbrK   )r   rL   r~   rL   r   )r   r@   r   r*   r+   r   rV   r
   rK   rL   r   rX   r   rm   )r-   r   r4   rF   r    r    r!   test_agg_nested_dicts   s$   ",*""r   c                 C   sR  g d}t dt dt d g}tg dg dtdtdddtd	dd
dtdtdtdgddtjgddtjgddtjg|tdtdtd gd|d}tg dg dg dg dg dg dg dg dg dg dg dd|dd d |  }|j	dd| d
 }t|| |j	dd| d
 }| td d |  }t|| d S )N)intfloatstringdatetime	timedeltaperiodsfl_inffl_nanstr_nandt_natperiods_nat2017010120170203r   r   r   )g      @g      @g      @abcr   )r   z1 ss)r   freqz2012-01z2012-02z2012-03      ?       @aabbr%   )r   r   r   )r   r   r   r   r   r   min_periodsr   r   )r   r   )r	   r   rB   r   r   r   r   infrA   r   countr   rC   notnaastyper   )r   cols
dt_nat_colr-   rF   rE   r    r    r!   test_count_nonnumeric_types   sZ   



r   c                  C   sN   t tddd} | d }| d }|jdksJ |jdks%J d S )Nd   r7   )r         )r   r   aranger   r1   r   )r   s2s3r    r    r!   test_preserve_metadata
  s
   r   zfunc,window_size,expected_valsr   r   )g      .@      4@      9@r   )r         >@     A@r   )r   r   r   r   )r         D@      N@r   )r         T@g     @U@P   	expanding)      $@r   r   r   )r   r   r   r   )r   r   r   r   )gRB:@r   g      I@r   )r   r   r   r   c           
   	   C   s   t g dg dg dg dg dg dg dgg dd	}t|d
| }|r,||}n| }tjg dd
d gd}tg d}t |||d}|ddgddgd}	t|	| d S )N)r#   r6   r   )r#   r   r   )r#   r   (   )r$   r6   r   )r$   r   r   )r$   r   r   )r$   r   Z   )stocklowhighr%   r   ))r#   r   )r#   r   )r#   r   )r$   r   )r$   rg   )r$   r   )r$   r9   )names))r   rK   )r   rb   )r   rK   )r   ra   )indexr   rK   rb   ra   )r   r   )r   getattrgroupbyr   rX   rm   r   rC   )
r`   window_sizeexpected_valsr-   fr   r   r   rF   rE   r    r    r!   test_multiple_agg_funcs  s2   !	
r   c                    s`   t tdjd||||d  fdd jD }t |    fdd jD }||ks.J d S )Nr   )centerclosedr   r   c                       i | ]}|t  |qS r    r   .0attrroll_objr    r!   
<dictcomp>]      z=test_dont_modify_attributes_after_methods.<locals>.<dictcomp>c                    r   r    r   r   r   r    r!   r   _  r   )r   r@   r   _attributesr   )arithmetic_win_operatorsr   r   r   r   rF   rE   r    r   r!   )test_dont_modify_attributes_after_methodsV  s   
r   c                 C   s  d}t jt|d ttdjddd| d  W d    n1 s$w   Y  d}tj	t
|d ttdjddd	| d  W d    n1 sMw   Y  ttd
}d}t jt|d |jddd| d  W d    n1 sxw   Y  d}t jt|d |jddd	| d  W d    n1 sw   Y  d}tj	t
|d |jddd| d  W d    d S 1 sw   Y  d S )Nz2The 'axis' keyword in Series.rolling is deprecatedr'   r6   r   Tr   )r   r   rJ   r   z&No axis named 1 for object type Seriesr   )r6   r6   z5The 'axis' keyword in DataFrame.rolling is deprecatedrk   z)No axis named 2 for object type DataFramer   )r   rT   rU   r   r   onesr   rK   r*   r+   
ValueErrorr   )r   r4   r-   r    r    r!   test_centered_axis_validationc  s*   """r   c                 C   s   t g d}|jdd| d }t tt|d d |  }t|| d}tj	t
|d t g djdd	| d  W d    d S 1 sGw   Y  d S )
Nr   r   r   rg   r   r   r   r   !min_periods 5 must be <= window 3r'   r   r   r   )r   r   ra   r   r   lenr   r0   r*   r+   r   r   rj   rE   rF   r4   r    r    r!   test_rolling_min_min_periods}  s   "r   c                 C   s   t g dtjd}|jdd| d }|d d |  }t|| d}tjt	|d t g djd	d
| d  W d    d S 1 sCw   Y  d S )Nr   )dtyper   r   r   r   r'   r   r   r   )
r   r   float64r   rb   r   assert_almost_equalr*   r+   r   r   r    r    r!   test_rolling_max_min_periods  s   "r   )'numpyr   r*   pandas.errorsr   r   pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingr   r"   r/   r5   rG   rH   r_   markparametrizern   rz   r{   r   r   r   rA   r   r   r   r   r   r    r    r    r!   <module>   sf    ,	
2

C

#
