a
    Pf                     @   s`   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	d
 ZdS )    N)	DataFrameSeriesc                   @   s\  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g ddd ZdS )TestDataFramePctChangez periods, fill_method, limit, exp   ffillN      ?r   bfillg      g333333c           
      C   s   t jt jddddt jt jg}||}dt|j d}tjt|d  |j|||d}	W d    n1 sj0    Y  t|	|| d S )	Nr         
   zDThe 'fill_method' keyword being not None and the 'limit' keyword in z.pct_change are deprecatedmatch)periodsfill_methodlimit)	npnantype__name__tmassert_produces_warningFutureWarning
pct_changeZassert_equal)
selfr   r   r   expZframe_or_seriesvalsobjmsgres r    c/var/www/ai-form-bot/venv/lib/python3.9/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< d}td	D ]p}|j|d
|j|d
j	|d
 d }t
jt|d |j|dd}W d    n1 s0    Y  t
|| qbd S )Nr   (   r   )r   r   )r   r   <   )r
      gThe 'fill_method' keyword being not None and the 'limit' keyword in DataFrame.pct_change are deprecatedr
   )axisr   r   pad)r'   r   )r   r   ZarangeZastypeZfloat64r   Ziatranger   shiftr   r   r   r   assert_frame_equal)r   Zpnlr   r'   expectedresultr    r    r!   test_pct_change_numeric'   s    &
$,z.TestDataFramePctChange.test_pct_change_numericc                 C   s   d}|j d d}t|||d d  | d}| }t|||d d  tjt|d |j ddd}W d    n1 s0    Y  |jdd}t|||d d  |j d	d
}| }t|||jd	d
 d | d S )Nr&   r   r   r
   r   r   r   r   )r   Z5D)freq)	r   r   r+   r*   r   r   r   r   Zreindex_like)r   datetime_framer   rsZfilledr    r    r!   test_pct_change<   s     
,z&TestDataFramePctChange.test_pct_changec                 C   s   t ddtjddg}t||d}d}tjt|d | }W d    n1 sR0    Y  t tjdd	d
dg}t||d}t|| d S )N      ?r   g      @g      @)abzCThe default fill_method='pad' in DataFrame.pct_change is deprecatedr         ?        gVUUUUU?g?)	r   r   r   r   r   r   r   r   r+   )r   sdfr   Zchgr,   Zedfr    r    r!   test_pct_change_shift_over_nasT   s    &z5TestDataFramePctChange.test_pct_change_shift_over_nasz!freq, periods, fill_method, limit))Z5B   NN)3Br%   NN)r>   r%   r   N)7B   r(   r   )r?   r@   r   r%   )Z14B   NNc           
      C   s*  d}t jt|d  |j|||d}W d    n1 s80    Y  t jt|d  |j|||d}W d    n1 sv0    Y  t || t|j|jd}	t jt|d  |	j|||d}W d    n1 s0    Y  t jt|d  |	j|||d}W d    n1 s0    Y  t || d S )Nr&   r   )r1   r   r   r0   )indexcolumns)r   r   r   r   r+   r   rB   rC   )
r   r2   r1   r   r   r   r   Zrs_freqZ
rs_periodsZempty_tsr    r    r!   test_pct_change_periods_freqa   s*    $$$&z3TestDataFramePctChange.test_pct_change_periods_freq)r   
__module____qualname__pytestmarkparametrizer   r   r"   r.   r4   r<   rD   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
}| d u rBd nt}d}tj||d |j| d}W d    n1 sz0    Y  | d u rt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   r6   r7   )rB   r&   r   r/   g       @r5   r9   r8   )	r   r   r   r   r   r   r   infr+   )r   datawarnr   r-   Zsecond_columnr,   r    r    r!   'test_pct_change_with_duplicated_indices   s     .*
rP   c                  C   sf   t dd gddgddgddgddgg} |  }t tjddddgtjtjdddgd	}t|| d S )
Nr   r
   r%   r   r=   r8   gUUUUUU?g      ?rL   )r   r   r   r   r   r+   )r;   r-   r,   r    r    r!   )test_pct_change_none_beginning_no_warning   s    	"rQ   )numpyr   rG   Zpandasr   r   Zpandas._testingZ_testingr   r   rH   rI   rP   rQ   r    r    r    r!   <module>   s    
