chapter 2.1 calculator project setup
This commit is contained in:
49
calculator/tests.py
Normal file
49
calculator/tests.py
Normal file
@@ -0,0 +1,49 @@
|
||||
# tests.py
|
||||
|
||||
import unittest
|
||||
from pkg.calculator import Calculator
|
||||
|
||||
|
||||
class TestCalculator(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.calculator = Calculator()
|
||||
|
||||
def test_addition(self):
|
||||
result = self.calculator.evaluate("3 + 5")
|
||||
self.assertEqual(result, 8)
|
||||
|
||||
def test_subtraction(self):
|
||||
result = self.calculator.evaluate("10 - 4")
|
||||
self.assertEqual(result, 6)
|
||||
|
||||
def test_multiplication(self):
|
||||
result = self.calculator.evaluate("3 * 4")
|
||||
self.assertEqual(result, 12)
|
||||
|
||||
def test_division(self):
|
||||
result = self.calculator.evaluate("10 / 2")
|
||||
self.assertEqual(result, 5)
|
||||
|
||||
def test_nested_expression(self):
|
||||
result = self.calculator.evaluate("3 * 4 + 5")
|
||||
self.assertEqual(result, 17)
|
||||
|
||||
def test_complex_expression(self):
|
||||
result = self.calculator.evaluate("2 * 3 - 8 / 2 + 5")
|
||||
self.assertEqual(result, 7)
|
||||
|
||||
def test_empty_expression(self):
|
||||
result = self.calculator.evaluate("")
|
||||
self.assertIsNone(result)
|
||||
|
||||
def test_invalid_operator(self):
|
||||
with self.assertRaises(ValueError):
|
||||
self.calculator.evaluate("$ 3 5")
|
||||
|
||||
def test_not_enough_operands(self):
|
||||
with self.assertRaises(ValueError):
|
||||
self.calculator.evaluate("+ 3")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user