8.3 טסטים פתרון
# calculator.py
class Calculator:
def add(self, x, y):
return x + y
def subtract(self, x, y):
return x - y
def multiply(self, x, y):
return x * y
def divide(self, x, y):
if y == 0:
raise ValueError("Cannot divide by zero!")
return x / y
# test_calculator.py
import pytest
from calculator import Calculator
@pytest.fixture
def calculator():
return Calculator()
def test_add(calculator):
assert calculator.add(1, 2) == 3
assert calculator.add(-1, 1) == 0
assert calculator.add(0, 0) == 0
def test_subtract(calculator):
assert calculator.subtract(5, 2) == 3
assert calculator.subtract(1, -1) == 2
assert calculator.subtract(0, 0) == 0
def test_multiply(calculator):
assert calculator.multiply(2, 3) == 6
assert calculator.multiply(-2, 3) == -6
assert calculator.multiply(0, 5) == 0
def test_divide(calculator):
assert calculator.divide(6, 2) == 3
assert calculator.divide(5, 2) == 2.5
with pytest.raises(ValueError):
calculator.divide(1, 0)