Skip to content

Commit 7c64637

Browse files
authored
Grains : sync expected test results and input data with problem-specifications (#1794)
* grains: sync expected test results and input data with problem-specifications.
2 parents 09b499c + 107cc5a commit 7c64637

File tree

3 files changed

+29
-33
lines changed

3 files changed

+29
-33
lines changed

exercises/grains/example.py

+12-13
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
1-
def on_square(square):
2-
check_square_input(square)
3-
return 2 ** (square - 1)
1+
def square(number):
2+
check_square_input(number)
43

4+
return 2 ** (number - 1)
55

6-
def total_after(square):
7-
check_square_input(square)
8-
return sum(
9-
on_square(n + 1) for n
10-
in range(square)
11-
)
126

7+
def total(number):
8+
check_square_input(number)
139

14-
def check_square_input(square):
15-
if square == 0:
10+
return sum(square(n + 1) for n in range(number))
11+
12+
13+
def check_square_input(number):
14+
if number == 0:
1615
raise ValueError("Square input of zero is invalid.")
17-
elif square < 0:
16+
elif number < 0:
1817
raise ValueError("Negative square input is invalid.")
19-
elif square > 64:
18+
elif number > 64:
2019
raise ValueError("Square input greater than 64 is invalid.")

exercises/grains/grains.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
def on_square(integer_number):
1+
def square(number):
22
pass
33

44

5-
def total_after(integer_number):
5+
def total(number):
66
pass

exercises/grains/grains_test.py

+15-18
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,52 @@
11
import unittest
22

3-
from grains import (
4-
on_square,
5-
total_after,
6-
)
3+
from grains import square, total
74

85

96
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
107

118
class GrainsTest(unittest.TestCase):
129
def test_square_1(self):
13-
self.assertEqual(on_square(1), 1)
10+
self.assertEqual(square(1), 1)
1411

1512
def test_square_2(self):
16-
self.assertEqual(on_square(2), 2)
13+
self.assertEqual(square(2), 2)
1714

1815
def test_square_3(self):
19-
self.assertEqual(on_square(3), 4)
16+
self.assertEqual(square(3), 4)
2017

2118
def test_square_4(self):
22-
self.assertEqual(on_square(4), 8)
19+
self.assertEqual(square(4), 8)
2320

2421
def test_square_16(self):
25-
self.assertEqual(on_square(16), 32768)
22+
self.assertEqual(square(16), 32768)
2623

2724
def test_square_32(self):
28-
self.assertEqual(on_square(32), 2147483648)
25+
self.assertEqual(square(32), 2147483648)
2926

3027
def test_square_64(self):
31-
self.assertEqual(on_square(64), 9223372036854775808)
28+
self.assertEqual(square(64), 9223372036854775808)
3229

3330
def test_square_0_raises_exception(self):
3431
with self.assertRaisesWithMessage(ValueError):
35-
on_square(0)
32+
square(0)
3633
with self.assertRaisesWithMessage(ValueError):
37-
total_after(0)
34+
total(0)
3835

3936
def test_square_negative_raises_exception(self):
4037
with self.assertRaisesWithMessage(ValueError):
41-
on_square(-1)
38+
square(-1)
4239
with self.assertRaisesWithMessage(ValueError):
43-
total_after(-1)
40+
total(-1)
4441

4542
def test_square_gt_64_raises_exception(self):
4643
with self.assertRaisesWithMessage(ValueError):
47-
on_square(65)
44+
square(65)
4845
with self.assertRaisesWithMessage(ValueError):
49-
total_after(65)
46+
total(65)
5047

5148
def test_total(self):
52-
self.assertEqual(total_after(64), 18446744073709551615)
49+
self.assertEqual(total(64), 18446744073709551615)
5350

5451
# Utility functions
5552
def setUp(self):

0 commit comments

Comments
 (0)