o
    ŀg                     @   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 s5w   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_changeassert_equal)
selfr   r   r   expframe_or_seriesvalsobjmsgres r"   ^/var/www/html/myenv/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< d}td	D ]8}|j|d
|j|d
j	|d
 d }t
jt|d |j|dd}W d    n1 s^w   Y  t
|| q1d 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   arangeastypefloat64r   iatranger   shiftr   r   r   r   assert_frame_equal)r   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 sDw   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   5D)freq)	r   r   r1   r0   r   r   r   r   reindex_like)r   datetime_framer    rs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 s)w   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   r1   )r   sdfr    chgr3   edfr"   r"   r#   test_pct_change_shift_over_nasT   s   
z5TestDataFramePctChange.test_pct_change_shift_over_nasz!freq, periods, fill_method, limit))5B   NN)3Br'   NN)rK   r'   r   N)7B   r*   r   )rL   rM   r   r'   )14B   NNc           
      C   s(  d}t jt|d |j|||d}W d    n1 sw   Y  t jt|d |j|||d}W d    n1 s;w   Y  t || t|j|jd}	t jt|d |	j|||d}W d    n1 shw   Y  t jt|d |	j|||d}W d    n1 sw   Y  t || d S )Nr(   r   )r9   r   r   r7   )indexcolumns)r   r   r   r   r1   r   rP   rQ   )
r   r;   r9   r   r   r   r    rs_freq
rs_periodsempty_tsr"   r"   r#   test_pct_change_periods_freqa   s2   z3TestDataFramePctChange.test_pct_change_periods_freq)r   
__module____qualname__pytestmarkparametrizer   r   r$   r5   r>   rH   rU   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 r!d nt}d}tj||d |j| d}W d    n1 s=w   Y  | d u rSt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@   rA   )rP   r(   r   r6   g       @r?   rC   rB   )	r   r   r   r   r   r   r   infr1   )r   datawarnr    r4   second_columnr3   r"   r"   r#   'test_pct_change_with_duplicated_indices   s"   .
rb   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   rJ   rB   gUUUUUU?g      ?r]   )r   r   r   r   r   r1   )rE   r4   r3   r"   r"   r#   )test_pct_change_none_beginning_no_warning   s   	"rc   )numpyr   rX   pandasr   r   pandas._testing_testingr   r   rY   rZ   rb   rc   r"   r"   r"   r#   <module>   s     
