commit 91e6de343131169e9bfdecae523d1e3bcf3337a7 Author: group05_tongshizheng Date: Thu Apr 2 21:03:03 2026 +0800 Add calculator with unit tests diff --git a/calculator.py b/calculator.py new file mode 100644 index 0000000..c4fd5e4 --- /dev/null +++ b/calculator.py @@ -0,0 +1,14 @@ +class Calculator: + def add(self, a, b): + return a + b + + def subtract(self, a, b): + return a - b + + def multiply(self, a, b): + return a * b + + def divide(self, a, b): + if b == 0: + raise ValueError("Division by zero is not allowed") + return a / b \ No newline at end of file diff --git a/test_calculator.py b/test_calculator.py new file mode 100644 index 0000000..d340356 --- /dev/null +++ b/test_calculator.py @@ -0,0 +1,27 @@ +import unittest +from calculator import Calculator + +class TestCalculator(unittest.TestCase): + def setUp(self): + self.calc = Calculator() + + def test_add(self): + self.assertEqual(self.calc.add(2, 3), 5) + self.assertEqual(self.calc.add(-1, 1), 0) + + def test_subtract(self): + self.assertEqual(self.calc.subtract(5, 3), 2) + self.assertEqual(self.calc.subtract(0, 0), 0) + + def test_multiply(self): + self.assertEqual(self.calc.multiply(2, 3), 6) + self.assertEqual(self.calc.multiply(-1, 5), -5) + + def test_divide(self): + self.assertEqual(self.calc.divide(6, 3), 2) + self.assertEqual(self.calc.divide(5, 2), 2.5) + with self.assertRaises(ValueError): + self.calc.divide(1, 0) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file