o
    _~#g%                     @   sd   d Z ddlZddlZddlZddlZddlmZmZm	Z	 ddl
mZ G dd dZG dd dZdS )zP
Tests for statistical reductions of 2nd moment or higher: var, skew, kurt, ...
    N)	DataFrameSeries
date_rangec                   @   s~   e Zd Zejdeejej	gdd Z
ejdeejej	gejdg ddd Zejdeejej	gdd	 Zd
S )TestDatetimeLikeStatReductionsboxc                 C   s   |}t dd|d}|g d}|j}||}| tjd|dks$J |jddtjd|dks3J tj|d	< ||}| tjd
|dksIJ |jddtju sTJ d S )N
2001-01-01   )periodstz         
   	            r         z
2001-01-06)r
   Fskipnaz2001-01-06 07:12:00)r   take_datameanpd	TimestampNaT)selftz_naive_fixturer   r
   dtidtarrobj r$   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/reductions/test_stat_reductions.pytest_dt64_mean   s   
z-TestDatetimeLikeStatReductions.test_dt64_meanfreq)shDWBc                 C   s`  t ddd}|g d}|dkrtnd }d}tj||d |j|}W d    n1 s/w   Y  ||}tjt	dd |
  W d    n1 sNw   Y  tjt	dd |j
d	d
 W d    n1 skw   Y  tj|d< tjt	dd |
  W d    n1 sw   Y  tjt	dd |j
d	d
 W d    d S 1 sw   Y  d S )Nr   r   r	   r   r,   zPeriodDtype\[B\] is deprecatedmatch	ambiguousTr   r   )r   r   FutureWarningtmassert_produces_warningr   	to_periodpytestraises	TypeErrorr   r   r   )r   r   r'   r!   warnmsgparrr#   r$   r$   r%   test_period_mean'   s*   


"z/TestDatetimeLikeStatReductions.test_period_meanc           	      C   s   t g dd}t|d}|j}||dd}| }t | }||ks*J tj|d< |jddtju s:J |jdd}||d	d   ksLJ |d
|d d d
ks\J d S )N)r   r   r   ir   r   r   r   r   r   zm8[D]nsF)copyr   r   Tr   usg      &@r   )	nparrayr   TimedeltaIndexas_unitr   r   r   round)	r   r   m8valuestditdarrr#   resultexpectedresult2r$   r$   r%   test_td64_meanA   s   
$z-TestDatetimeLikeStatReductions.test_td64_meanN)__name__
__module____qualname__r5   markparametrizer   r   IndexrA   r&   r;   rK   r$   r$   r$   r%   r      s    
r   c                   @   sp   e Zd Z	dddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )TestSeriesStatReductionsFc              	   C   s\  t dd tt|}tj|dd< |dvrAttddd}d	| d
}tjt	|d || W d    n1 s<w   Y  t 
||sJJ t ||ddsUJ | }	t||	||	j t||||	j |tj }
|rt||
sJ tg d}|| dg}|tdd t|dd}tt||t||j |rtt jddd}||}||}||ksJ |dvrtjt	d d |ttd W d    n1 sw   Y  d}tjt|d ||dd W d    n1 sw   Y  dt|jv r||dd W d    d S W d    d S 1 s'w   Y  d S )Nuse_bottleneckFr      )maxminr   medianstdz1/1/2001r   r-   zdoes not support reduction ''r.   r   )r   r   r   Nr   r   l        l      int64dtypez1/1/2000)sumrV   rU   abcz&No axis named 1 for object type Seriesr   )axisnumeric_onlyT)r`   )r   option_contextgetattrr   r@   nanr   r5   r6   r7   notnaisnadropnar2   assert_almost_equalvaluesisnanextendrangefloatbdate_rangelist
ValueErrorinspectgetfullargspecargs)r   name	alternatestring_series_check_objectscheck_allnafdsr9   nonaallnar(   itemsresexpr$   r$   r%   _check_stat_op\   sR   


6$z'TestSeriesStatReductions._check_stat_opc                 C   ,   t tdtjdd}| jdtj|dd d S )N   seriesr\   rs   r]   F)rw   )r   rk   r@   float64r   r]   r   string_seriesr$   r$   r%   test_sum      z!TestSeriesStatReductions.test_sumc                 C   (   t tdtjdd}| dtj| d S )Nr   r   r   r   )r   rk   r@   r   r   r   r   r$   r$   r%   	test_mean      z"TestSeriesStatReductions.test_meanc                 C   sX   t tdtjdd}| dtj| t tjdtdtdd}t	t||  d S )Nr   r   r   rW   r   r[   )index)
r   rk   r@   r   r   rW   onesintr2   rg   )r   r   int_tsr$   r$   r%   test_median   s   z$TestSeriesStatReductions.test_medianc                 C   r   )Nr   r   r   prod)r   rk   r@   r   r   r   r   r$   r$   r%   	test_prod   r   z"TestSeriesStatReductions.test_prodc                 C   r   )Nr   r   r   rV   Trv   )r   rk   r@   r   r   rV   r   r$   r$   r%   test_min   r   z!TestSeriesStatReductions.test_minc                 C   r   )Nr   r   r   rU   Tr   )r   rk   r@   r   r   rU   r   r$   r$   r%   test_max   r   z!TestSeriesStatReductions.test_maxc                 C   s   t tdtjdd}t tjdtjdtddddd	}d
d }| d|| dd }| d|| |jdd}tj|jdd}t	
|| |jdd}tj|jdd}t	
|| |jdg }|jdd}t|slJ |jdd}t|syJ d S )Nr   r   r   r   r[   
2020-01-01r-   tsr   rs   c                 S      t j| ddS Nr   ddof)r@   rX   xr$   r$   r%   <lambda>       z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>rX   c                 S   r   r   )r@   varr   r$   r$   r%   r      r   r   r   r   r   r   )r   rk   r@   r   aranger   r   rX   rh   r2   rg   r   ilocr   re   r   r   datetime_seriesaltrH   rI   r(   r$   r$   r%   test_var_std   s*   
z%TestSeriesStatReductions.test_var_stdc                 C   s   t tdtjdd}t tjdtjdtddddd	}d
d }| d|| |jdd}tj|j	ddt
t|j	 }t|| |jdg }|jdd}t|sUJ d S )Nr   r   r   r   r[   r   r-   r   r   c                 S   s   t j| ddt t|  S r   )r@   rX   sqrtlenr   r$   r$   r%   r      s    z3TestSeriesStatReductions.test_sem.<locals>.<lambda>semr   r   r   r   )r   rk   r@   r   r   r   r   r   rX   rh   r   r   r2   rg   r   r   re   r   r$   r$   r%   test_sem   s    
z!TestSeriesStatReductions.test_semc                    s   t d ttdtjdd} fdd}| d|| d}td	|d	 D ]G}tt|}tt||f}||k rPt	|
 sDJ t	|
  sOJ q%d
|
 ksXJ t|
 tjsbJ |
 d
k slJ q%d S )Nscipy.statsr   r   r   c                        j | ddS NF)bias)skewr   sp_statsr$   r%   r      r   z4TestSeriesStatReductions.test_skew.<locals>.<lambda>r   r   r   r   )r5   importorskipr   rk   r@   r   r   r   r   ri   r   all
isinstance)r   r   r   min_Nir(   dfr$   r   r%   	test_skew   s   
z"TestSeriesStatReductions.test_skewc                    s<   t d ttdtjdd} fdd}| d|| d S )Nr   r   r   r   c                    r   r   )kurtosisr   r   r$   r%   r     r   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>kurt)r5   r   r   rk   r@   r   r   )r   r   r   r$   r   r%   	test_kurt   s   
z"TestSeriesStatReductions.test_kurtc                 C   s   d}t d|d D ]G}tt|}tt||f}||k r4t| s(J t|  s3J q	d| ks<J t| tj	sFJ | dk sPJ q	d S )Nr   r   r   )
rk   r   r@   r   r   ri   r   r   r   r   )r   r   r   r(   r   r$   r$   r%   test_kurt_corner  s   z)TestSeriesStatReductions.test_kurt_cornerN)FF)rL   rM   rN   r   r   r   r   r   r   r   r   r   r   r   r   r$   r$   r$   r%   rR   W   s    
=rR   )__doc__rp   numpyr@   r5   pandasr   r   r   r   pandas._testing_testingr2   r   rR   r$   r$   r$   r%   <module>   s    E