示例#1
0
 def test_not_all_in_range(self):
     r1_1 = Range(start=datetime(2018, 1, 10), end=datetime(2018, 1, 15))
     r1_2 = Range(start=datetime(2018, 1, 10), end=datetime(2018, 1, 12))
     r1_3 = Range(start=datetime(2018, 1, 12), end=datetime(2018, 1, 16))
     r1_4 = Range(start=datetime(2018, 1, 11), end=datetime(2018, 1, 14))
     r2 = Range(start=datetime(2018, 1, 10), end=datetime(2018, 1, 15))
     self.assertFalse(all_in_range([r1_1, r1_2, r1_3, r1_4], r2))
示例#2
0
 def test_several_with_overlap(self):
     r1 = Range(start=datetime(2018, 1, 11), end=datetime(2018, 1, 13))
     r2 = Range(start=datetime(2018, 1, 1), end=datetime(2018, 1, 3))
     r3 = Range(start=datetime(2018, 1, 15), end=datetime(2018, 1, 22))
     r4 = Range(start=datetime(2018, 1, 20), end=datetime(2018, 1, 25))
     r5 = Range(start=datetime(2018, 1, 15), end=datetime(2018, 1, 19))
     self.assertTrue(ranges_overlap([r1, r2, r3, r4, r5]))
示例#3
0
 def test_in_range(self):
     r1 = Range(start=datetime(2018, 1, 10), end=datetime(2018, 1, 15))
     r2_1 = Range(start=datetime(2018, 1, 5), end=datetime(2018, 1, 20))
     r2_2 = Range(start=datetime(2018, 1, 5), end=datetime(2018, 1, 15))
     r2_3 = Range(start=datetime(2018, 1, 10), end=datetime(2018, 1, 20))
     self.assertTrue(in_range(r1, r1))
     self.assertTrue(in_range(r1, r2_1))
     self.assertTrue(in_range(r1, r2_2))
     self.assertTrue(in_range(r1, r2_3))
示例#4
0
 def test_in_range_some_overlap(self):
     r1 = Range(start=datetime(2018, 1, 10), end=datetime(2018, 1, 15))
     r2_1 = Range(start=datetime(2018, 1, 1), end=datetime(2018, 1, 10))
     r2_2 = Range(start=datetime(2018, 1, 15), end=datetime(2018, 1, 20))
     r2_3 = Range(start=datetime(2018, 1, 5), end=datetime(2018, 1, 14))
     r2_4 = Range(start=datetime(2018, 1, 12), end=datetime(2018, 1, 20))
     r2_5 = Range(start=datetime(2018, 1, 12), end=datetime(2018, 1, 14))
     self.assertFalse(in_range(r1, r2_1))
     self.assertFalse(in_range(r1, r2_2))
     self.assertFalse(in_range(r1, r2_3))
     self.assertFalse(in_range(r1, r2_4))
     self.assertFalse(in_range(r1, r2_5))
示例#5
0
 def test_adjacent(self):
     r1 = Range(start=datetime(2018, 1, 1), end=datetime(2018, 1, 10))
     r2 = Range(start=datetime(2018, 1, 11), end=datetime(2018, 1, 30))
     self.assertEqual(overlap_days(r1, r2), 0)
     self.assertEqual(overlap_days(r2, r1), 0)
示例#6
0
 def test_in_range_outside(self):
     r1 = Range(start=datetime(2018, 1, 11), end=datetime(2018, 1, 13))
     r2_1 = Range(start=datetime(2018, 1, 1), end=datetime(2018, 1, 5))
     r2_2 = Range(start=datetime(2018, 1, 15), end=datetime(2018, 1, 20))
     self.assertFalse(in_range(r1, r2_1))
     self.assertFalse(in_range(r1, r2_2))
示例#7
0
 def test_contains(self):
     r1 = Range(start=datetime(2018, 1, 1), end=datetime(2018, 1, 20))
     r2 = Range(start=datetime(2018, 1, 5), end=datetime(2018, 1, 12))
     self.assertEqual(overlap_days(r1, r2), 8)
     self.assertEqual(overlap_days(r2, r1), 8)
示例#8
0
 def test_some_overlap(self):
     r1 = Range(start=datetime(2018, 1, 1), end=datetime(2018, 1, 10))
     r2 = Range(start=datetime(2018, 1, 5), end=datetime(2018, 1, 20))
     self.assertEqual(overlap_days(r1, r2), 6)
     self.assertEqual(overlap_days(r2, r1), 6)
示例#9
0
 def test_overlap_boundary(self):
     r1 = Range(start=datetime(2018, 1, 1), end=datetime(2018, 1, 10))
     r2 = Range(start=datetime(2018, 1, 10), end=datetime(2018, 1, 20))
     self.assertEqual(overlap_days(r1, r2), 1)
     self.assertEqual(overlap_days(r2, r1), 1)
示例#10
0
 def test_overlap_same(self):
     r1 = Range(start=datetime(2018, 1, 1), end=datetime(2018, 1, 10))
     self.assertEqual(overlap_days(r1, r1), 10)