U
    f/e                     @   sZ   d dl Zd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ G dd dZdS )    N)	Timedelta)nanops)TimedeltaArrayc                	   @   s   e Zd Zejddddddgejddd	gd
d Zej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edej ejdejdgdd Zdd Zd d! Zd"d# Zd$S )%TestReductionsnamestdminmaxmedianmeanskipnaTFc                 C   sP   t g }|j}t|||d}|t jks.tt|||d}|t jksLtd S )Nr   )pdTimedeltaIndexarraygetattrNaTAssertionError)selfr   r   tdiarrresult r   R/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/arrays/timedeltas/test_reductions.pytest_reductions_empty   s    
z$TestReductions.test_reductions_emptyc                 C   sh   t g }|j}|j|d}t|ts*t|tdks:t|j|d}t|tsTt|tdksdtd S )Nr   r   )r   r   r   sum
isinstancer   r   )r   r   r   r   r   r   r   r   test_sum_empty   s    
zTestReductions.test_sum_emptyc                 C   s   t ddddddg}| }td}||ks2t| }td}||ksNt|jdd}|tjksht|jdd}|tjkstd S )N3Hr   2H5H4HFr   )r   Z_from_sequencer   r   r   r	   r   r   )r   r   r   expectedr   r   r   test_min_max%   s    zTestReductions.test_min_maxc                 C   s0  t ddddddg}|j}|jdd}tdd	}t|ts@t||ksLt|jdd}t|tsft||ksrt|jd
d}|t jkst|jd
d}|t jkst|jdd}|t jkst|jdd}|t jkst|jdd}t|tst||kst|jdd}t|tst||ks,td S )Nr   r   r   r    r!   Tr      hoursF	   )Z	min_count   )r   r   r   r   r   r   r   r   r   r   r   r   r"   r   r   r   test_sum6   s.    
zTestReductions.test_sumc                 C   sb   t jdt jddd}t|}t |}|| ks>tt t	|}|| ks^td S )N   )Zdtypezm8[h]m8[ns])
nparangeint64viewastyper   r   r   r   r   )r   valsr   r   r   r   r   test_np_sumX   s    
zTestReductions.test_np_sumc                 C   sp   t dddddg}|j}t|}tdd}t|ts<t||ksHtt|}t|ts`t||ksltd S )Nr   r   r    r!   r$   r%   )r   r   r   r-   r   r   r   r   r)   r   r   r   
test_npsumb   s    


zTestReductions.test_npsumc                 C   s   t dt jdddd}d|d< t|}|jdd	}|tj	ksPt
|jd
dd}ttddtj	gj}t|| |jddd}ttddtddtddtj	gj}t|| d S )N   zm8[s]r,         ZNat)r8   Fr   r   )axisr      )secondsr(   r+   r'   )r-   r.   r1   r/   r0   reshaper   r   r   r   r   r   r   Z_valuestmassert_timedelta_array_equal)r   r   tdar   r"   r   r   r   test_sum_2d_skipna_falsep   s"    &z'TestReductions.test_sum_2d_skipna_falseaddr   UTCz
Asia/Tokyoc                 C   s"  t ddddddg| }|j}|jdd}tdd}t|tsDt||ksPt|jdd}t|tsjt||ksvtt|d	d d krtj	t
|dd}t|tst||kst|jd
d}|t jkst|jd
d}|t jkstt|d	d d krtj	t
|d
d}|t jkstd S )N0Hr!   r   r   Tr   r7   r%   tzF)r   r   r   r   r   r   r   r   r   Znanstdr-   Zasarrayr   )r   rA   r   r   r   r"   r   r   r   test_std   s(    

zTestReductions.test_stdc                 C   s   t ddddddg}|j}|jdd}tdd	}t|ts@t||ksLt|jdd}t|tsft||ksrt|jd
d}|t jkst|jd
d}|t jkstd S )NrC   r   r   5H06mr   Tr   r7   r%   F)r   r   r   r
   r   r   r   r   r)   r   r   r   test_median   s    
zTestReductions.test_medianc                 C   s   t ddddddg}|j}t| j }| }||ksBt|jdd}|t jks\t| jdd}||ksxt|jdd	}||kstd S )
NrC   r   r   rF   r   Fr   r   r9   )	r   r   _datar   ZdropnaZ_ndarrayr   r   r   )r   r   r   r"   r   r   r   r   	test_mean   s    zTestReductions.test_meanc                 C   s   t jddd}|jdd}|jdd}|d }t|| |jdd}|d d df td	d
 }t|| |jd d}| }||kstd S )Nz14 days   )Zperiods   r7   r   rH   r(   r:   r%   )	r   Ztimedelta_rangerI   r<   r   r=   r>   r   r   )r   r   r?   r   r"   r   r   r   test_mean_2d   s    zTestReductions.test_mean_2dN)__name__
__module____qualname__pytestmarkZparametrizer   r   r#   r*   r3   r4   r@   r   r   Z	TimestampnowrE   rG   rJ   rM   r   r   r   r   r      s,   

"


	
r   )Znumpyr-   rQ   Zpandasr   r   Zpandas._testingZ_testingr=   Zpandas.corer   Zpandas.core.arraysr   r   r   r   r   r   <module>   s   