-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_calculator.py
54 lines (43 loc) · 1.53 KB
/
test_calculator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import unittest
from Calc import CalculatorLogic
class TestCalculatorLogic(unittest.TestCase):
def setUp(self):
self.calc = CalculatorLogic()
def test_btn_click(self):
# Test button click functionality
self.assertEqual(self.calc.btn_click(7), '7')
self.assertEqual(self.calc.btn_click('+'), '7+')
self.assertEqual(self.calc.btn_click(5), '7+5')
def test_clear(self):
# Test the clear functionality
self.calc.btn_click(7)
self.calc.btn_click('+')
self.calc.btn_click(5)
self.assertEqual(self.calc.clear(), '')
def test_delete(self):
# Test delete functionality
self.calc.btn_click(7)
self.calc.btn_click('+')
self.calc.btn_click(5)
self.assertEqual(self.calc.delete(), '7+')
self.assertEqual(self.calc.delete(), '7')
def test_answer(self):
# Test valid answers
self.calc.btn_click(7)
self.calc.btn_click('+')
self.calc.btn_click(5)
self.assertEqual(self.calc.answer(), '12')
# Test division by zero (error case)
self.calc.clear()
self.calc.btn_click(7)
self.calc.btn_click('/')
self.calc.btn_click(0)
self.assertEqual(self.calc.answer(), 'Error')
# Test invalid expression (error case)
self.calc.clear()
self.calc.btn_click(7)
self.calc.btn_click('/')
self.calc.btn_click('+')
self.assertEqual(self.calc.answer(), 'Error')
if __name__ == '__main__':
unittest.main()