diff --git a/sum-of-multiples/example.py b/sum-of-multiples/example.py index cd993c6407d..2fc6adc5469 100644 --- a/sum-of-multiples/example.py +++ b/sum-of-multiples/example.py @@ -1,7 +1,7 @@ class SumOfMultiples(object): def __init__(self, *args): - self.numbers = args if args else [3, 5] + self.numbers = args or (3, 5) def to(self, limit): return sum(n @@ -9,5 +9,5 @@ def to(self, limit): if self.is_multiple(n)) def is_multiple(self, m): - return any(m % n == 0 + return any(n != 0 and m % n == 0 for n in self.numbers) diff --git a/sum-of-multiples/sum_of_multiples_test.py b/sum-of-multiples/sum_of_multiples_test.py index e507f5e721b..9d6116dbbb5 100644 --- a/sum-of-multiples/sum_of_multiples_test.py +++ b/sum-of-multiples/sum_of_multiples_test.py @@ -7,7 +7,7 @@ class SumOfMultiplesTest(unittest.TestCase): def test_sum_to_1(self): self.assertEqual(0, SumOfMultiples().to(1)) - def test_sum_to_3(self): + def test_sum_to_4(self): self.assertEqual(3, SumOfMultiples().to(4)) def test_sum_to_10(self): @@ -22,6 +22,15 @@ def test_configurable_7_13_17_to_20(self): def test_configurable_43_47_to_10000(self): self.assertEqual(2203160, SumOfMultiples(43, 47).to(10000)) + def test_configurable_20_24_25_to_800(self): + self.assertEqual(36144, SumOfMultiples(20, 24, 25).to(800)) + + def test_configurable_0_to_10(self): + self.assertEqual(0, SumOfMultiples(0).to(10)) + + def test_configurable_0_1_to_10(self): + self.assertEqual(45, SumOfMultiples(0, 1).to(10)) + if __name__ == '__main__': unittest.main()