
    Owg                         d dl Zd dlZd dlmZmZ d dlmZ  G d d      Z	ej                  j                  dg d      d        Zd Zy)	    N)	DataFrameSeriesc                      e Zd Zej                  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        Zd Z	d Z
d Zej                  j                  dg d      d        Zy)TestDataFramePctChangez periods, fill_method, limit, exp   ffillN      ?r   bfillg      g333333c                    t         j                  t         j                  ddddt         j                  t         j                  g} ||      }dt        |      j                   d}t	        j
                  t        |      5  |j                  |||      }	d d d        t	        j                  	 ||             y # 1 sw Y   &xY w)	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ress
             a/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_pct_change.pytest_pct_change_with_nasz/TestDataFramePctChange.test_pct_change_with_nas   s      1aRVVRVV<d# SCy!!""<> 	 ''SA 	X..kQV.WC	X
_S12	X 	Xs   ?B99C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<   d}t        d	      D ]  }|j                  |
      |j                  |
      j                  |
      z  dz
  }t        j                  t        |      5  |j                  |d      }d d d        t        j                  |        y # 1 sw Y   "xY w)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results         r%   test_pct_change_numericz.TestDataFramePctChange.test_pct_change_numeric'   s   YYq"b!299QB#71b"9MN

&
 	 2 	
 !H 	4Dyydy+ciiTi.B.H.Hd.H.SSVWWH++ME FTuEF!!&(3	4F Fs   EE	c                    d}|j                  d       }t        j                  |||j                  d      z  dz
         |j                  d      }|j	                         }t        j                  |||j                  d      z  dz
         t        j
                  t        |      5  |j                  dd      }d d d        |j                  d      }t        j                  |||j                  d      z  dz
         |j                  d	
      }|j	                         }t        j                  |||j                  d	
      z  dz
  j                  |             y # 1 sw Y   xY w)Nr+   r   r   r   r   r
   r   r   )r   5D)freq)	r   r   r4   r3   r   r   r   r
   reindex_like)r   datetime_framer#   rsfilleds        r%   test_pct_changez&TestDataFramePctChange.test_pct_change<   sM   2 	
 &&4&8
b.>3G3G3J"JQ"NO&&q)%%'
b&6<<?":Q">?''SA 	I**wa*HB	I%%A%.
b&6<<?":Q">?&&D&1%%'
&,,D,11A5CCFK	
	I 	Is   'EE'c                 d   t        ddt        j                  ddg      }t        ||d      }d}t	        j
                  t        |      5  |j                         }d d d        t        t        j                  dd	d
dg      }t        ||d      }t	        j                  |       y # 1 sw Y   LxY w)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   r4   )r   sdfr#   chgr6   edfs          r%   test_pct_change_shift_over_nasz5TestDataFramePctChange.test_pct_change_shift_over_nasT   s    Cbffc3/0QQ'(S''SA 	"--/C	" 2663]C@AhX67
c3'	" 	"s   
B&&B/z!freq, periods, fill_method, limit))5B   NN)3Br*   NN)rP   r*   r
   N)7B   r-   r   )rQ   rR   r
   r*   )14B   NNc                    d}t        j                  t        |      5  |j                  |||      }d d d        t        j                  t        |      5  |j                  |||      }d d d        t        j                         t        |j                  |j                        }	t        j                  t        |      5  |	j                  |||      }d d d        t        j                  t        |      5  |	j                  |||      }d d d        t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   DxY w)Nr+   r   )r=   r   r   r;   )indexcolumns)r   r   r   r   r4   r   rV   rW   )
r   r?   r=   r   r   r   r#   rs_freq
rs_periodsempty_tss
             r%   test_pct_change_periods_freqz3TestDataFramePctChange.test_pct_change_periods_freqa   sR   2 	 ''SA 	$//{% 0 G	 ''SA 	'22[ 3 J	 	gz2>#7#7AWAWX''SA 	)){% * G	 ''SA 	!,,[ - J	 	gz2'	 		 		 		 	s/   D1D=E	=E1D:=E	EE)r   
__module____qualname__pytestmarkparametrizer   r   r&   r8   rB   rM   r[        r%   r   r      s   [[*1c1aHIRVVRVVRVVQ3266JK1aCHIRVVRVVQ1c266266JK$tT1a PQ!bffbffdD$266266RS$AtT4 PQ!bffatT266266266RS		
334*
0( [[+	

3
3rb   r   r   )r-   r   Nc           	      z   t        t        j                  dddddgddt        j                  dddgddd	gdz  
      }| d nt        }d}t	        j
                  ||      5  |j                  |       }d d d        | At        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z  
      }t	        j                  |       y # 1 sw Y   xY w)Nr   r   r*   	      r   r   r   rE   rF   )rV   r+   r   r:   g       @rD   rH   rG   )	r   r   r   r   r   r   r   infr4   )r   datawarnr#   r7   second_columnr6   s          r%   'test_pct_change_with_duplicated_indicesrk      s    VVQ1a$!Q1b)AB3PS*WX.D &4MD	.  
	#	#D	4 :[9: cBc3<VVRVVS#sC0]CCj1nH &(+: :s   !D11D: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   rO   rG   gUUUUUU?g      ?rf   )r   r   r   r   r   r4   )rJ   r7   r6   s      r%   )test_pct_change_none_beginning_no_warningrm      s    	IFFFF	

B ]]_FVVQUD)rvvrvvq#u.MNH &(+rb   )numpyr   r^   pandasr   r   pandas._testing_testingr   r   r_   r`   rk   rm   ra   rb   r%   <module>rr      sN      }3 }3@ (>?, @,2,rb   