how to make a calculator: tests and solutions
tests
the code in calculator/tests/test_calculator.py from how to make a calculator
1import random
2import src.calculator
3import unittest
4
5
6def a_random_number():
7 return random.triangular(-10, 10)
8
9
10class TestCalculator(unittest.TestCase):
11
12 random_first_number = a_random_number()
13 random_second_number = a_random_number()
14
15 def test_addition(self):
16 self.assertEqual(
17 src.calculator.add(
18 self.random_first_number,
19 self.random_second_number
20 ),
21 self.random_first_number+self.random_second_number
22 )
23
24 def test_subtraction(self):
25 self.assertEqual(
26 src.calculator.subtract(
27 self.random_first_number,
28 self.random_second_number
29 ),
30 self.random_first_number-self.random_second_number
31 )
32
33 def test_multiplication(self):
34 self.assertEqual(
35 src.calculator.multiply(
36 self.random_first_number,
37 self.random_second_number
38 ),
39 self.random_first_number*self.random_second_number
40 )
41
42 def test_division(self):
43 self.assertEqual(
44 src.calculator.divide(
45 self.random_first_number,
46 self.random_second_number
47 ),
48 self.random_first_number/self.random_second_number
49 )
50
51
52# Exceptions seen
53# AssertionError
54# NameError
55# AttributeError
56# TypeError
solutions
the solutions in calculator/src/calculator.py from how to make a calculator
1def add(first_input, second_input):
2 return first_input + second_input
3
4
5def subtract(first_input, second_input):
6 return first_input - second_input
7
8
9def multiply(first_input, second_input):
10 return first_input * second_input
11
12
13def divide(first_input, second_input):
14 return first_input / second_input