@@ -297,6 +297,38 @@ def test_nonunique_contains(self):
297
297
['2015' , '2015' , '2016' ], ['2015' , '2015' , '2014' ])):
298
298
tm .assertIn (idx [0 ], idx )
299
299
300
+ def test_getitem (self ):
301
+ idx1 = pd .date_range ('2011-01-01' , '2011-01-31' , freq = 'D' , name = 'idx' )
302
+ idx2 = pd .date_range ('2011-01-01' , '2011-01-31' , freq = 'D' , tz = 'Asia/Tokyo' , name = 'idx' )
303
+
304
+ for idx in [idx1 , idx2 ]:
305
+ result = idx [0 ]
306
+ self .assertEqual (result , pd .Timestamp ('2011-01-01' , tz = idx .tz ))
307
+
308
+ result = idx [0 :5 ]
309
+ expected = pd .date_range ('2011-01-01' , '2011-01-05' , freq = 'D' ,
310
+ tz = idx .tz , name = 'idx' )
311
+ self .assert_index_equal (result , expected )
312
+ self .assertEqual (result .freq , expected .freq )
313
+
314
+ result = idx [0 :10 :2 ]
315
+ expected = pd .date_range ('2011-01-01' , '2011-01-09' , freq = '2D' ,
316
+ tz = idx .tz , name = 'idx' )
317
+ self .assert_index_equal (result , expected )
318
+ self .assertEqual (result .freq , expected .freq )
319
+
320
+ result = idx [- 20 :- 5 :3 ]
321
+ expected = pd .date_range ('2011-01-12' , '2011-01-25' , freq = '3D' ,
322
+ tz = idx .tz , name = 'idx' )
323
+ self .assert_index_equal (result , expected )
324
+ self .assertEqual (result .freq , expected .freq )
325
+
326
+ result = idx [4 ::- 1 ]
327
+ expected = DatetimeIndex (['2011-01-05' , '2011-01-04' , '2011-01-03' ,
328
+ '2011-01-02' , '2011-01-01' ],
329
+ freq = '-1D' , tz = idx .tz , name = 'idx' )
330
+ self .assert_index_equal (result , expected )
331
+ self .assertEqual (result .freq , expected .freq )
300
332
301
333
class TestTimedeltaIndexOps (Ops ):
302
334
@@ -742,6 +774,33 @@ def test_unknown_attribute(self):
742
774
self .assertNotIn ('foo' ,ts .__dict__ .keys ())
743
775
self .assertRaises (AttributeError ,lambda : ts .foo )
744
776
777
+ def test_getitem (self ):
778
+ idx1 = pd .timedelta_range ('1 day' , '31 day' , freq = 'D' , name = 'idx' )
779
+
780
+ for idx in [idx1 ]:
781
+ result = idx [0 ]
782
+ self .assertEqual (result , pd .Timedelta ('1 day' ))
783
+
784
+ result = idx [0 :5 ]
785
+ expected = pd .timedelta_range ('1 day' , '5 day' , freq = 'D' , name = 'idx' )
786
+ self .assert_index_equal (result , expected )
787
+ self .assertEqual (result .freq , expected .freq )
788
+
789
+ result = idx [0 :10 :2 ]
790
+ expected = pd .timedelta_range ('1 day' , '9 day' , freq = '2D' , name = 'idx' )
791
+ self .assert_index_equal (result , expected )
792
+ self .assertEqual (result .freq , expected .freq )
793
+
794
+ result = idx [- 20 :- 5 :3 ]
795
+ expected = pd .timedelta_range ('12 day' , '25 day' , freq = '3D' , name = 'idx' )
796
+ self .assert_index_equal (result , expected )
797
+ self .assertEqual (result .freq , expected .freq )
798
+
799
+ result = idx [4 ::- 1 ]
800
+ expected = TimedeltaIndex (['5 day' , '4 day' , '3 day' , '2 day' , '1 day' ],
801
+ freq = '-1D' , name = 'idx' )
802
+ self .assert_index_equal (result , expected )
803
+ self .assertEqual (result .freq , expected .freq )
745
804
746
805
class TestPeriodIndexOps (Ops ):
747
806
0 commit comments