Esempio n. 1
0
    def test_custom_object(self):
        class NonPrimitive:
            def __init__(self, value):
                self.value = value

            def __eq__(self, other):
                return self.value == other.value

            def __add__(self, other):
                return NonPrimitive(self.value + other.value)

        values = [NonPrimitive(v) for v in (1, 2, 3, 99, 4, 5)]
        self.assertEqual((2, 3), find_sum_range(values, NonPrimitive(102)))
Esempio n. 2
0
def part_two(values, invalid_target):
    [start_index, end_index] = find_sum_range(values, invalid_target)
    invalid_range = values[start_index:end_index + 1]
    result = min(invalid_range) + max(invalid_range)
    return result
Esempio n. 3
0
 def test_single_item(self):
     self.assertEqual((3, 3), find_sum_range([1, 2, 3, 99, 4, 5], 99))
Esempio n. 4
0
 def test_full_list(self):
     self.assertEqual((0, 5), find_sum_range([1, 2, 3, 99, 4, 5], 114))
Esempio n. 5
0
 def test_centre(self):
     self.assertEqual((2, 4), find_sum_range([1, 2, 3, 99, 4, 5], 106))
Esempio n. 6
0
 def test_end(self):
     self.assertEqual((2, 4), find_sum_range([1, 2, 3, 4, 5], 12))
Esempio n. 7
0
 def test_start_zero(self):
     self.assertEqual((0, 2), find_sum_range([1, 2, -3, 3, 4, 5], 0))
Esempio n. 8
0
 def test_start(self):
     self.assertEqual((0, 2), find_sum_range([1, 2, 3, 4, 5], 6))
Esempio n. 9
0
 def test_NoSuchRange(self):
     self.assertIsNone(find_sum_range([1, 2, 3, 4], 99))