o
    _~#g                     @   sZ   d dl Zd dlZd dlmZ d dlZd dlmZ d dlm	Z
 d dlmZ G dd dZdS )    N)DatetimeTZDtype)NaT)DatetimeArrayc                   @   s   e Zd Zejg dddd Zejdd Zdd Zej	d	d
dgej	dddgdd Z
ej	d	d
dgej	dddgdd Zdd Zdd Zejddd Zdd Zdd Zej	dddgdd Zd
S ) TestReductions)smsusns)paramsc                 C   s   |j S )N)param)selfrequest r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/arrays/datetimes/test_reductions.pyunit   s   zTestReductions.unitc                 C   s6   |}|durt |dntd}tjg d|d}|S )z;Fixture returning DatetimeArray with parametrized timezonesNtzM8[ns])
2000-01-03r   r   
2000-01-02
2000-01-05z
2000-01-04dtype)r   npr   r   _from_sequence)r   tz_naive_fixturer   r   arrr   r   r   arr1d   s   zTestReductions.arr1dc                 C   s   |}| |}|j}| }tjd|d |}||ksJ |j|jks&J | }tjd|d |}||ks:J |j|jksBJ |jdd}|tu sNJ |jdd}|tu sZJ d S )Nr   r   r   Fskipna)as_unitr   minpd	Timestampr   maxr   )r   r   r   r   r   resultexpectedr   r   r   test_min_max#   s   
zTestReductions.test_min_maxr   Nz
US/Centralr   TFc                 C   s^   |d ur	t |dntd}tjg |d}|j|d}|tu s!J |j|d}|tu s-J d S )Nr   r   r   r   )r   r   r   r   r   r!   r   r$   )r   r   r   r   r   r%   r   r   r   test_min_max_empty8   s   z!TestReductions.test_min_max_emptyc                 C   s   |d ur	t |dntd}tjg |d}|j|d}|tu s!J |dd}|jd|d}t|jtttg|jd}t	
|| |jd|d}t|jg |jd}t	
|| d S )	Nr   r   r   r   r      axisr      )r   r   r   r   r   medianr   reshapetypetmassert_equal)r   r   r   r   r   r%   r&   r   r   r   test_median_emptyC   s   z TestReductions.test_median_emptyc                 C   st   |}|  }||d ksJ |j dd}|tu sJ | j dd}||d ks*J |j dd}||d ks8J d S )Nr   Fr   r+   )r-   r   dropna)r   r   r   r%   r   r   r   test_medianT   s   zTestReductions.test_medianc                 C   sv   |}|j dd|  ksJ |j dddtu sJ d}tjt|d |j dd W d    d S 1 s4w   Y  d S )Nr   r3   Fr*   z"abs\(axis\) must be less than ndim)matchr,   )r-   r   pytestraises
ValueError)r   r   r   msgr   r   r   test_median_axisb   s   "zTestReductions.test_median_axisz/ignore:All-NaN slice encountered:RuntimeWarningc                 C   s   | dd}| | ksJ |jddtu sJ |jdd}|}t|| |jddd}|}t|| |jdd}t|j| g|jd}t|| |jddd}t|jtg|jd}t|| d S )	Nr,   Fr   r   r3   r*   r   )r.   r-   r   r0   r1   r/   r   r   )r   r   r   r%   r&   r   r   r   test_median_2dk   s   zTestReductions.test_median_2dc                 C   s   |}|d dt jdd  }| }||ksJ |jdd}|tu s$J | jdd}||ks2J |jdd}||ks>J d S )Nr   g?r,   )daysFr   r3   )r"   	Timedeltameanr   r4   )r   r   r   r&   r%   r   r   r   	test_mean   s   zTestReductions.test_meanc                 C   s   t jdddd}|jdd}|jdd}|d	 }t|| |jd	d}|d d df t jd
d }t|| |jd d}| }||ksIJ d S )Nz
2016-01-01   z
US/Pacific)periodsr   r)      r   r3   r,      )hours)r"   
date_range_datar.   r@   r0   assert_datetime_array_equalr?   )r   dtidtar%   r&   r   r   r   test_mean_2d   s   zTestReductions.test_mean_2dc                 C   s   |d d }|j |dtu sJ |dd}|j d|d}tjtttg|jd}t|| |j d|d}|}t|| |j d |d}|tu sJJ d S )Nr   r   r)   r*   r   r,   )r@   r   r.   r   r   r   r0   rI   )r   r   r   r   arr2dr%   r&   r   r   r   test_mean_empty   s   zTestReductions.test_mean_empty)__name__
__module____qualname__r7   fixturer   r   r'   markparametrizer(   r2   r5   r;   filterwarningsr=   rA   rL   rN   r   r   r   r   r      s(    

	
	
r   )numpyr   r7   pandas.core.dtypes.dtypesr   pandasr"   r   pandas._testing_testingr0   pandas.core.arraysr   r   r   r   r   r   <module>   s    