U
    MZf                     @   sZ   d dl Zd dlZd dlmZmZ d dlmZ G dd dZ	ej
ddddgdd	 ZdS )
    N)	DataFrameSeriesc                   @   sd  e Zd Zejddddejejejdddddgfdddejejejddddejgfdddejdddddejejgfdddejejddddejejgfdddejejd	d	d
ddejgfdddejejd	d	d
dejejgfdddddd	d	d
ejejejgfdddejdd	d	d
ejejejgfgdd Zdd Z	dd Z
dd Zejdddddddgdd ZdS )TestDataFramePctChangezperiods,fill_method,limit,exp   ffillN      ?r   bfillg      g333333c           	      C   sH   t jt jddddt jt jg}||}|j|||d}t||| d S )Nr         
   )periodsfill_methodlimit)npnan
pct_changetmZassert_equal)	selfr   r   r   expZframe_or_seriesvalsobjres r   N/tmp/pip-unpacked-wheel-nbcvw55c/pandas/tests/frame/methods/test_pct_change.pytest_pct_change_with_nas   s    z/TestDataFramePctChange.test_pct_change_with_nasc                 C   s   t tdddtdddtdddgtj}tj|jd< tj|jd< d|jd< tdD ]B}|j|d	|j|d	j	|d	 d
 }|j
|dd}t|| q^d S )Nr   (   r   )r   r   )r   r   <   )r
      r
   )axisr   pad)r   r   )r   r   ZarangeZastypeZfloat64r   Ziatranger   shiftr   r   assert_frame_equal)r   Zpnlr   expectedresultr   r   r   test_pct_change_numeric"   s    &
$z.TestDataFramePctChange.test_pct_change_numericc                 C   s   |j d d}t|||d d  | d}|jdd}t|||d d  |j ddd}|jddd}t|||d d  |j d	d
}|jdd}t|||jd	d
 d | d S )Nr   r   r
   r    )methodr   r   r   )r(   r   Z5D)freq)r   r   r#   r"   ZfillnaZreindex_like)r   datetime_framersZfilledr   r   r   test_pct_change1   s    
 z&TestDataFramePctChange.test_pct_changec                 C   s\   t ddtjddg}t||d}| }t tjdddd	g}t||d}t|| d S )
N      ?r   g      @g      @)ab      ?        gVUUUUU?g?)r   r   r   r   r   r   r#   )r   sZdfZchgr$   Zedfr   r   r   test_pct_change_shift_over_nasC   s    z5TestDataFramePctChange.test_pct_change_shift_over_nasz!freq, periods, fill_method, limit)Z5B   NN)3Br   NN)r6   r   r   N)7B   r    r   )r7   r8   r   r   )Z14B   NNc           	      C   sl   |j |||d}|j |||d}t|| t|j|jd}|j |||d}|j |||d}t|| d S )N)r*   r   r   r)   )indexcolumns)r   r   r#   r   r:   r;   )	r   r+   r*   r   r   r   Zrs_freqZ
rs_periodsZempty_tsr   r   r   test_pct_change_periods_freqM   s        z3TestDataFramePctChange.test_pct_change_periods_freq)__name__
__module____qualname__pytestmarkparametrizer   r   r   r&   r-   r4   r<   r   r   r   r   r      s6    " " " "
	
r   r   r    r   c                 C   s   t tjdddddgddtjdddgddd	gd d
}|j| d}| d krdtjtjtjtjddg}ntjtjddddg}t tjtjddddg|ddd	gd d
}t|| d S )Nr   r
   r   	      r   )r   r   r/   r0   )r:   r'   g       @r.   r2   r1   )r   r   r   r   infr   r#   )r   datar%   Zsecond_columnr$   r   r   r   'test_pct_change_with_duplicated_indicesj   s    $ 

rG   )Znumpyr   r@   Zpandasr   r   Zpandas._testingZ_testingr   r   rA   rB   rG   r   r   r   r   <module>   s   _