
    i0                     P    d dl Zd dlZd dlmZmZ d dlmZ  G d d      Z	d Z
d Zy)    N)	DataFrameSeriesc                      e Zd Zej                  j                  ddej                  ej                  ej                  dddej                  ej                  gfdej                  ej                  dddej                  ej                  ej                  gfg      d        Zd Z	d	 Z
d
 Zej                  j                  dg d      d        Zy)TestDataFramePctChangezperiods, exp         ?g      g333333c                     t         j                  t         j                  ddddt         j                  t         j                  g} ||      }|j                  |      }t        j                  | ||             y )Nr         
   )periods)npnan
pct_changetmassert_equal)selfr   expframe_or_seriesvalsobjress          g/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_pct_change.pytest_pct_change_with_nasz/TestDataFramePctChange.test_pct_change_with_nas   sW     1aRVVRVV<d#nnWn-
_S12    c           	      
   t        t        j                  ddd      t        j                  ddd      t        j                  ddd      g      j                  t        j                        }t        j
                  |j                  d<   t        j
                  |j                  d<   d|j                  d<   t        d      D ]B  }||j                  |	      z  d
z
  }|j                  |	      }t        j                  ||       D y )Nr   (   r   )r   r   )r   r   <   )r      r   )axisr   )r   r   arangeastypefloat64r   iatrangeshiftr   r   assert_frame_equal)r   pnlr!   expectedresults        r   test_pct_change_numericz.TestDataFramePctChange.test_pct_change_numeric   s    YYq"b!299QB#71b"9MN

&
 	 !H 	4DSYYDY11A5H^^^.F!!&(3	4r   c                 "   |j                         }t        j                  |||j                  d      z  dz
         |j                  d      }|j	                         }t        j                  |||j                  d      z  dz
         |j                         }t        j                  |||j                  d      z  dz
         |j                  d      }t        j                  |||j                  d      z  dz
  j                  |             y )Nr   r   5Dfreq)r   r   r(   r'   ffillreindex_like)r   datetime_framersfilleds       r   test_pct_changez&TestDataFramePctChange.test_pct_change(   s    &&(
b.>3G3G3J"JQ"NO&&q)%%'
b&6<<?":Q">?&&(
b.>3G3G3J"JQ"NO&&D&1
n222==AOO	
r   c                 8   t        ddt        j                  ddg      }t        ||d      }|j	                         }t        t        j                  dt        j                  t        j                  dg      }t        ||d      }t        j                  ||       y )N      ?r   g      @g      @)ab      ?g?)r   r   r   r   r   r   r(   )r   sdfchgr*   edfs         r   test_pct_change_shift_over_nasz5TestDataFramePctChange.test_pct_change_shift_over_nas;   su    Cbffc3/0QQ'(mmo2663<=hX67
c3'r   zfreq, periods))5B   )3Br    )14B   c                 *   |j                  |      }|j                  |      }t        j                  ||       t        |j                  |j
                        }|j                  |      }|j                  |      }t        j                  ||       y )Nr/   )indexcolumns)r   r   r(   r   rG   rH   )r   r3   r0   r   rs_freq
rs_periodsempty_tss          r   test_pct_change_periods_freqz3TestDataFramePctChange.test_pct_change_periods_freqE   s     !+++6#..w7

gz2>#7#7AWAWX%%4%0((1

gz2r   N)__name__
__module____qualname__pytestmarkparametrizer   r   r   r,   r6   r@   rL    r   r   r   r      s    [[AsBFFBFFCD"&&"&&$dBFFBFFBFFKL	
334
&( [[	
33r   r   c            	         t        t        j                  dddddgddt        j                  dddgddd	gdz  
      } | j                         }t        j                  t        j                  t        j                  t        j                  ddg}t        t        j                  t        j                  ddddg|ddd	gdz  
      }t        j                  ||       y )Nr   r   r    	      r   r   r   r9   r:   )rG   g       @r8   r;   )r   r   r   r   infr   r(   )datar+   second_columnr*   s       r   'test_pct_change_with_duplicated_indicesr[   ^   s    VVQ1a$!Q1b)AB3PS*WX.D __FVVRVVRVVRVVS#>MVVRVVS#sC0]CCj1nH &(+r   c                     t        dd gddgddgddgddgg      } | j                         }t        t        j                  ddddgt        j                  t        j                  dddgd	      }t	        j
                  ||       y )
Nr   r   r    r   rB   r;   gUUUUUU?g      ?rW   )r   r   r   r   r   r(   )r=   r+   r*   s      r   test_pct_change_none_beginningr]   n   s    	IFFFF	

B ]]_FVVQUD)rvvrvvq#u.MNH &(+r   )numpyr   rP   pandasr   r   pandas._testing_testingr   r   r[   r]   rS   r   r   <module>rb      s,      P3 P3f, ,r   