U
    *if                     @   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                   @   sv  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ejdee	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      g333333klassc           	      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   expr
   valsobjres r   ]/home/mars/bis/venv/lib/python3.8/site-packages/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_change0   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_nasB   s    z5TestDataFramePctChange.test_pct_change_shift_over_nasz!freq, periods, fill_method, limit)Z5B   NN)3Br   NN)r7   r   r   N)7B   r!   r   )r8   r9   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_freqL   s        z3TestDataFramePctChange.test_pct_change_periods_freq)__name__
__module____qualname__pytestmarkparametrizer   r   r   r   r   r'   r.   r5   r=   r   r   r   r   r      s8    " " " "
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   r0   r1   )r;   r(   g       @r/   r3   r2   )r   r   r   r   infr   r$   )r   datar&   Zsecond_columnr%   r   r   r   'test_pct_change_with_duplicated_indicesi   s    $ 

rH   )numpyr   rA   Zpandasr   r   Zpandas._testingZ_testingr   r   rB   rC   rH   r   r   r   r   <module>   s   ^