def test_new_from_surround(self): """new range if one range surrounds another.""" # One range fully inside the other intersect() returns the smaller range # 01 -------06 range # 02--04 rangeInside # 02--04 intersection begin_time = self._strp("2010-01-01 12:00") end_time = self._strp("2010-06-01 12:00") range1 = TimeRange(begin_time, end_time) begin_time_inside = self._strp("2010-02-01 12:00") end_time_inside = self._strp("2010-04-01 12:00") range_inside = TimeRange(begin_time_inside, end_time_inside) self.assertTrue(range1.intersection(range_inside).equals(range_inside)) self.assertTrue(range_inside.intersection(range1).equals(range_inside))
def test_non_intersection(self): """compare if the ranges don't intersect.""" # Two non-overlapping ranges: intersect() returns undefined begin_time = self._strp("2010-01-01 12:00") end_time = self._strp("2010-06-01 12:00") range1 = TimeRange(begin_time, end_time) begin_time_outside = self._strp("2010-07-15 12:00") end_time_outside = self._strp("2010-08-15 12:00") range_outside = TimeRange(begin_time_outside, end_time_outside) self.assertIsNone(range1.intersection(range_outside))
def test_new_from_intersection(self): """new range if the ranges intersect.""" # Two overlapping ranges: intersect() returns # 01 -------06 range # 05-----07 rangeOverlap # 05-06 intersection begin_time = self._strp("2010-01-01 12:00") end_time = self._strp("2010-06-01 12:00") range1 = TimeRange(begin_time, end_time) begin_time_overlap = self._strp("2010-05-01 12:00") end_time_overlap = self._strp("2010-07-01 12:00") range_overlap = TimeRange(begin_time_overlap, end_time_overlap) expected = TimeRange(begin_time_overlap, end_time) self.assertTrue(range1.intersection(range_overlap).equals(expected))