@@ -2455,27 +2455,31 @@ def test_insert(self):
24552455 with tm .assertRaises (ValueError ):
24562456 result = idx .insert (3 , datetime (2000 , 1 , 4 , tzinfo = pytz .timezone ('US/Eastern' )))
24572457
2458- # preserve freq
2459- expected = date_range ('1/1/2000' , periods = 4 , freq = 'D' , tz = 'Asia/Tokyo' , name = 'idx' )
2460- for d in [pd .Timestamp ('2000-01-04' , tz = 'Asia/Tokyo' ),
2461- datetime (2000 , 1 , 4 , tzinfo = pytz .timezone ('Asia/Tokyo' ))]:
2462-
2463- result = idx .insert (3 , d )
2464- self .assertTrue (result .equals (expected ))
2465- self .assertEqual (result .name , expected .name )
2466- self .assertEqual (result .freqstr , expected .freq )
2467-
2468- expected = DatetimeIndex (['2000-01-01' , '2000-01-02' , '2000-01-03' ,
2469- '2000-01-02' ], name = 'idx' ,
2470- tz = 'Asia/Tokyo' , freq = None )
2471- # reset freq to None
2472- for d in [pd .Timestamp ('2000-01-02' , tz = 'Asia/Tokyo' ),
2473- datetime (2000 , 1 , 2 , tzinfo = pytz .timezone ('Asia/Tokyo' ))]:
2474- result = idx .insert (3 , d )
2475- self .assertTrue (result .equals (expected ))
2476- self .assertEqual (result .name , expected .name )
2477- self .assertTrue (result .freq is None )
2458+ for tz in ['US/Pacific' , 'Asia/Singapore' ]:
2459+ idx = date_range ('1/1/2000 09:00' , periods = 6 , freq = 'H' , tz = tz , name = 'idx' )
2460+ # preserve freq
2461+ expected = date_range ('1/1/2000 09:00' , periods = 7 , freq = 'H' , tz = tz , name = 'idx' )
2462+ for d in [pd .Timestamp ('2000-01-01 15:00' , tz = tz ),
2463+ pytz .timezone (tz ).localize (datetime (2000 , 1 , 1 , 15 ))]:
2464+
2465+ result = idx .insert (6 , d )
2466+ self .assertTrue (result .equals (expected ))
2467+ self .assertEqual (result .name , expected .name )
2468+ self .assertEqual (result .freq , expected .freq )
2469+ self .assertEqual (result .tz , expected .tz )
24782470
2471+ expected = DatetimeIndex (['2000-01-01 09:00' , '2000-01-01 10:00' , '2000-01-01 11:00' ,
2472+ '2000-01-01 12:00' , '2000-01-01 13:00' , '2000-01-01 14:00' ,
2473+ '2000-01-01 10:00' ], name = 'idx' ,
2474+ tz = tz , freq = None )
2475+ # reset freq to None
2476+ for d in [pd .Timestamp ('2000-01-01 10:00' , tz = tz ),
2477+ pytz .timezone (tz ).localize (datetime (2000 , 1 , 1 , 10 ))]:
2478+ result = idx .insert (6 , d )
2479+ self .assertTrue (result .equals (expected ))
2480+ self .assertEqual (result .name , expected .name )
2481+ self .assertTrue (result .freq is None )
2482+ self .assertEqual (result .tz , expected .tz )
24792483
24802484 def test_delete (self ):
24812485 idx = date_range (start = '2000-01-01' , periods = 5 , freq = 'M' , name = 'idx' )
@@ -2501,16 +2505,25 @@ def test_delete(self):
25012505 # either depeidnig on numpy version
25022506 result = idx .delete (5 )
25032507
2504- idx = date_range (start = '2000-01-01' , periods = 5 ,
2505- freq = 'D' , name = 'idx' , tz = 'US/Pacific' )
2508+ for tz in [None , 'Asia/Tokyo' , 'US/Pacific' ]:
2509+ idx = date_range (start = '2000-01-01 09:00' , periods = 10 ,
2510+ freq = 'H' , name = 'idx' , tz = tz )
25062511
2507- expected = date_range (start = '2000-01-02' , periods = 4 ,
2508- freq = 'D' , name = 'idx' , tz = 'US/Pacific' )
2509- result = idx .delete (0 )
2510- self .assertTrue (result .equals (expected ))
2511- self .assertEqual (result .name , expected .name )
2512- self .assertEqual (result .freqstr , 'D' )
2513- self .assertEqual (result .tz , expected .tz )
2512+ expected = date_range (start = '2000-01-01 10:00' , periods = 9 ,
2513+ freq = 'H' , name = 'idx' , tz = tz )
2514+ result = idx .delete (0 )
2515+ self .assertTrue (result .equals (expected ))
2516+ self .assertEqual (result .name , expected .name )
2517+ self .assertEqual (result .freqstr , 'H' )
2518+ self .assertEqual (result .tz , expected .tz )
2519+
2520+ expected = date_range (start = '2000-01-01 09:00' , periods = 9 ,
2521+ freq = 'H' , name = 'idx' , tz = tz )
2522+ result = idx .delete (- 1 )
2523+ self .assertTrue (result .equals (expected ))
2524+ self .assertEqual (result .name , expected .name )
2525+ self .assertEqual (result .freqstr , 'H' )
2526+ self .assertEqual (result .tz , expected .tz )
25142527
25152528 def test_delete_slice (self ):
25162529 idx = date_range (start = '2000-01-01' , periods = 10 , freq = 'D' , name = 'idx' )
@@ -2538,30 +2551,34 @@ def test_delete_slice(self):
25382551 self .assertEqual (result .name , expected .name )
25392552 self .assertEqual (result .freq , expected .freq )
25402553
2541- ts = pd .Series (1 , index = pd .date_range ('2000-01-01' , periods = 10 ,
2542- freq = 'D' , name = 'idx' ))
2543- # preserve freq
2544- result = ts .drop (ts .index [:5 ]).index
2545- expected = pd .date_range ('2000-01-06' , periods = 5 , freq = 'D' , name = 'idx' )
2546- self .assertTrue (result .equals (expected ))
2547- self .assertEqual (result .name , expected .name )
2548- self .assertEqual (result .freq , expected .freq )
2554+ for tz in [None , 'Asia/Tokyo' , 'US/Pacific' ]:
2555+ ts = pd .Series (1 , index = pd .date_range ('2000-01-01 09:00' , periods = 10 ,
2556+ freq = 'H' , name = 'idx' , tz = tz ))
2557+ # preserve freq
2558+ result = ts .drop (ts .index [:5 ]).index
2559+ expected = pd .date_range ('2000-01-01 14:00' , periods = 5 , freq = 'H' , name = 'idx' , tz = tz )
2560+ self .assertTrue (result .equals (expected ))
2561+ self .assertEqual (result .name , expected .name )
2562+ self .assertEqual (result .freq , expected .freq )
2563+ self .assertEqual (result .tz , expected .tz )
25492564
2550- # reset freq to None
2551- result = ts .drop (ts .index [[1 , 3 , 5 , 7 , 9 ]]).index
2552- expected = DatetimeIndex (['2000-01-01' , '2000-01-03' , '2000-01-05' ,
2553- '2000-01-07' , '2000-01-09' ], freq = None , name = 'idx' )
2554- self .assertTrue (result .equals (expected ))
2555- self .assertEqual (result .name , expected .name )
2556- self .assertEqual (result .freq , expected .freq )
2565+ # reset freq to None
2566+ result = ts .drop (ts .index [[1 , 3 , 5 , 7 , 9 ]]).index
2567+ expected = DatetimeIndex (['2000-01-01 09:00' , '2000-01-01 11:00' , '2000-01-01 13:00' ,
2568+ '2000-01-01 15:00' , '2000-01-01 17:00' ],
2569+ freq = None , name = 'idx' , tz = tz )
2570+ self .assertTrue (result .equals (expected ))
2571+ self .assertEqual (result .name , expected .name )
2572+ self .assertEqual (result .freq , expected .freq )
2573+ self .assertEqual (result .tz , expected .tz )
25572574
25582575 def test_take (self ):
2559- dates = [datetime (2010 , 1 , 6 ), datetime (2010 , 1 , 7 ),
2560- datetime (2010 , 1 , 9 ), datetime (2010 , 1 , 13 )]
2576+ dates = [datetime (2010 , 1 , 1 , 14 ), datetime (2010 , 1 , 1 , 15 ),
2577+ datetime (2010 , 1 , 1 , 17 ), datetime (2010 , 1 , 1 , 21 )]
25612578
25622579 for tz in [None , 'US/Eastern' , 'Asia/Tokyo' ]:
2563- idx = DatetimeIndex (start = '1/1/10 ' , end = '12/31/12 ' ,
2564- freq = 'D ' , tz = tz , name = 'idx' )
2580+ idx = DatetimeIndex (start = '2010-01-01 09:00 ' , end = '2010-02-01 09:00 ' ,
2581+ freq = 'H ' , tz = tz , name = 'idx' )
25652582 expected = DatetimeIndex (dates , freq = None , name = 'idx' , tz = tz )
25662583
25672584 taken1 = idx .take ([5 , 6 , 8 , 12 ])
0 commit comments