@@ -270,17 +270,82 @@ def test_unpickle_legacy_series(self):
270
270
self .assertEquals (unpickled .index .offset , BDay (1 ))
271
271
272
272
def test_arithmetic_interaction (self ):
273
- pass
273
+ index = self .frame .index
274
+ obj_index = index .asobject
275
+
276
+ dseries = Series (rand (len (index )), index = index )
277
+ oseries = Series (dseries .values , index = obj_index )
278
+
279
+ result = dseries + oseries
280
+ expected = dseries * 2
281
+ self .assert_ (isinstance (result .index , DatetimeIndex ))
282
+ assert_series_equal (result , expected )
283
+
284
+ result = dseries + oseries [:5 ]
285
+ expected = dseries + dseries [:5 ]
286
+ self .assert_ (isinstance (result .index , DatetimeIndex ))
287
+ assert_series_equal (result , expected )
274
288
275
289
def test_join_interaction (self ):
276
- pass
290
+ index = self .frame .index
291
+ obj_index = index .asobject
292
+
293
+ def _check_join (left , right , how = 'inner' ):
294
+ ra , rb , rc = left .join (right , how = how , return_indexers = True )
295
+ ea , eb , ec = left .join (DatetimeIndex (right ), how = how ,
296
+ return_indexers = True )
297
+
298
+ self .assert_ (isinstance (ra , DatetimeIndex ))
299
+ self .assert_ (ra .equals (ea ))
300
+
301
+ assert_almost_equal (rb , eb )
302
+ assert_almost_equal (rc , ec )
303
+
304
+ _check_join (index [:15 ], obj_index [5 :], how = 'inner' )
305
+ _check_join (index [:15 ], obj_index [5 :], how = 'outer' )
306
+ _check_join (index [:15 ], obj_index [5 :], how = 'right' )
307
+ _check_join (index [:15 ], obj_index [5 :], how = 'left' )
277
308
278
309
def test_setops (self ):
279
- pass
310
+ index = self .frame .index
311
+ obj_index = index .asobject
312
+
313
+ result = index [:5 ].union (obj_index [5 :])
314
+ expected = index
315
+ self .assert_ (isinstance (result , DatetimeIndex ))
316
+ self .assert_ (result .equals (expected ))
317
+
318
+ result = index [:10 ].intersection (obj_index [5 :])
319
+ expected = index [5 :10 ]
320
+ self .assert_ (isinstance (result , DatetimeIndex ))
321
+ self .assert_ (result .equals (expected ))
322
+
323
+ result = index [:10 ] - obj_index [5 :]
324
+ expected = index [:5 ]
325
+ self .assert_ (isinstance (result , DatetimeIndex ))
326
+ self .assert_ (result .equals (expected ))
280
327
281
328
def test_index_conversion (self ):
282
- pass
329
+ index = self .frame .index
330
+ obj_index = index .asobject
331
+
332
+ conv = DatetimeIndex (obj_index )
333
+ self .assert_ (conv .equals (index ))
334
+
335
+ self .assertRaises (ValueError , DatetimeIndex , ['a' , 'b' , 'c' , 'd' ])
336
+
337
+ def test_setops_conversion_fail (self ):
338
+ index = self .frame .index
339
+
340
+ right = Index (['a' , 'b' , 'c' , 'd' ])
341
+
342
+ result = index .union (right )
343
+ expected = Index (np .concatenate ([index .asobject , right ]))
344
+ self .assert_ (result .equals (expected ))
283
345
346
+ result = index .intersection (right )
347
+ expected = Index ([])
348
+ self .assert_ (result .equals (expected ))
284
349
285
350
286
351
class TestDatetime64 (unittest .TestCase ):
0 commit comments