Skip to content

Commit cb49ef8

Browse files
GascaKcmccandless
authored andcommitted
sum-of-multiples: update tests to v1.5.0 (exercism#1603)
* sum-of-multiples: update tests to v1.5.0 Fixes exercism#1580 * Updated 3 test cases to conform to canonical data (reordered list to fit the ascending order convention) * Updated example to check for ZeroDivisionError * sum-of-multiples: pep8 formatting connotation Small edits to conform to Pep8 standards * sum-of-multiples: pep8 formatting connotation Even smaller updates to conform to pep8 * sum-of_multiples: update import list Change import to link to correct file * sum-of-multiples: update tests to v1.5.0 * Updated test case names to reflect significance of each case. * Updated example.py for brevity * sum-of-multiples: update * Delete blank line
1 parent 4f2cb92 commit cb49ef8

2 files changed

Lines changed: 26 additions & 15 deletions

File tree

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
def sum_of_multiples(limit, multiples):
22
return sum(value for value in range(limit)
33
if any(value % multiple == 0
4-
for multiple in multiples))
4+
for multiple in multiples
5+
if multiple > 0))

exercises/sum-of-multiples/sum_of_multiples_test.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,48 +12,58 @@
1212
from sum_of_multiples import sum_of_multiples
1313

1414

15-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
15+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.5.0
1616

1717
class SumOfMultiplesTest(unittest.TestCase):
18-
def test_multiples_of_3_or_5_up_to_1(self):
18+
def test_multiples_with_no_factors_in_limit(self):
1919
self.assertEqual(sum_of_multiples(1, [3, 5]), 0)
2020

21-
def test_multiples_of_3_or_5_up_to_4(self):
21+
def test_multiples_of_one_factor_within_limit(self):
2222
self.assertEqual(sum_of_multiples(4, [3, 5]), 3)
2323

24-
def test_multiples_of_3_up_to_7(self):
24+
def test_various_multiples_in_limit(self):
2525
self.assertEqual(sum_of_multiples(7, [3]), 9)
2626

27-
def test_multiples_of_3_or_5_up_to_10(self):
27+
def test_various_factors_with_multiples_in_limit(self):
2828
self.assertEqual(sum_of_multiples(10, [3, 5]), 23)
2929

30-
def test_multiples_of_3_or_5_up_to_100(self):
30+
def test_multiples_counted_only_once(self):
3131
self.assertEqual(sum_of_multiples(100, [3, 5]), 2318)
3232

33-
def test_multiples_of_3_or_5_up_to_1000(self):
33+
def test_multiples_with_large_limit(self):
3434
self.assertEqual(sum_of_multiples(1000, [3, 5]), 233168)
3535

36-
def test_multiples_of_7_13_or_17_up_to_20(self):
36+
def test_multiples_with_three_factors(self):
3737
self.assertEqual(sum_of_multiples(20, [7, 13, 17]), 51)
3838

39-
def test_multiples_of_4_or_6_up_to_15(self):
39+
def test_multiples_with_factors_not_prime(self):
4040
self.assertEqual(sum_of_multiples(15, [4, 6]), 30)
4141

42-
def test_multiples_of_5_6_or_8_up_to_150(self):
42+
def test_multiples_with_factors_prime_and_not(self):
4343
self.assertEqual(sum_of_multiples(150, [5, 6, 8]), 4419)
4444

45-
def test_multiples_of_5_or_25_up_to_51(self):
45+
def test_multiples_with_similar_factors(self):
4646
self.assertEqual(sum_of_multiples(51, [5, 25]), 275)
4747

48-
def test_multiples_of_43_or_47_up_to_10000(self):
48+
def test_multiples_with_large_factors(self):
4949
self.assertEqual(sum_of_multiples(10000, [43, 47]), 2203160)
5050

51-
def test_multiples_of_1_up_to_100(self):
51+
def test_multiples_of_one_will_be_all(self):
5252
self.assertEqual(sum_of_multiples(100, [1]), 4950)
5353

54-
def test_multiples_of_an_empty_list_up_to_10000(self):
54+
def test_multiples_of_an_empty_list(self):
5555
self.assertEqual(sum_of_multiples(10000, []), 0)
5656

57+
def test_multiples_of_zero_will_be_none(self):
58+
self.assertEqual(sum_of_multiples(1, [0]), 0)
59+
60+
def test_multiples_with_a_zero_factor(self):
61+
self.assertEqual(sum_of_multiples(4, [0, 3]), 3)
62+
63+
def test_multiples_of_several_factors(self):
64+
self.assertEqual(sum_of_multiples(10000,
65+
[2, 3, 5, 7, 11]), 39614537)
66+
5767

5868
if __name__ == '__main__':
5969
unittest.main()

0 commit comments

Comments
 (0)