Files
CI-templates/test-projects/python-basic/tests/test_calculator.py
T
2025-09-19 19:38:10 +02:00

47 lines
1.5 KiB
Python

"""Tests for the calculator module."""
import pytest
from test_package.calculator import Calculator
class TestCalculator:
"""Test cases for Calculator class."""
def setup_method(self):
"""Set up test fixtures."""
self.calc = Calculator()
def test_add(self):
"""Test addition operation."""
assert self.calc.add(2, 3) == 5
assert self.calc.add(-1, 1) == 0
assert self.calc.add(0.1, 0.2) == pytest.approx(0.3)
def test_subtract(self):
"""Test subtraction operation."""
assert self.calc.subtract(5, 3) == 2
assert self.calc.subtract(1, 1) == 0
assert self.calc.subtract(-1, -2) == 1
def test_multiply(self):
"""Test multiplication operation."""
assert self.calc.multiply(3, 4) == 12
assert self.calc.multiply(-2, 3) == -6
assert self.calc.multiply(0, 100) == 0
def test_divide(self):
"""Test division operation."""
assert self.calc.divide(10, 2) == 5.0
assert self.calc.divide(7, 2) == 3.5
assert self.calc.divide(-6, 3) == -2.0
def test_divide_by_zero(self):
"""Test division by zero raises error."""
with pytest.raises(ValueError, match="Cannot divide by zero"):
self.calc.divide(5, 0)
def test_power(self):
"""Test power operation."""
assert self.calc.power(2, 3) == 8
assert self.calc.power(5, 0) == 1
assert self.calc.power(2, -1) == 0.5