def test_with_three_points_and_length_as_1(self): segments = solve([0, 1, 2], 1) self.assertEqual(2, len(segments)) self.assertEqual(0, segments[0].start) self.assertEqual(1, segments[0].end) self.assertEqual(2, segments[1].start) self.assertEqual(3, segments[1].end)
def test_with_two_points_and_length_as_0(self): segments = solve([0, 1], 0) self.assertEqual(2, len(segments)) self.assertEqual(0, segments[0].start) self.assertEqual(0, segments[0].end) self.assertEqual(1, segments[1].start) self.assertEqual(1, segments[1].end)
def test_with_several_points_and_length_as_9(self): segments = solve([-5, -4, -2, -1, 3, 4, 6, 9], 9) self.assertEqual(2, len(segments)) self.assertEqual(-5, segments[0].start) self.assertEqual(4, segments[0].end) self.assertEqual(6, segments[1].start) self.assertEqual(15, segments[1].end)
def test_with_several_points_and_length_as_13(self): segments = solve([-5, -4, -2, -1, 3, 4, 6, 9], 13) self.assertEqual(2, len(segments)) self.assertEqual(-5, segments[0].start) self.assertEqual(8, segments[0].end) self.assertEqual(9, segments[1].start) self.assertEqual(22, segments[1].end)
def test_with_several_points_and_length_as_5(self): segments = solve([-5, -4, -2, -1, 3, 4, 6, 9], 5) self.assertEqual(3, len(segments)) self.assertEqual(-5, segments[0].start) self.assertEqual(0, segments[0].end) self.assertEqual(3, segments[1].start) self.assertEqual(8, segments[1].end) self.assertEqual(9, segments[2].start) self.assertEqual(14, segments[2].end)
def test_with_several_points_and_length_as_3(self): segments = solve([-5, -4, -2, -1, 3, 4, 6, 9], 3) self.assertEqual(4, len(segments)) self.assertEqual(-5, segments[0].start) self.assertEqual(-2, segments[0].end) self.assertEqual(-1, segments[1].start) self.assertEqual(2, segments[1].end) self.assertEqual(3, segments[2].start) self.assertEqual(6, segments[2].end) self.assertEqual(9, segments[3].start) self.assertEqual(12, segments[3].end)
def test_with_several_points_and_length_as_2(self): segments = solve([-5, -4, -2, -1, 3, 4, 6, 9], 2) self.assertEqual(5, len(segments)) self.assertEqual(-5, segments[0].start) self.assertEqual(-3, segments[0].end) self.assertEqual(-2, segments[1].start) self.assertEqual(0, segments[1].end) self.assertEqual(3, segments[2].start) self.assertEqual(5, segments[2].end) self.assertEqual(6, segments[3].start) self.assertEqual(8, segments[3].end) self.assertEqual(9, segments[4].start) self.assertEqual(11, segments[4].end)
def test_with_two_close_points_and_length_as_2(self): segments = solve([0, 1], 2) self.assertEqual(1, len(segments)) self.assertEqual(0, segments[0].start) self.assertEqual(2, segments[0].end)
def test_with_one_point_and_length_as_1(self): segments = solve([0], 1) self.assertEqual(1, len(segments)) self.assertEqual(0, segments[0].start) self.assertEqual(1, segments[0].end)
def test_with_several_points_and_length_as_15(self): segments = solve([-5, -4, -2, -1, 3, 4, 6, 9], 15) self.assertEqual(1, len(segments)) self.assertEqual(-5, segments[0].start) self.assertEqual(10, segments[0].end)
def test_with_empty_points_and_length_as_1(self): segments = solve([], 1) self.assertEqual(0, len(segments))
def test_with_preceeding_lower_bound_of_length(self): solve([1, 2], -1)