o
    i                     @   sX   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g ddd ZdS )	    N)	DataFrameSeriesc                   @   sn  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g d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tmassert_equal)	selfr   r   r   expr
   valsobjres r   e/var/www/edux/Edux_v2/venv/lib/python3.10/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 ]!}|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   arangeastypefloat64r   iatranger   shiftr   r   assert_frame_equal)r   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   5D)freq)r   r   r)   r(   fillnareindex_like)r   datetime_framers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   sdfchgr+   edfr   r   r   test_pct_change_shift_over_nasB   s   z5TestDataFramePctChange.test_pct_change_shift_over_nasz!freq, periods, fill_method, limit))5B   NN)3Br    NN)rE   r    r   N)7B   r"   r   )rF   rG   r   r    )14B   NNc           	      C   sl   |j |||d}|j |||d}t|| t|j|jd}|j |||d}|j |||d}t|| d S )N)r2   r   r   r0   )indexcolumns)r   r   r)   r   rJ   rK   )	r   r5   r2   r   r   r   rs_freq
rs_periods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-   r8   rB   rO   r   r   r   r   r      s.     " " " "
r   r   )r"   r   Nc                 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 u r2t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:   r;   )rJ   r.   g       @r9   r=   r<   )r   r   r   r   infr   r)   )r   datar,   second_columnr+   r   r   r   'test_pct_change_with_duplicated_indicesi   s   .
r[   )numpyr   rS   pandasr   r   pandas._testing_testingr   r   rT   rU   r[   r   r   r   r   <module>   s    ^