
    bMhSl                     z    d dl Zd dlZd dlmc mZ d dlZd dlm	Z	m
Z
mZmZmZmZmZ d dlmZ  G d d          ZdS )    N)CategoricalIndex	DataFrameIndexNaTSeries
date_rangeoffsetsc                   
   e Zd Zd Zd Zej                            d ej	        d          g f ej
        d          ej        dgfg          d             Zd	 Zej                            d
 e ej        d          g           eddd           e ed           edd                    g          ej                            dg d          d                         Zd Zd Zej                            dddg          d             Zej                            dg d          d             Zd Zej                            d g d!          d"             Zd# Zd$ Zd% Zd& Zd' Zd( Zd) Zd* Z d+ Z!d, Z"d- Z#d. Z$d/ Z%d0 Z&d1 Z'e(j)        d2             Z*d3 Z+d4 Z,d5 Z-d6 Z.d7 Z/ej                            d8 ej0        d9ej        1                    d:;          <          d=g          ej                            d> ed?d@           ed?d@dAB           e2j3        d?d@dC           e2j4        dDd@dC           e2j5        dEdFd@           ej0         e2j6        dGd@gdHI          ej        1                    d:;          <           ej0         e2j6        dGd@gdJI          ej        1                    d:;          <          gdK L          dM                         Z7dN Z8dO Z9dP Z:dQ Z;dR Z<dS Z=dT Z>dU Z?dVS )WTestDataFrameShiftc                    t           j                            d                              d          }t	          |          }|                    ddd          }|j                            dd          j        }t          j        ||           |dg         	                    d          }|                    ddd          }t	          dgd	z  d
          }t          j        ||           d S )N            i90  )axisperiods
fill_value)r   r   r   Float64r   dtype)
nprandomdefault_rngstandard_normalr   shiftTtmassert_frame_equalastype)selfdatadfresexpecteddf2res2	expected2s           e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/methods/test_shift.py0test_shift_axis1_with_valid_fill_value_one_arrayzCTestDataFrameShift.test_shift_axis1_with_valid_fill_value_one_array   s     y$$Q''77??t__hhAqUh;;4::aE:::<
c8,,, !gnnY''yyauy==ugk;;;	
dI.....    c                     |t           j                            d                              d          t	          ddd                    }d}t          j        t          |          5  |                    d	d	d
           d d d            n# 1 swxY w Y   |t          u rft	          dd	d          |_
        t          j        t          |          5  |                    d	d	d	d           d d d            d S # 1 swxY w Y   d S d S )Nr   r   1/1/2000hr   freqindexMPassing a 'freq' together with a 'fill_value' silently ignores the fill_valuematchr   r   r0   )r   r   r0   )r   r   r   r   r   r   assert_produces_warningFutureWarningr   r   columns)r!   frame_or_seriesobjmsgs       r)   (test_shift_deprecate_freq_and_fill_valuez;TestDataFrameShift.test_shift_deprecate_freq_and_fill_value#   s   oI!!!$$44Q77Z===
 
 
 	 'SAAA 	1 	1IIaACI000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 i''$ZEEECK+MEEE = =		!!	<<<= = = = = = = = = = = = = = = = = = ('s$   +BBBC==DDzinput_data, output_data)r   )shape)r         ?c                 2   |                     d            ||                              d          }|t          ur7 ||t          t	          |                    t          d          d          }n ||d          }t          j        ||           d S )NF)writer   float64)r2   r9   r   r   )setflagsr   r   rangelenr   assert_equal)r!   
input_dataoutput_datar:   resultr%   s         r)   test_shift_non_writable_arrayz0TestDataFrameShift.test_shift_non_writable_array6   s     	%((( ,,22155&((&C,,--a	  HH '{)DDDH
)))))r+   c                     |t           j                            d                              d          t	          ddd                    }|                    dd	          }|j                            dd	          }t          j        |j        |           |                    dd
	          }|j        t          j
        d          z   }t          j        |j        |           d S )Nr   r   r-   r.   r/   r1   r   5minr0   4h   )r   r   r   r   r   r   r2   r   assert_index_equalr	   Hour)r!   r:   tsrI   	exp_indexs        r)   test_shift_mismatched_freqz-TestDataFrameShift.test_shift_mismatched_freqL   s    _I!!!$$44Q77Z===
 
 

 !&))HNN16N22	
flI666 !$''Hw|A.	
flI66666r+   r;   r   z1/1/2011   r.   r/   2017r   r1   
shift_sizer   r   r   c                 r    |t           ur|                                }|                    |          |usJ d S N)r   to_framer   )r!   r;   rX   r:   s       r)   test_shift_always_copyz)TestDataFrameShift.test_shift_always_copy[   s?     &((,,..Cyy$$C//////r+   c                    t          t          d                    }t          j        t          d          5  |                    dg            d d d            n# 1 swxY w Y   |                                }t          j        t          d          5  |                    dt          j        d                     d d d            n# 1 swxY w Y   |	                    t                    }|                    di           }|d         i k    sJ |                                }|                    di           }|j        d         i k    sJ d S )Nr   zfill_value must be a scalarr4   r   r   r   )r   r   )r   rD   pytestraises
ValueErrorr   r\   r   aranger    objectiloc)r!   serr#   obj_serrI   obj_dfs         r)   !test_shift_object_non_scalar_fillz4TestDataFrameShift.test_shift_object_non_scalar_fillj   s   U1XX]:-JKKK 	( 	(IIaBI'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( \\^^]:-JKKK 	1 	1HHQ29Q<<H000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 **V$$qR00ayB!!##aB//{4 B&&&&&&s#   AA #A *CCCc                    t          j        ||                              t                    }|                    d          }|                    t
                                        d          }t          j        ||           d S )Nr   )r   get_objr    intr   floatrF   )r!   datetime_framer:   rR   shiftedr%   s         r)   test_shift_intz!TestDataFrameShift.test_shift_int|   sg    Z88??DD((1++99U##))!,,
*****r+   r   int32int64c                    t          dd          }t          j        d|          } |||          }|d         }|                    |          } |t          j        dddd	g|          }t          j        ||           d S )
Nz
2000-01-01r   rW   r   r1   r   r   r   r   )r   r   rc   r   nanr   rF   )	r!   r:   r   r2   arrs1prI   r%   s	            r)   test_shift_32bit_takez(TestDataFrameShift.test_shift_32bit_take   s     <333i'''_S...F!$$"?BFAq!Q#7uEEE
)))))r+   r   )r   r   r   rO   c                     |t          |          t          d|d                    }|                    dd          } |t          |          t          d|d                    }t          j        ||           d S )Nz2016-1-1 00:00:00r.   r/   r1   r   2hz2016-1-1 02:00:00)rD   r   r   r   rF   )r!   r   r:   r;   rI   r%   s         r)   test_shift_preserve_freqstrz.TestDataFrameShift.test_shift_preserve_freqstr   s     o'NN0'LLL
 
 

 1d##"?'NN0'LLL
 
 
 	)))))r+   c                    t          dddd          } ||          }|                    d          }t          j        ||           t          j        |          dk    sJ |                    d          }t
          g|                    t                    j        	                                d d	         z   } ||          }t          j        ||           t          j        |          dk    sJ |                    d
          }|                    t                    j        	                                dd          t
          t
          gz   } ||          }t          j        ||           t          j        |          dk    sJ d S )N
2016-11-06r.   
   
US/Easternr0   r   tzr   datetime64[ns, US/Eastern]r   	   r   )
r   r   r   rF   	get_dtyper   r    rd   valuestolist)r!   r:   datesr;   r$   exp_valsexps          r)   test_shift_dstz!TestDataFrameShift.test_shift_dst   sd   <c2,OOOoe$$iill
S!!!|C  $@@@@@iill55<<//6==??CCoh''
S!!!|C  $@@@@@iimm<<''.5577;sCjHoh''
S!!!|C  $@@@@@@@r+   ex)r~   i   ic                     t          dddd          } ||          }|                    |          } |t          gdz  d          }t          j        ||           t          j        |          dk    sJ d S )Nr}   r.   r~   r   r   r   r   )r   r   r   r   rF   r   )r!   r:   r   r   r;   r$   r   s          r)   test_shift_dst_beyondz(TestDataFrameShift.test_shift_dst_beyond   s     <c2,OOOoe$$iimmosebj0LMMM
S!!!|C  $@@@@@@@r+   c                     t          j        ||          }|                    d          }t          j        ||           d S Nr   )r   rk   r   rF   )r!   rn   r:   r;   	unshifteds        r)   test_shift_by_zeroz%TestDataFrameShift.test_shift_by_zero   s:    j99IIaLL	
	3'''''r+   c                 *   |d         }|                     d          }t          j        |j        |j                   |                     d          }t          j        |d         |           |                     d          }t          j        |j        |j                   |                     d          }t          j        |d         |           |                     d                               d          }t          j        |                                j        |j        d d                    |                     d                               d          }t          j        |                                j        |j        d d                    d S )NAr   )r   r   rP   r2   assert_series_equalassert_numpy_array_equaldropnar   )r!   rn   rf   ro   shifted_serr   unshifted_sers          r)   
test_shiftzTestDataFrameShift.test_shift   sU   S! &&q))
gm^-ABBBiill
ws|[999 &&r**
gm^-ABBBiimm
ws|[999"((++11"55	
#%~'<SbS'A	
 	
 	
 		!**2..
#M$8$8$:$:$A3:crc?SSSSSr+   c                    t          j        ||          }t          j                    }|                    d|          }t          |          t          |          k    sJ |                    d|          }t          j        ||           |                    dd          }t          j        ||           |                    d|          }t          j        ||           |j        d         }||dz  z   }	|t          u r?t          j	        |
                    |          |
                    |	          d           d S t          j        |j        |         |j        |	                    d S )Nr   rM   r   Br   F)check_names)r   rk   r	   BDayr   rE   rF   r2   r   r   xsassert_almost_equalat)
r!   rn   r:   r;   offsetro   r   shifted2d	shifted_ds
             r)   test_shift_by_offsetz'TestDataFrameShift.test_shift_by_offset   sC   j99))AF)++7||s3xx''''MM"6M22	
	3'''99QS9))
***IIafI--	
	3'''IaL
N	i''"366!99gjj.C.CQVWWWWWW"36!9gj.CDDDDDr+   c                    t          t          j        dt                    t	          j        dd                    }t          j        ||          }|                    d          }|                    d          }t          j	        |j
        |j
                   t          j	        |j
        |j
                   |t           u rPt          j        |j        d d df                                         j        |j        d ddf         j                   n9t          j        |                                j        |j        d d                    |                    dd	          }|                    dt          j                              }t          j        ||           t          j        ||                    dd	                     d
}t%          j        t(          |          5  |                    d           d d d            n# 1 swxY w Y   |                    dd	          }t          j        ||           |                    dt          j                              }	t          j        |	|           d S )NrO   r   
2020-01-01rW   r1   r   r   Dzdoes not match PeriodIndex freqr4   WrM   )r   r   rc   rm   pdperiod_ranger   rk   r   rP   r2   r   re   r   r   r	   DayrF   r`   ra   rb   )
r!   r:   psro   r   r   shifted3r<   shifted4shifted5s
             r)   test_shift_with_periodindexz.TestDataFrameShift.test_shift_with_periodindex   s_   Iau%%%R_\ST-U-U-U
 
 
 ZO,,((1++MM"%%	
gmRX666
iorx888i'''qqq!t$++--4bgcrc1fo6L    '	(8(8(:(:(A29SbS>RRR88As##88Aw{}}--
(+++
HNN2s33444/]:S111 	 	HH#H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 88AC8((
(+++88AGKMM822
(+++++s   &H		HHc                 p   t          t          j                            d                              d                    }t	          j        t          t          j        |j        dg          |j        d d ddf         gdd          }|	                    dd	          }t          j        ||           d S )
Nr   r~   r   r   r2   r9   r   Tr   ignore_indexr   r   r   r   r   r   r   concatrt   r2   re   r   r   r   r!   r#   r%   rI   s       r)   test_shift_other_axisz(TestDataFrameShift.test_shift_other_axis  s     ry,,Q//66w??@@9rvRXs;;;RWQQQ"W=MN
 
 

 !!$$
fh/////r+   c                 p   t          t          j                            d                              d                    }t	          j        t          t          j        |j        dg          |j        d d ddf         gdd          }|	                    dd	
          }t          j        ||           d S )Nr   r   r   r   r   Tr   r   r9   r   r   r   s       r)   test_shift_named_axisz(TestDataFrameShift.test_shift_named_axis   s    ry,,Q//66w??@@9rvRXs;;;RWQQQ"W=MN
 
 

 !),,
fh/////r+   c                    |j         }t          j                    }|                    d|d          }t	          |          t	          |          k    sJ |                    d|d          }t          j        ||           d S )Nr   r   )r0   r   r   )r   r	   r   r   rE   r   rF   )r!   rn   r;   r   ro   r   s         r)   test_shift_other_axis_with_freqz2TestDataFrameShift.test_shift_other_axis_with_freq+  sz     ))AF)337||s3xx''''MM"6M::	
	3'''''r+   c                    t          ddgddgd          }|                    d          }t          t          j        t          j        t          j        gddggt
                    ddg          }t          j        ||           d S )	NTF)highlowr   r   r   r   r9   )r   r   r   arrayrt   rd   r   r   )r!   r#   rsxps       r)   test_shift_boolz"TestDataFrameShift.test_shift_bool5  s    uuenEEFFXXa[[Hrvrv&u6fEEEUO
 
 
 	b"%%%%%r+   c                     |g dd          }|                     d                               d          }t          j        |j        d d         |                                           d } ||          }|                     d          }t          j        |j        |j                   t          j         ||          j	        d d         dk              sJ t          j        |j	        d d          ||          j	        dd          k              sJ |                     d          }t          j        |j        |j                   t          j         ||          j	        dd          dk              sJ t          j        |j	        dd           ||          j	        d d         k              sJ t          j        |j
         ||          j
                   t          j        |j
         ||          j
                   d S )	Nabcr   categoryr   r   r   c                 &    | j         j        d         S r   )_mgrarrays)ndframes    r)   get_cat_valueszBTestDataFrameShift.test_shift_categorical1.<locals>.get_cat_valuesE  s     <&q))r+   r   r   )r   r   rF   re   r   rP   r2   r   allcodes
categories)r!   r:   r;   rtr   catsp1sn2s           r)   test_shift_categorical1z*TestDataFrameShift.test_shift_categorical1>  s   o222*EEEYYq\\##
"ryy{{333	* 	* 	*
 nS!!iill
ci333vnnS))/3r9:::::vcins(;(;(A!""(EEFFFFFiimm
ci333vnnS))/4:;;;;;vcim~~c':':'@"'EEFFFFF
cnnnS.A.A.LMMM
cnnnS.A.A.LMMMMMr+   c                 :   t          g dd          }t          g dd          }t          ||d          }|                    d          }t          |                    d          |                    d          d          }t          j        ||           d S )Nr   r   r   r   r   )r   r   C)onetwor   )r   r   r   r   r   )r!   rv   s2r#   r   r   s         r)   test_shift_categoricalz)TestDataFrameShift.test_shift_categoricalY  s    OOO:666OOO:666r"--..XXa[[rxx{{288A;;??@@
b"%%%%%r+   c                 ^    |g dd          }|                     dd          } |t          j        g dg dd	                    }t          j        ||           d
}t          j        t          |          5  |                     dd           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r_   )r   r   r   r   F)r   orderedz9Cannot setitem on a Categorical with a new category \(f\)r4   f)r   r   Categoricalr   rF   r`   ra   	TypeError)r!   r:   rR   r$   r%   r<   s         r)   !test_shift_categorical_fill_valuez4TestDataFrameShift.test_shift_categorical_fill_valueb  s   _111DDDhhqSh))"?N$$$1E1E1Eu  
 

 	X&&& K]9C000 	( 	(HHQ3H'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   =B""B&)B&c                    t          ddd          } |g d|          } |g d|          }|                    dd	
          }t          j        ||            |g d|          }|                    dd	
          }t          j        ||            |g d          }|                    dd
          }t          j        |          t          j        |          k    sJ  |g d|          } |g d|          }|                    dd
          }t          j        ||            |g d|          }|                    dd
          }t          j        ||           d S )Nr-   r   r.   r/   )r?          @      @      @      @r1   )        r?   r   r   r   r   r   r_   )r   r   r?   r   r   r   r   r   r   r   )r   r   r   rO   r   )r   r   r   r   rO   )r   r   r   r   r   )r   r   r   rF   r   )r!   r:   dtirR   r   rI   r$   r;   s           r)   test_shift_fill_valuez(TestDataFrameShift.test_shift_fill_valueq  s   QS999_666cBBBo777sCCC!,,
$$$o777sCCC!,,
$$$_YYY''hhqQh''|C  BL$4$44444 ooooS999ooooS9991++
$$$ooooS9991++
$$$$$r+   c                 |    t          dg i          }|                    d          }t          j        ||           d S )Nfoor   r   r   r   r   )r!   r#   r   s      r)   test_shift_emptyz#TestDataFrameShift.test_shift_empty  s;    r{##XXb\\
b"%%%%%r+   c           	      $   t          t          d                    dgdz  g dg}t          j                            d                              d          }g }|D ]}t          |                                |          }t          d          D ]5}|j        d d |f         	                    |dz             |j        d d |f<   6t          d          |_
        |                    |           |d                                                                         }t          j        |t!          t          dd          d	
                     t          j        |d         |d                    t          j        |d         |d                    d S )Nr   r   )r   r   r   r   r   r   )r   r   r   r      rr   r   )listrD   r   r   r   r   r   copyre   r   r9   appendisnasumr   r   r   r   )r!   column_listsr"   ro   r9   r#   snullss           r)   test_shift_duplicate_columnsz/TestDataFrameShift.test_shift_duplicate_columns  sj    U1XXaAy$$Q''77@@# 	 	G499;;888B1XX ; ; "1 3 3AE : :1qBJNN2 
!!%%''
ufU1a[[&H&H&HIII 	gaj'!*555
gaj'!*55555r+   c                    t          t          j                            d                              dd                    }t          t          j                            d                              dd                    }t          j        ||gd          }|st          |j        j	                  dk    sJ |
                    dd          }|                    g dd          }|                    d	           }t          j        |j        d d d df<   |j        |_        t!          j        ||           t          j        ||gd          }|st          |j        j	                  dk    sJ |
                    d
d          }|                    g dd          }|                    d           }t          j        |j        d d d
d f<   |j        |_        t!          j        ||           d S )Nr     r   )sizer   r   r   r   )r   r   r   r   r   c                     |                      t          | j        d                   d                              ddd                               | j        d          S )Nr   r   rm   )r   r   set_axisrD   r>   r    r9   r#   s    r)   <lambda>zETestDataFrameShift.test_shift_axis1_multiple_blocks.<locals>.<lambda>  O    r{{5!#5#5A{>>VG,,--XbjqX)) r+   r   )r   r   rO   r   r   c                     |                      t          | j        d                   d                              ddd                               | j        d          S )Nr   r   rm   )r   rO   r	  r  s    r)   r  zETestDataFrameShift.test_shift_axis1_multiple_blocks.<locals>.<lambda>  r  r+   )r   r   r   r   integersr   r   rE   r   blocksr   takepipert   re   r9   r   r   )r!   using_array_managerdf1r&   df3rI   r%   s          r)    test_shift_axis1_multiple_blocksz3TestDataFrameShift.test_shift_axis1_multiple_blocks  s   	--a0099$V9LLMM	--a0099$V9LLMMic
+++" 	-sx''1,,,,11%%88---A866 ==* *
 

  "vaaa!e;
fh/// ic
+++" 	-sx''1,,,,2A&&88---A866 ==* *
 

 !#aaaf;
fh/////r+   c                 h   t           j                            d          }t          |                    ddt
                              }t          |                    ddt
                              }t          j        |j        d dddf         |j        d dd d f         gd	          }|	                    ddt          j
        d
                    }t          |j        j                  dk    sJ |                    g dd	          }t          j
        d
          |j        d d d df<   |j        |_        t!          j        ||           t          j        |j        d dddf         |j        d dd d f         gd	          }|	                    ddt          j
        d
                    }t          |j        j                  dk    sJ |                    g dd	          }t          j
        d
          |j        d d dd f<   |j        |_        t!          j        ||           d S )Nr   r  r   )r  r   r  rO   r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r  rl   r   r   re   r   int_rE   r   r  r  r9   r   r   )r!   rngr  r&   r  rI   r%   s          r)   .test_shift_axis1_multiple_blocks_with_int_fillzATestDataFrameShift.test_shift_axis1_multiple_blocks_with_int_fill  s    i##A&&TcBBCCTcBBCCi"1"ac'*CHRaRUO<1EEE11<<38?##q((((88NNN833!wqzzaaa!e;
fh/// i"1"ac'*CHRaRUO<1EEE2A"'!**==38?##q((((88NNN833 "

aaaf;
fh/////r+   c                    t          t          d          t          j        dd                    }t	          j        ||          }|                    dd          }|                    dd          }t	          j        ||           |                    d	          }t	          j        ||           |                    t          j	                              }t	          j        ||           d S )
NrO   r   rW   r1   r   inferrM   r   r   )
r   rD   r   r   r   rk   r   rF   r	   r   )r!   r:   r   ro   r   r   r   s          r)   'test_period_index_frame_shift_with_freqz:TestDataFrameShift.test_period_index_frame_shift_with_freq  s    uQxxr|Q'O'O'OPPPZO,,((17(++MM"7M33	
	2&&&888%%
***888//
*****r+   c                    t          j        ||          }|                    dd          }|                    dd          }t          j        ||           |                    |j        j                  }t          j        ||           t          |j        t          t          j
        |j                            |j                  }t          j        ||          }|                    dd          }|                    dd          }|j                            d           |_        t          j        ||           |                    dd          }t          j        ||           d S )Nr   r  rM   r   r   )r   rk   r   rF   r2   r0   r   r   r   r   asarrayr9   
_with_freq)	r!   rn   r:   dtobjro   r   r   inferred_tsr%   s	            r)   #test_datetime_frame_shift_with_freqz6TestDataFrameShift.test_datetime_frame_shift_with_freq  sG   
>?;;++ag+..MM"7M33	
y)));;EK$4;55
***!"*^12233"*
 
 

 jo>>##AG#44;;qw;//!22488
***MM"7M33	
	;/////r+   c                 ,   t          t          d          t          j        dd                    }t	          j        ||          }d}t          j        t          |          5  |	                    d           d d d            d S # 1 swxY w Y   d S )	NrO   r   rW   r1   z.Given freq M does not match PeriodIndex freq Dr4   MrM   )
r   rD   r   r   r   rk   r`   ra   rb   r   )r!   r:   r   r<   s       r)   -test_period_index_frame_shift_with_freq_errorz@TestDataFrameShift.test_period_index_frame_shift_with_freq_error  s    uQxxr|Q'O'O'OPPPZO,,>]:S111 	 	HH#H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   %B		BBc                     t          j        ||          }|j        g d         }d}t          j        t
          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )N)r   r      z6Freq was not set in the index hence cannot be inferredr4   r  rM   )r   rk   re   r`   ra   rb   r   )r!   rn   r:   r"  no_freqr<   s         r)   )test_datetime_frame_shift_with_freq_errorz<TestDataFrameShift.test_datetime_frame_shift_with_freq_error  s     
>?;;*YYY'F]:S111 	( 	(MMwM'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A&&A*-A*c                 ^   t          t          j        d          t          j        d          g          }t          j        t
          d          5  |                    dd           d d d            n# 1 swxY w Y   |                                }t          j        t
          d          5  |                    dd           d d d            n# 1 swxY w Y   t          ||d          }|	                                 |                    ddd	          }t          ddg|d
         d          }t          j        ||           t          d
|i          }||d<   t          |j        j                  dk    sJ |                    ddd	          }t          j        ||           d S )Nr   z
2020-01-02zvalue should be ar4   r   r   r_   r   r   r  r   r   r   )r   r   	Timestampr`   ra   r   r   r\   r   _consolidate_inplacer   r   rE   r   r   )r!   rf   r#   r&   rI   r%   r  s          r)   )test_shift_dt64values_int_fill_deprecatedz<TestDataFrameShift.test_shift_dt64values_int_fill_deprecated%  s   bl<00",|2L2LMNN]9,?@@@ 	' 	'IIaAI&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' \\^^]9,?@@@ 	& 	&HHQ1H%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& c,,--  """1133Aq6C99::
fh/// c
##C38?##q((((1133
fh/////s$   A55A9<A9/CCCas_catTz1_can_hold_element incorrectly always returns True)reason)marksFvalsr   r   z
US/Pacific)r   r   r   z	2020 Daysr   r   r   Int64r   Float32c                 *    t          | j                  S r[   )strr   xs    r)   r  zTestDataFrameShift.<lambda>`  s    c!'ll r+   )idsc                    t          |          }|r|                    d          }t          d|i          }|                    ddd          }t          dddgi          }t	          j        ||           t          ||d          }|                                 |                    ddd          }t          |d         ddgd          }t	          j        ||           t          d|i          }||d<   t          |j        j	                  d	k    sJ |                    ddd          }t	          j        ||           d S )
Nr   r   r   r   r   r  r-  r   r   )
r   r    r   r   r   r   r/  rE   r   r   )	r!   r4  r1  rf   r#   rI   r%   r&   r  s	            r)   (test_shift_dt64values_axis1_invalid_fillz;TestDataFrameShift.test_shift_dt64values_axis1_invalid_fill?  sS   J Tll 	)**Z((CSz"""177cE5>233
fh/// c,,--  """2A%883s85%.AABB
fh/// c
##C38?##q((((2A%88
fh/////r+   c                 &   t          g d          }t          ddgddgddgd|d d         |	          }|                    d
          }t          t          j        t          j        gddgddgd|d d         |	          }t          j        ||           |                    dd
          }t          t          j        t          j        gt          j        t          j        gddgd|d d         |	          }t          j        ||           d S )Nr   r   r   r   rO   r   r   r   r   r   )r   r   r   r   rt   r   r   )r!   cir#   rI   r%   s        r)   $test_shift_axis1_categorical_columnsz7TestDataFrameShift.test_shift_axis1_categorical_columns|  s,   ooo..a&1vQF332crc7B
 
 
 q!!626"!Qq!f==RWVX
 
 
 	fh/// !!$$626""&"&)9AGGSbS'
 
 

 	fh/////r+   c                 V   t          t          j                            d                              d                    }|                    ddd           }|t          j        z  }t          j        ||           |                    ddd           }t          j        ||           d S )Nr   r   r   r   r  i)r   r   r   r   r   rt   r   r   )r!   r#   ro   r%   r   s        r)   test_shift_axis1_many_periodsz0TestDataFrameShift.test_shift_axis1_many_periods  s    ry,,Q//66v>>??((11(66;
gx00088BQ4888
h11111r+   c                     t          dg dit          dd                    }|                    d          }t          dg dit          d	d	d
                    }t          j        ||           d S )Nr:  r   2000r   rW   r1   1MSrM   z
02/01/2000)startendr   )r   r   r   r   r   )r!   r#   ro   r%   s       r)   test_shift_with_offsets_freqz/TestDataFrameShift.test_shift_with_offsets_freq  s    YYY'z&!/L/L/LMMM(((&&)))<\1MMM
 
 
 	gx00000r+   c           
      V   g dg dd}g d}t          |          }|                    |          }t          g dg dt          j        ddgt          j        ddgt          j        t          j        dgt          j        t          j        dgd	          }t	          j        ||           d S )
Nr   )rO   r   r   r   r   rY   r?   r   r   r   )a_0b_0a_1b_1a_2b_2)r   r   r   rt   r   r   )r!   r"   shiftsr#   ro   r%   s         r)   ,test_shift_with_iterable_basic_functionalityz?TestDataFrameShift.test_shift_with_iterable_basic_functionality  s    YYYYY//t__((6"" yy yyS)S),, 	
 	
 	h00000r+   c                     dg di}g d}t          |          }|d         }t          j        |                    |          |                    |                     d S )Nr   r   rY   )r   r   r   r   )r!   r"   rQ  r#   r  s        r)   test_shift_with_iterable_seriesz2TestDataFrameShift.test_shift_with_iterable_series  s\    YYYt__sG
aggfoorxx/?/?@@@@@r+   c                    t          t          j                            d                              d          t          ddd                    }t          j        |                    dgd          	                    d	 
          |                    dd                     t          j        |                    dgd          	                    d 
          |                    dd                     d}t          j
        t          |          5  |                    ddgdd           d d d            d S # 1 swxY w Y   d S )Nr   r   r-   r.   r/   r1   r   r_   c                 ,    t          | d                   S r   rl   r9  s    r)   r  zQTestDataFrameShift.test_shift_with_iterable_freq_and_fill_value.<locals>.<lambda>  s    QqT r+   r   rM   c                 ,    t          | d                   S r   rW  r9  s    r)   r  zQTestDataFrameShift.test_shift_with_iterable_freq_and_fill_value.<locals>.<lambda>  s    S1YY r+   r3   r4   r6   )r   r   r   r   r   r   r   r   r   renamer7   r8   )r!   r#   r<   s      r)   ,test_shift_with_iterable_freq_and_fill_valuez?TestDataFrameShift.test_shift_with_iterable_freq_and_fill_value  s   I!!!$$44Q77Z===
 
 

 	HHaSQH''..7J7J.KKHHQ1H%%	
 	
 	
 	HHaSsH##**3F3F*GGHHQSH!!	
 	
 	
 	 'SAAA 	5 	5HHaVH444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   EEEc                 @   ddgddgd}ddg}t          |          }|dg                             |d	          }t          ddgt          j        d
gd          }t	          j        ||           d}t          j        t          |          5  |                    |d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    dg           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    g            d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    dd	           d d d            d S # 1 swxY w Y   d S )Nr   r   rO   r   rJ  r   r   _suffix)suffixr?   )
a_suffix_0
a_suffix_1z:If `periods` contains multiple shifts, `axis` cannot be 1.r4   r   z0Periods must be integer, but s is <class 'str'>.r  z0If `periods` is an iterable, it cannot be empty.z/Cannot specify `suffix` if `periods` is an int.fails)
r   r   r   rt   r   r   r`   ra   rb   r   )r!   r"   rQ  r#   ro   r%   r<   s          r)   .test_shift_with_iterable_check_other_argumentszATestDataFrameShift.test_shift_with_iterable_check_other_arguments  s   V1a&))Qt__ cU)//&/;;QF263-PPQQ
gx000 K]:S111 	% 	%HHV!H$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% A]9C000 	 	HHcUOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 A]:S111 	 	HHRLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 @]:S111 	( 	(HHQwH'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(sH   B11B58B5C<<D D $EE
E
.FFFc                 z    t                      }|                    dd          }t          j        ||           d S )Nr   r   r   )r!   r#   rI   s      r)   test_shift_axis_one_emptyz,TestDataFrameShift.test_shift_axis_one_empty  s9    [[!!$$
fb)))))r+   N)@__name__
__module____qualname__r*   r=   r`   markparametrizer   emptyonesrt   rJ   rT   r   rc   r   rD   r]   ri   rp   rx   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  td&skip_array_manager_not_yet_implementedr  r  r$  r'  r+  r0  paramxfailr   r   timedelta_rangeinterval_ranger   r=  r@  rB  rH  rR  rT  rZ  ra  rc   r+   r)   r   r      s       / / /= = =& [!
"(


	#gbgD&9&9&9BFC=%IJ * *	 *$7 7 7 [FIBIaLL>""Jz2C888F5588::fa#@#@#@AAA	
  [\999550 0 65 0' ' '$+ + + [Ww&899	* 	* :9	* [Y55* * 65*A A A* [T#5#5#566A A 76A( ( (T T T0E E E. ,  ,  ,D
0 
0 
0	0 	0 	0( ( (& & &N N N6& & &( ( (% % %8& & &6 6 6,)0 )0 )0V .0 0 /.04+ + +0 0 0.  ( ( (0 0 04 [FLk''N (     	
  [J|Q///J|Q<@@@BOL!#>>>B{AC@@@BaA...FL!Qw///k''N (     FL!Qy111k''N (    	
& #"+   .0 0/  F040 0 0,	2 	2 	21 1 11 1 1(A A A5 5 52( ( (8* * * * *r+   r   )numpyr   r`   pandas.util._test_decoratorsutil_test_decoratorsrk  pandasr   r   r   r   r   r   r   r	   pandas._testing_testingr   r   rq  r+   r)   <module>ry     s         ) ) ) ) ) ) ) ) )                           i* i* i* i* i* i* i* i* i* i*r+   