
    JEfSl                     r    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y)    N)CategoricalIndex	DataFrameIndexNaTSeries
date_rangeoffsetsc                      e Zd Zd Zd Zej                  j                  d ej                  d      g f ej                  d      ej                  dgfg      d        Zd	 Zej                  j                  d
 e ej                  d      g       eddd       e ed       edd            g      ej                  j                  dg d      d               Zd Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zd Zej                  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(jR                  d2        Z*d3 Z+d4 Z,d5 Z-d6 Z.d7 Z/ej                  j                  d8 ej`                  d9ej                  jc                  d:;      <      d=g      ej                  j                  d> ed?d@       ed?d@dAB       e2jf                  d?d@dC       e2jh                  dDd@dC       e2jj                  dEdFd@       ej`                   e2jl                  dGd@gdHI      ej                  jc                  d:;      <       ej`                   e2jl                  dGd@gdJI      ej                  jc                  d:;      <      gdK L      dM               Z7dN Z8dO Z9dP Z:dQ Z;dR Z<dS Z=dT Z>dU Z?yV)WTestDataFrameShiftc                    t         j                  j                  d      j                  d      }t	        |      }|j                  ddd      }|j                  j                  dd      j                  }t        j                  ||       |dg   j                  d      }|j                  ddd      }t	        dgd	z  d
      }t        j                  ||       y )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           ^/var/www/VTS_Report/venv/lib/python3.12/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     yy$$Q'77?t_hhAqUh;44::aE::<<
c8, !gnnY'yyauy=ugk;	
dI.    c                     |t         j                  j                  d      j                  d      t	        ddd            }d}t        j                  t        |      5  |j                  d	d	d
       d d d        |t        u rMt	        dd	d      |_
        t        j                  t        |      5  |j                  d	d	d	d       d d d        y y # 1 sw Y   _xY w# 1 sw Y   y xY w)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    II!!!$44Q7Z=
 	 ''SA 	1IIaACI0	1 i'$ZECK++ME =		!!	<= = (	1 	1
= =s    C3CCC(zinput_data, output_data)r   )shape)r         ?c                     |j                  d        ||      j                  d      }|t        ur( ||t        t	        |            t        d      d      }n
 ||d      }t        j                  ||       y )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   sr     	%( ,2215&(&C,-a	H '{)DH
)r+   c                     |t         j                  j                  d      j                  d      t	        ddd            }|j                  dd	      }|j                  j                  dd	      }t        j                  |j                  |       |j                  dd
	      }|j                  t        j                  d      z   }t        j                  |j                  |       y )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    II!!!$44Q7Z=

 !&)HHNN16N2	
fllI6 !$'HHw||A.	
fllI6r+   r;   r   z1/1/2011   r.   r/   2017r   r1   
shift_sizer   r   r   c                 ^    |t         ur|j                         }|j                  |      |usJ y 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                 P   t        t        d            }t        j                  t        d      5  |j                  dg        d d d        |j                         }t        j                  t        d      5  |j                  dt        j                  d             d d d        |j                  t              }|j                  di       }|d   i k(  sJ |j                         }|j                  di       }|j                  d   i k(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w)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    U1X]]:-JK 	(IIaBI'	( \\^]]:-JK 	1HHQ299Q<H0	1 **V$qR0ayB!!#aB/{{4 B&&&	( 	(	1 	1s   D7'DDD%c                     t        j                  ||      j                  t              }|j	                  d      }|j                  t
              j	                  d      }t        j                  ||       y )Nr   )r   get_objr    intr   floatrF   )r!   datetime_framer:   rR   shiftedr%   s         r)   test_shift_intz!TestDataFrameShift.test_shift_int|   sQ    ZZ8??D((1+99U#))!,
*r+   r   int32int64c                     t        dd      }t        j                  d|      } |||      }|d   }|j                  |      } |t        j                  dddd	g|      }t        j                  ||       y )
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   sn     <3ii'S.F!$"BFFAq!Q#7uE
)r+   r   )r   r   r   rO   c                      |t        |      t        d|d            }|j                  dd      } |t        |      t        d|d            }t        j                  ||       y )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   sb     'N0'L

 1d#"'N0'L
 	)r+   c                    t        dddd      } ||      }|j                  d      }t        j                  ||       t        j                  |      dk(  sJ |j                  d      }t
        g|j                  t              j                  j                         d d	 z   } ||      }t        j                  ||       t        j                  |      dk(  sJ |j                  d
      }|j                  t              j                  j                         dd  t
        t
        gz   } ||      }t        j                  ||       t        j                  |      dk(  sJ y )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   s!   <c2,Oe$iil
S!||C $@@@@iil55<</66==?CCh'
S!||C $@@@@iim<<'..557;sCjHh'
S!||C $@@@@r+   ex)r~   i   ic                     t        dddd      } ||      }|j                  |      } |t        gdz  d      }t        j                  ||       t        j
                  |      dk(  sJ y )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   sd     <c2,Oe$iimsebj0LM
S!||C $@@@@r+   c                 ~    t        j                  ||      }|j                  d      }t        j                  ||       y Nr   )r   rk   r   rF   )r!   rn   r:   r;   	unshifteds        r)   test_shift_by_zeroz%TestDataFrameShift.test_shift_by_zero   s-    jj9IIaL	
	3'r+   c                    |d   }|j                  d      }t        j                  |j                  |j                         |j                  d      }t        j                  |d   |       |j                  d      }t        j                  |j                  |j                         |j                  d      }t        j                  |d   |       |j                  d      j                  d      }t        j
                  |j                         j                  |j                  d d        |j                  d      j                  d      }t        j
                  |j                         j                  |j                  d d        y )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   s/   S! &&q)
gmm^-A-ABiil
ws|[9 &&r*
gmm^-A-ABiim
ws|[9"((+11"5	
##%%~'<'<Sb'A	
 		!**2.
##M$8$8$:$A$A3::cr?Sr+   c                    t        j                  ||      }t        j                         }|j	                  d|      }t        |      t        |      k(  sJ |j	                  d|      }t        j                  ||       |j	                  dd      }t        j                  ||       |j	                  d|      }t        j                  ||       |j                  d   }||dz  z   }	|t        u r7t        j                  |j                  |      |j                  |	      d       y t        j                  |j                  |   |j                  |	          y )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   s   jj9))AF)+7|s3x'''MM"6M2	
	3'99QS9)
*IIafI-	
	3'IIaL
N	i'""366!9gjj.CQVW""366!9gjj.CDr+   c                    t        t        j                  dt              t	        j
                  dd            }t        j                  ||      }|j                  d      }|j                  d      }t        j                  |j                  |j                         t        j                  |j                  |j                         |t         u r[t        j                  |j                  d d df   j                         j                  |j                  d ddf   j                         n;t        j                  |j                         j                  |j                  d d        |j                  dd	      }|j                  dt        j                                }t        j"                  ||       t        j"                  ||j                  dd	             d
}t%        j&                  t(        |      5  |j                  d       d d d        |j                  dd	      }t        j"                  ||       |j                  dt        j                                }	t        j"                  |	|       y # 1 sw Y   nxY w)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   IIau%R__\ST-U
 ZZO,((1+MM"%	
gmmRXX6
ioorxx8i'''q!t$++-44bggcrc1fo6L6L ''	(8(8(:(A(A299Sb>R88As#88Aw{{}-
(+
HNN2s34/]]:S1 	HH#H	 88AC8(
(+88AGKKM82
(+	 	s   5I55I>c                 h   t        t        j                  j                  d      j                  d            }t	        j
                  t        t        j                  |j                  dg      |j                  d d ddf   gdd      }|j                  dd	      }t        j                  ||       y )
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     ryy,,Q/66w?@99rvvRXXs;RWWQ"W=MN

 !!$
fh/r+   c                 h   t        t        j                  j                  d      j                  d            }t	        j
                  t        t        j                  |j                  dg      |j                  d d ddf   gdd      }|j                  dd	
      }t        j                  ||       y )Nr   r   r   r   r   Tr   r   r9   r   r   r   s       r)   test_shift_named_axisz(TestDataFrameShift.test_shift_named_axis   s    ryy,,Q/66w?@99rvvRXXs;RWWQ"W=MN

 !),
fh/r+   c                     |j                   }t        j                         }|j                  d|d      }t	        |      t	        |      k(  sJ |j                  d|d      }t        j                  ||       y )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+  sf     ))AF)37|s3x'''MM"6M:	
	3'r+   c                 
   t        ddgddgd      }|j                  d      }t        t        j                  t        j                  t        j                  gddggt
              ddg      }t        j                  ||       y )	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  sm    uuenEFXXa[HHrvvrvv&u6fEUO
 	b"%r+   c                     |g dd      }|j                  d      j                  d      }t        j                  |j                  d d |j	                                d } ||      }|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 |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                         y )	Nabcr   categoryr   r   r   c                 4    | 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   2*EYYq\#
"ryy{3	*
 S!iil
cii3vvnS)//3r9:::vvciins(;(A(A!"(EEFFFiim
cii3vvnS)//4:;;;vvciim~c':'@'@"'EEFFF
cnnnS.A.L.LM
cnnnS.A.L.LMr+   c                    t        g dd      }t        g dd      }t        ||d      }|j                  d      }t        |j                  d      |j                  d      d      }t        j                  ||       y )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  se    O:6O:6r"-.XXa[rxx{288A;?@
b"%r+   c                 <    |g dd      }|j                  dd      } |t        j                  g dg dd	            }t        j                  ||       d
}t        j                  t        |      5  |j                  dd       d d d        y # 1 sw Y   y xY w)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DhhqSh)"NN$1Eu

 	X& K]]9C0 	(HHQ3H'	( 	( 	(s   5BBc                    t        ddd      } |g d|      } |g d|      }|j                  dd	
      }t        j                  ||        |g d|      }|j                  dd	
      }t        j                  ||        |g d      }|j                  dd
      }t        j                  |      t        j                  |      k(  sJ  |g d|      } |g d|      }|j                  dd
      }t        j                  ||        |g d|      }|j                  dd
      }t        j                  ||       y )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6cB7sC!,
$7sC!,
$Y'hhqQh'||C BLL$4444 oS9oS91+
$oS91+
$r+   c                 l    t        dg i      }|j                  d      }t        j                  ||       y )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                  j	                  d      j                  d      }g }|D ]  }t        |j                         |      }t        d      D ]8  }|j                  d d |f   j                  |dz         |j                  d d |f<   : t        d      |_
        |j                  |        |d   j                         j                         }t        j                  |t!        t        dd      d	
             t        j"                  |d   |d          t        j"                  |d   |d          y )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  s#    U1XaAyy$$Q'77@# 	G499;8B1X ; "1 3 3AE :1;qBJNN2	 
!%%'
ufU1a[&HI 	gaj'!*5
gaj'!*5r+   c                    t        t        j                  j                  d      j	                  dd            }t        t        j                  j                  d      j	                  dd            }t        j                  ||gd      }|s$t        |j                  j                        dk(  sJ |j                  dd      }|j                  g dd      }|j                  d	       }t        j                  |j                  d d d df<   |j                  |_        t!        j"                  ||       t        j                  ||gd      }|s$t        |j                  j                        dk(  sJ |j                  d
d      }|j                  g dd      }|j                  d       }t        j                  |j                  d d d
d f<   |j                  |_        t!        j"                  ||       y )Nr     r   )sizer   r   r   r   )r   r   r   r   r   c                     | j                  t        | j                  d         d      j                  ddd      j                  | 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>  D    r{{5!#5A{>VG,-XbjjqX) r+   r   )r   r   rO   r   r   c                     | j                  t        | j                  d         d      j                  ddd      j                  | 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99$V9LM		--a099$V9LMiic
+"sxx'1,,,11%88-A86 ==*

  "vva!e;;
fh/ iic
+"sxx'1,,,2A&88-A86 ==*

 !#af;;
fh/r+   c                 ~   t         j                  j                  d      }t        |j	                  ddt
                    }t        |j	                  ddt
                    }t        j                  |j                  d dddf   |j                  d dd d f   gd	      }|j                  ddt        j                  d
            }t        |j                  j                        dk(  sJ |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	      }|j                  ddt        j                  d
            }t        |j                  j                        dk(  sJ |j                  g dd	      }t        j                  d
      |j                  d d dd f<   |j                  |_        t!        j"                  ||       y )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    ii##A&TcBCTcBCii"1"ac'*CHHRaRUO<1E11<388??#q(((88N83!wwqza!e;;
fh/ ii"1"ac'*CHHRaRUO<1E2A"''!*=388??#q(((88N83 "
af;;
fh/r+   c                    t        t        d      t        j                  dd            }t	        j
                  ||      }|j                  dd      }|j                  dd      }t	        j                  ||       |j                  d	      }t	        j                  ||       |j                  t        j                               }t	        j                  ||       y )
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    uQxr|Q'OPZZO,((17(+MM"7M3	
	2&888%
*888/
*r+   c                    t        j                  ||      }|j                  dd      }|j                  dd      }t        j                  ||       |j                  |j                  j
                        }t        j                  ||       t        |j                  t        t        j                  |j                              |j                        }t        j                  ||      }|j                  dd      }|j                  dd      }|j                  j                  d       |_        t        j                  ||       |j                  dd      }t        j                  ||       y )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  s   

>?;++ag+.MM"7M3	
y);;EKK$4$4;5
*!!"**^1123"**

 jjo>##AG#4;;qw;/!2248
*MM"7M3	
	;/r+   c                    t        t        d      t        j                  dd            }t	        j
                  ||      }d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)	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  sc    uQxr|Q'OPZZO,>]]:S1 	HH#H	 	 	s   A;;Bc                     t        j                  ||      }|j                  g d   }d}t        j                  t
        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)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  sX     

>?;**Y'F]]:S1 	(MMwM'	( 	( 	(s   A!!A*c                    t        t        j                  d      t        j                  d      g      }t        j                  t
        d      5  |j                  dd       d d d        |j                         }t        j                  t
        d      5  |j                  dd       d d d        t        ||d      }|j                          |j                  ddd	      }t        ddg|d
   d      }t        j                  ||       t        d
|i      }||d<   t        |j                  j                        dk(  sJ |j                  ddd	      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)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%  sH   bll<0",,|2LMN]]9,?@ 	'IIaAI&	' \\^]]9,?@ 	&HHQ1H%	& c,-  "113Aq6C9:
fh/ c
#C388??#q(((113
fh/)	' 	'	& 	&s   E.E;.E8;F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!''l r+   )idsc                 B   t        |      }|r|j                  d      }t        d|i      }|j                  ddd      }t        dddgi      }t	        j
                  ||       t        ||d      }|j                          |j                  ddd      }t        |d   ddgd      }t	        j
                  ||       t        d|i      }||d<   t        |j                  j                        d	k(  sJ |j                  ddd      }t	        j
                  ||       y )
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?  s   J Tl**Z(CSz""17cE5>23
fh/ c,-  "2A%83s85%.AB
fh/ c
#C388??#q(((2A%8
fh/r+   c                 
   t        g d      }t        ddgddgddgd|d d |	      }|j                  d
      }t        t        j                  t        j                  gddgddgd|d d |	      }t        j                  ||       |j                  dd
      }t        t        j                  t        j                  gt        j                  t        j                  gddgd|d d |	      }t        j                  ||       y )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    o.a&1vQF32cr7B
 q!66266"!Qq!f=RWVX
 	fh/ !!$66266""&&"&&)9AGSb'

 	fh/r+   c                 @   t        t        j                  j                  d      j                  d            }|j	                  ddd       }|t        j
                  z  }t        j                  ||       |j	                  ddd       }t        j                  ||       y )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{    ryy,,Q/66v>?((11(6;
gx088BQ488
h1r+   c                     t        dg dit        dd            }|j                  d      }t        dg dit        d	d	d
            }t        j                  ||       y )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  sZ    Y'z&!/LM(((&)<\1M
 	gx0r+   c           
      n   g dg dd}g d}t        |      }|j                  |      }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
                  ||       y )
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    Y/t_((6"  S)S),,	
 	h0r+   c                     dg di}g d}t        |      }|d   }t        j                  |j                  |      |j                  |             y )Nr   r   rY   )r   r   r   r   )r!   r"   rQ  r#   r  s        r)   test_shift_with_iterable_seriesz2TestDataFrameShift.test_shift_with_iterable_series  sD    Yt_sG
aggforxx/?@r+   c                 F   t        t        j                  j                  d      j	                  d      t        ddd            }t        j                  |j                  dgd      j                  d	 
      |j                  dd             t        j                  |j                  dgd      j                  d 
      |j                  dd             d}t        j                  t        |      5  |j                  ddgdd       d d d        y # 1 sw Y   y xY w)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Y 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    II!!!$44Q7Z=

 	HHaSQH'..7J.KHHQ1H%	
 	HHaSsH#**3F*GHHQSH!	
 	 ''SA 	5HHaVH4	5 	5 	5s   7DD c                    ddgddgd}ddg}t        |      }|dg   j                  |d	      }t        ddgt        j                  d
gd      }t	        j
                  ||       d}t        j                  t        |      5  |j                  |d       d d d        d}t        j                  t        |      5  |j                  dg       d d d        d}t        j                  t        |      5  |j                  g        d d d        d}t        j                  t        |      5  |j                  dd	       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   y xY w)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  sT   V1a&)Qt_ cU)//&/;QF2663-PQ
gx0 K]]:S1 	%HHV!H$	% A]]9C0 	HHcUO	 A]]:S1 	HHRL	 @]]:S1 	(HHQwH'	( 	(	% 	%	 		 		( 	(s0   E<E4E +E,EE E),E5c                 j    t               }|j                  dd      }t        j                  ||       y )Nr   r   r   )r!   r#   rI   s      r)   test_shift_axis_one_emptyz,TestDataFrameShift.test_shift_axis_one_empty  s+    [!!$
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      sf   /=& [[!
"((
	#gbggD&9BFFC=%IJ*	*$7 [[IBIIaL>"z2C858:fa#@A	
 [[\950 60'$+ [[Ww&89	* :	* [[Y5* 6*A* [[T#56A 7A(T0E. ,D
0	0(&N6&(%8&6,)0V ..0 /04+0.(04 [[FLLkk''N (  	
 [[|Q/|Q<@BOOL!#>B{AC@BaA.FLL!Qw/kk''N (  FLL!Qy1kk''N ( 	
& #+  .0/F040,	211(A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     s4      ) )    i* i*r+   