def test_lookupDate(self): tm = TimeMap() tm[0] = datetime.date(2000, 1, 1) tm[1] = datetime.date(2000, 1, 2) tm[2] = datetime.date(2000, 1, 3) self.assertEqual(0, tm.lookupTime(datetime.date(2000, 1, 1))) self.assertEqual(0, tm.lookupTime(datetime.datetime(2000, 1, 1, 0, 0, 0))) self.assertEqual(2, tm.lookupTime(datetime.date(2000, 1, 3))) self.assertEqual(2, tm.lookupTime(datetime.datetime(2000, 1, 3, 0, 0, 0))) with self.assertRaises(ValueError): tm.lookupTime(datetime.date(1999, 10, 10))
def test_nearest_date_lookup(self): tm = TimeMap() with self.assertRaises(ValueError): tm.lookupTime(datetime.date(1999, 1, 1)) with self.assertRaises(ValueError): tm.lookupTime(datetime.date(1999, 1, 1), tolerance_seconds_before=10, tolerance_seconds_after=10) tm[0] = datetime.date(2000, 1, 1) tm[1] = datetime.date(2000, 2, 1) tm[2] = datetime.date(2000, 3, 1) # Outside of total range will raise an exception, irrespective of # the tolerances used. with self.assertRaises(ValueError): tm.lookupTime(datetime.date(1999, 1, 1), tolerance_seconds_before=-1, tolerance_seconds_after=-1) with self.assertRaises(ValueError): tm.lookupTime(datetime.date(2001, 1, 1), tolerance_seconds_before=-1, tolerance_seconds_after=-1) self.assertEqual( 0, tm.lookupTime(datetime.datetime(2000, 1, 1, 0, 0, 10), tolerance_seconds_after=15)) self.assertEqual( 1, tm.lookupTime(datetime.datetime(2000, 1, 1, 0, 0, 10), tolerance_seconds_before=3600 * 24 * 40)) self.assertEqual( 0, tm.lookupTime(datetime.date(2000, 1, 10), tolerance_seconds_before=-1, tolerance_seconds_after=-1)) self.assertEqual( 1, tm.lookupTime(datetime.date(2000, 1, 20), tolerance_seconds_before=-1, tolerance_seconds_after=-1)) with self.assertRaises(ValueError): tm.lookupTime(datetime.date(2001, 10, 1), tolerance_seconds_before=10, tolerance_seconds_after=10)