@@ -53,6 +53,13 @@ def test_pickle_compat_construction(self):
53
53
# need an object to create with
54
54
self .assertRaises (TypeError , self ._holder )
55
55
56
+ def test_shift_index (self ):
57
+ # err8083 test the base class for shift
58
+ idx = self .create_index ()
59
+ self .assertRaises (NotImplementedError , idx .shift , 1 )
60
+
61
+ self .assertRaises (NotImplementedError , idx .shift , 1 , 2 )
62
+
56
63
def test_numeric_compat (self ):
57
64
58
65
idx = self .create_index ()
@@ -3425,6 +3432,32 @@ def setUp(self):
3425
3432
def create_index (self ):
3426
3433
return date_range ('20130101' , periods = 5 )
3427
3434
3435
+ def test_shift (self ):
3436
+ # test shift for datetimeIndex and non datetimeIndex
3437
+ # err8083
3438
+
3439
+ drange = self .create_index ()
3440
+ result = drange .shift (1 )
3441
+ expected = DatetimeIndex (['2013-01-02' , '2013-01-03' , '2013-01-04' , '2013-01-05' ,
3442
+ '2013-01-06' ], freq = 'D' )
3443
+ self .assert_index_equal (result , expected )
3444
+
3445
+ result = drange .shift (0 )
3446
+ expected = DatetimeIndex (['2013-01-01' , '2013-01-02' , '2013-01-03' , '2013-01-04' ,
3447
+ '2013-01-05' ], freq = 'D' )
3448
+ self .assert_index_equal (result , expected )
3449
+
3450
+ result = drange .shift (- 1 )
3451
+ expected = DatetimeIndex (['2012-12-31' ,'2013-01-01' , '2013-01-02' , '2013-01-03' , '2013-01-04' ],
3452
+ freq = 'D' )
3453
+ self .assert_index_equal (result , expected )
3454
+
3455
+ result = drange .shift (3 , freq = '2D' )
3456
+ expected = DatetimeIndex (['2013-01-07' , '2013-01-08' , '2013-01-09' , '2013-01-10' ,
3457
+ '2013-01-11' ],freq = 'D' )
3458
+ self .assert_index_equal (result , expected )
3459
+
3460
+
3428
3461
def test_construction_with_alt (self ):
3429
3462
3430
3463
i = pd .date_range ('20130101' ,periods = 5 ,freq = 'H' ,tz = 'US/Eastern' )
@@ -3688,6 +3721,16 @@ def setUp(self):
3688
3721
def create_index (self ):
3689
3722
return period_range ('20130101' , periods = 5 , freq = 'D' )
3690
3723
3724
+ def test_shift (self ):
3725
+ # test shift for PeriodIndex
3726
+ # err8083
3727
+
3728
+ drange = self .create_index ()
3729
+ result = drange .shift (1 )
3730
+ expected = PeriodIndex (['2013-01-02' , '2013-01-03' , '2013-01-04' , '2013-01-05' ,
3731
+ '2013-01-06' ], freq = 'D' )
3732
+ self .assert_index_equal (result , expected )
3733
+
3691
3734
def test_pickle_compat_construction (self ):
3692
3735
pass
3693
3736
@@ -3784,6 +3827,21 @@ def setUp(self):
3784
3827
def create_index (self ):
3785
3828
return pd .to_timedelta (range (5 ), unit = 'd' ) + pd .offsets .Hour (1 )
3786
3829
3830
+ def test_shift (self ):
3831
+ # test shift for TimedeltaIndex
3832
+ # err8083
3833
+
3834
+ drange = self .create_index ()
3835
+ result = drange .shift (1 )
3836
+ expected = TimedeltaIndex (['1 days 01:00:00' , '2 days 01:00:00' , '3 days 01:00:00' ,
3837
+ '4 days 01:00:00' , '5 days 01:00:00' ],freq = 'D' )
3838
+ self .assert_index_equal (result , expected )
3839
+
3840
+ result = drange .shift (3 , freq = '2D' )
3841
+ expected = TimedeltaIndex (['2 days 01:00:00' , '3 days 01:00:00' , '4 days 01:00:00' ,
3842
+ '5 days 01:00:00' , '6 days 01:00:00' ],freq = 'D' )
3843
+ self .assert_index_equal (result , expected )
3844
+
3787
3845
def test_get_loc (self ):
3788
3846
idx = pd .to_timedelta (['0 days' , '1 days' , '2 days' ])
3789
3847
0 commit comments