U
    >vf                     @   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ddddg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   Q/tmp/pip-unpacked-wheel-vdrwu74i/pandas/tests/arrays/datetimes/test_reductions.pyunit   s    zTestReductions.unitc                 C   s>   |}|dk	rt |dntd}tjddddddg|d	}|S )
z;Fixture returning DatetimeArray with parametrized timezonesNtzM8[ns]z
2000-01-03r   
2000-01-02
2000-01-05z
2000-01-04dtype)r   npr   r   _from_sequence)r   Ztz_naive_fixturer   r   arrr   r   r   arr1d   s    zTestReductions.arr1dc                 C   s   |}| |}|j}| }tjd|d |}||ks<t|j|jksLt| }tjd|d |}||kstt|j|jkst|jdd}|tkst|jdd}|tkstd S )Nr   r   r   Fskipna)	Zas_unitr   minpdZ	TimestampAssertionErrorr   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 k	rt |dntd}tjg |d}|j|d}|tksBt|j|d}|tksZtd S )Nr   r   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 k	rt |dntd}tjg |d}|j|d}|tksBt|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   r    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t|j dd}|tks4t| j dd}||d ksTt|j dd}||d ksptd S )Nr   Fr   r(   )r*   r    r   dropna)r   r   r   r"   r   r   r   test_medianT   s    zTestReductions.test_medianc              	   C   s`   |}|j dd|  kst|j dddtks2td}tjt|d |j dd W 5 Q R X d S )Nr   r0   Fr'   z"abs\(axis\) must be less than ndim)matchr)   )r*   r    r   pytestZ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 t|jddtks4t|jdd}|}t|| |jddd}|}t|| |jdd}t|| g}t|| |jddd}t|jtg|jd}t|| d S )	Nr)   Fr   r   r0   r'   r   )	r+   r*   r    r   r-   r.   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s0t|jdd}|tksHt| jdd}||ksdt|jdd}||ks|td S )Nr   g?r)   )daysFr   r0   )r   	Timedeltameanr    r   r1   )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std S )Nz
2016-01-01   z
US/Pacific)Zperiodsr   r&      r   r0   r)      )hours)	r   Z
date_range_datar+   r<   r-   assert_datetime_array_equalr;   r    )r   ZdtiZdtar"   r#   r   r   r   test_mean_2d   s    zTestReductions.test_mean_2dc                 C   s   |d d }|j |dtks t|dd}|j d|d}tjtttg|jd}t|| |j d|d}|}t|| |j d |d}|tkstd S )Nr   r   r&   r'   r   r)   )	r<   r   r    r+   r   r   r   r-   rC   )r   r   r   r   Zarr2dr"   r#   r   r   r   test_mean_empty   s    zTestReductions.test_mean_empty)__name__
__module____qualname__r4   Zfixturer   r   r$   markZparametrizer%   r/   r2   r7   filterwarningsr9   r=   rD   rE   r   r   r   r   r      s&   

		

r   )Znumpyr   r4   Zpandas.core.dtypes.dtypesr   Zpandasr   r   Zpandas._testingZ_testingr-   Zpandas.core.arraysr   r   r   r   r   r   <module>   s   