
    .iQs                     l    d dl Zd dlZd dl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)Pandas4Warning)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'd2 Z(d3 Z)d4 Z*d5 Z+d6 Z,d7 Z-ej                  j                  d8 ej\                  d9ej                  j_                  d:;      <      d=g      ej                  j                  d> ed?d@       ed?d@dAB       e0jb                  d?d@dC       e0jd                  dDd@dC       e0jf                  dEdFd@       ej\                   e0jh                  dGd@gdHI      ej                  j_                  d:;      <       ej\                   e0jh                  dGd@gdJI      ej                  j_                  d:;      <      gdK L      dM               Z5dN Z6dO Z7dP Z8dQ Z9dR Z:dS Z;dT Z<dU Z=dV Z>dW Z?dX Z@dY ZAyZ)[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           c/var/www/app/trading-bot/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indexz-Passing a 'freq' together with a 'fill_value'matchr   )r   r1   )r   r   r1   )r   r   r   r   r	   pytestraises
ValueErrorr   r   columns)r"   frame_or_seriesobjmsgs       r*   'test_shift_disallow_freq_and_fill_valuez:TestDataFrameShift.test_shift_disallow_freq_and_fill_value#   s    II!!!$44Q7Z=

 >]]:S1 	1IIaACI0	1 i'$ZECKz5 =		!!	<= = (	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)r3   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_array3   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/   r0   r2   r   5minr1   4h   )r   r   r   r   r	   r   r3   r   assert_index_equalr
   Hour)r"   r:   tsrI   	exp_indexs        r*   test_shift_mismatched_freqz-TestDataFrameShift.test_shift_mismatched_freqI   s    II!!!$44Q7Z=

 !&)HHNN16N2	
fllI6 !$'HHw||A.	
fllI6r,   r;   r   z1/1/2011   r/   r0   2017r   r2   
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_copyX   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   r6   r7   r8   r   r\   r   aranger!   objectiloc)r"   serr$   obj_serrI   obj_dfs         r*   !test_shift_object_non_scalar_fillz4TestDataFrameShift.test_shift_object_non_scalar_fillg   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_inty   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   r2   r   r   r   r   )r	   r   r`   r   nanr   rF   )	r"   r:   r   r3   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/   r0   r2   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d      } ||      }|j                  d      }t        j                  ||       t        j                  |      dk(  sJ |j                  d	      }t
        g|j                  t              j                  j                         d d
 } ||      }t        j                  ||       t        j                  |      dk(  sJ |j                  d      }g |j                  t              j                  j                         dd  t
        t
        } ||      }t        j                  ||       t        j                  |      dk(  sJ y )N
2016-11-06r/   
   
US/Easternnsr1   r   tzunitr   datetime64[ns, US/Eastern]r   	   r   )
r	   r   r   rF   	get_dtyper   r!   ra   valuestolist)r"   r:   datesr;   r%   exp_valsexps          r*   test_shift_dstz!TestDataFrameShift.test_shift_dst   s/   sB<d
 e$iil
S!||C $@@@@iilC%,,v.55<<>rBCh'
S!||C $@@@@iimHU\\&)00779!"=HsHCHh'
S!||C $@@@@r,   ex)r{   i   ic                     t        ddddd      } ||      }|j                  |      } |t        gdz  d      }t        j                  ||       t        j
                  |      dk(  sJ y )	Nrz   r/   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   sk     sB<d
 e$iimsebj0LM
S!||C $@@@@r,   c                 ~    t        j                  ||      }|j                  d      }t        j                  ||       y Nr   )r   rh   r   rF   )r"   rk   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   r3   assert_series_equalassert_numpy_array_equaldropnar   )r"   rk   rc   rl   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   rh   r
   BDayr   rE   rF   r3   r   r   xsassert_almost_equalat)
r"   rk   r:   r;   offsetrl   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   r2   r   r   Dzdoes not match PeriodIndex freqr4   WrM   )r   r   r`   rj   pdperiod_ranger   rh   r   rP   r3   r   rb   r   r   r
   DayrF   r6   r7   r8   )
r"   r:   psrl   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   r3   r9   r   Tr   ignore_indexr   r   r   r   r   r   r   concatrq   r3   rb   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   )r1   r   r   )r   r
   r   r   rE   r   rF   )r"   rk   r;   r   rl   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   arrayrq   ra   r   r    )r"   r$   rsxps       r*   test_shift_boolz"TestDataFrameShift.test_shift_bool6  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                 H    | j                   j                  d   j                  S r   )_mgrblocksr   )ndframes    r*   get_cat_valueszBTestDataFrameShift.test_shift_categorical1.<locals>.get_cat_valuesF  s     <<&&q)000r,   r   r   )r   r   rF   rb   r   rP   r3   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	1
 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"   rs   s2r$   r   r   s         r*   test_shift_categoricalz)TestDataFrameShift.test_shift_categoricalZ  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   r6   r7   	TypeError)r"   r:   rR   r%   r&   r<   s         r*   !test_shift_categorical_fill_valuez4TestDataFrameShift.test_shift_categorical_fill_valuec  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/   r0   )r?          @      @      @      @r2   )        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_valuer  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      ro   r   )listrD   r   r   r   r   r   copyrb   r   r9   appendisnasumr   r   r   r    )r"   column_listsr#   rl   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      }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      }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   rj   )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   rj   )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   r   r   takepiperq   rb   r9   r   r    )r"   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
+388??#q(((11%88-A86 ==*

  "vva!e;;
fh/ iic
+388??#q(((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  ri   r   r   rb   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   r2   r   inferrM   r   r   )
r   rD   r   r   r   rh   r   rF   r
   r   )r"   r:   r   rl   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   rh   r   rF   r3   r1   r   r   r   r   asarrayr9   
_with_freq)	r"   rk   r:   dtobjrl   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   r2   z.Given freq M does not match PeriodIndex freq Dr4   MrM   )
r   rD   r   r   r   rh   r6   r7   r8   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   rh   rb   r6   r7   r8   r   )r"   rk   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   	Timestampr6   r7   r   r   r\   r   _consolidate_inplacer   r    rE   r   r   )r"   rc   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"   r1  r.  rc   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   rq   r   r    )r"   cir$   rI   r&   s        r*   $test_shift_axis1_categorical_columnsz7TestDataFrameShift.test_shift_axis1_categorical_columnsz  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   rq   r   r    )r"   r$   rl   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 )Nr7  r   2000r   rW   r2   1MSrM   z
02/01/2000)startendr   )r   r	   r   r   r    )r"   r$   rl   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   rq   r   r    )r"   r#   shiftsr$   rl   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#   rN  r$   r   s        r*   test_shift_with_iterable_seriesz2TestDataFrameShift.test_shift_with_iterable_series  sD    Yt_sG
aggforxx/?@r,   c                    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             y )Nr   r   r.   r/   r0   r2   r   r_   c                     t        | d         S r   ri   r6  s    r*   r  zQTestDataFrameShift.test_shift_with_iterable_freq_and_fill_value.<locals>.<lambda>  s    QqT r,   r   rM   c                     t        | d         S r   rT  r6  s    r*   r  zQTestDataFrameShift.test_shift_with_iterable_freq_and_fill_value.<locals>.<lambda>  s    S1Y r,   )
r   r   r   r   r   r	   r   r    r   rename)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!	
r,   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   rG  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   rq   r   r    r6   r7   r8   r   )r"   r#   rN  r$   rl   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,   c                     t        ddd      }t        j                         }||z   }t        |      }t        |      }|j	                  |      }t        j                  ||       y )Nr   r   r   r0   r2   rM   )r	   r
   r   r   r   r   r    )r"   r   r   shifted_datesr$   
df_shiftedrI   s          r*   "test_shift_with_offsets_freq_emptyz5TestDataFrameShift.test_shift_with_offsets_freq_empty  sX    <=U#]3
v&
fj1r,   c                 &   t        t        j                  ddd      t        j                  ddd      g      }|j                  d      }t        t        j
                  t        j                  ddd      g      }t        j                  ||       y )Nr   r   right)closedr   )r   r   Intervalr   r   rq   r   r   )r"   rc   rI   r&   s       r*   +test_series_shift_interval_preserves_closedz>TestDataFrameShift.test_series_shift_interval_preserves_closed  sm    [[Ag.Aq0QR
 12662;;q!G#DEF
vx0r,   c                    t        g dg dd      }d}t        j                  t        |      5  |j	                  dd       d d d        t        j                  t        |      5  |d	   j	                  dd       d d d        t        j                  t        |      5  |d
   j	                  dd       d d d        t        j                  t        |      5  |j	                  dt
               d d d        t        j                  t        |      5  |d	   j	                  dt
               d d d        t        j                  t        |      5  |d
   j	                  dt
               d d d        y # 1 sw Y   6xY w# 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   zxY w# 1 sw Y   y xY w)Nr   )TFTrG  z&shifting with a fill value that cannotr4   r   r   r_   r   r   )r   r   assert_produces_warningr   r   r   )r"   r$   r<   s      r*   )test_shift_invalid_fill_value_deprecationz<TestDataFrameShift.test_shift_invalid_fill_value_deprecation  su   (
 7''cB 	*HHQ5H)	* ''cB 	/sGMM!M.	/''cB 	/sGMM!M.	/ ''cB 	(HHQ3H'	(''cB 	-sGMM!M,	-''cB 	-sGMM!M,	- 	-	* 	*	/ 	/	/ 	/	( 	(	- 	-	- 	-sG   E8'F!FFF*F68FFFF'*F36F?c                 $   t        ddd      }t        dddgi|d   |d   g	      }|j                  ddgd      }t        d
dt        j                  gdt        j                  d
gd|d   |d   |d   g	      }t        j                  ||       y )Nr.   rO   r   r0   r   r   r   r   r2   r?   r   )rJ  rL  r   )r	   r   r   r   rq   r   r    )r"   r   r$   rI   r&   s        r*   -test_shift_dt_index_multiple_periods_unsortedz@TestDataFrameShift.test_shift_dt_index_multiple_periods_unsorted"  s    J<aV}VAYq	,BC1a&s3S"&&)RVVS) !9fQi3
 	fh/r,   N)B__name__
__module____qualname__r+   r=   r6   markparametrizer   emptyonesrq   rJ   rT   r   r`   r	   rD   r]   rf   rm   ru   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r!  r$  r(  r-  paramxfailr   r   timedelta_rangeinterval_ranger   r:  r=  r?  rE  rO  rQ  rW  r^  r`  rd  ri  rl  rn   r,   r*   r   r      se   /=  [[!
"((
	#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,'0R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
$(8*21-40r,   r   )numpyr   r6   pandas.errorsr   pandasr   r   r   r   r   r   r	   r
   pandas._testing_testingr   r   rz  r,   r*   <module>r     s1      (    [0 [0r,   