U
    >vf                     @   sT   d Z ddlZddlZddlZddlmZ ej	ej
ejjejjdZG dd dZdS )zX
Tests for Series cumulative operations.

See also
--------
tests.frame.test_cumulative
    N)cumsumcumprodcummincummaxc                   @   s  e Zd Zejdejejgdd Z	ejdddgdd Z
ejd	ed
ededdgejdddddddddggddddddddggddddddddggddddddddgggdd Zejddejdddfdejdddfgdd Zejddddddddgdddddddggejjddd d d gd!d"gd#ejde d$d% Zejd&d'ejd
d(ejd(ged)gd*edd
ejd
ggdeddejdggdeddejdgggd+d, Zd-d. Zd/S )0TestSeriesCumulativeOpsfuncc                 C   sr   t j||j|t|dd | }tj|d d d< ||dd d }|t| }t j|j|dd d S )NT)Zcheck_dtype      F)tmassert_numpy_array_equalvaluesnparraycopyNaNdropna)selfdatetime_seriesr   tsresultexpected r   G/tmp/pip-unpacked-wheel-vdrwu74i/pandas/tests/series/test_cumulative.pytest_datetime_series   s    z,TestSeriesCumulativeOps.test_datetime_seriesmethodr   r   c                 C   s   t | }t|| j}|t|}t|| | }tj|d d d< t|| dd d }||	 }|j
d |_
t|| d S )Nr   r	   )methodsgetattrr   r   r   r
   r   r   r   r   indexZ
_with_freqassert_series_equal)r   r   r   ufuncr   r   r   r   r   r   test_cummin_cummax)   s    z*TestSeriesCumulativeOps.test_cummin_cummaxr   r   z
1999-12-31z
US/Pacificzmethod, skipna, exp_tdiTNaT2 days3 days1 daysFc           	      C   s\   t ddddddg}t || }t |}t || }t|||d}t|| d S )Nr!   r"   r$   r#   skipna)pdZto_timedeltaSeriesr   r
   r   )	r   r   r   r&   Zexp_tdiZtdiserr   r   r   r   r   test_cummin_cummax_datetimelike9   s    
z7TestSeriesCumulativeOps.test_cummin_cummax_datetimelikez	func, exp2012-1-1Dfreq2012-1-2c                 C   s   t t jdddt jt jdddg}t||dd}t t jdddt jt jg}t|| t||dd}t t jdddt j|g}t|| d S )Nr+   r,   r-   r/   Fr%   T)r'   r(   Periodr!   r   r
   r   )r   r   expr)   r   r   r   r   r   test_cummin_cummax_period^   s    	z1TestSeriesCumulativeOps.test_cummin_cummax_periodargc                 C   s   | S Nr   xr   r   r   <lambda>z       z TestSeriesCumulativeOps.<lambda>c                 C   s   |  S r4   r   r5   r   r   r   r7   z   r8   identityZinverse)idsc           	      C   sF   |t |}t| }||j}t |}t|| }t|| d S r4   )r'   r(   r   r   r   r
   r   )	r   r3   r   r   r)   r   Zexp_valsr   r   r   r   r   test_cummethods_boolr   s    

z,TestSeriesCumulativeOps.test_cummethods_boolzmethod, expectedr   r	   )Zdtyper   c                 C   s0   t ddtjdg}t|| }t|| d S )NFT)r'   r(   r   nanr   r
   r   )r   r   r   r)   r   r   r   r   $test_cummethods_bool_in_object_dtype   s    
z<TestSeriesCumulativeOps.test_cummethods_bool_in_object_dtypec              	   C   sD   t t jddt jddg}tjtdd |  W 5 Q R X d S )Nr	   )days   z#cumprod not supported for Timedelta)match)r'   r(   	TimedeltapytestZraises	TypeErrorr   )r   r)   r   r   r   test_cumprod_timedelta   s    z.TestSeriesCumulativeOps.test_cumprod_timedeltaN)__name__
__module____qualname__rB   markZparametrizer   r   r   r   r    r'   rA   Z	TimestampZtz_localizer*   r0   r2   r   keysr;   r(   r<   objectr=   rD   r   r   r   r   r      sp   


  	
r   )__doc__Znumpyr   rB   Zpandasr'   Zpandas._testingZ_testingr
   r   r   Zminimum
accumulatemaximumr   r   r   r   r   r   <module>   s   