Есть калькулятор и тест к нему, но при запуске тестов скрипт запрашивает ввод чисел. Необходимо, чтобы при запуске скрипта с тестом числа и операция либо вводилась автоматически, либо убраны, просто пройти проверки и быть выведены результаты.
Калькулятор:
class Calculator:
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2
def add(self):
return self.num1 + self.num2
def subtract(self):
return self.num1 - self.num2
def multiply(self):
return self.num1 * self.num2
def divide(self):
try:
return self.num1 / self.num2
except ZeroDivisionError:
return "Деление на ноль невозможно"
num1 = float(input("Введите первое число: "))
num2 = float(input("Введите второе число: "))
calculator = Calculator(num1, num2)
print("Выберите операцию: ")
print("1. Сложение")
print("2. Вычитание")
print("3. Умножение")
print("4. Деление")
choice = input("Введите номер операции (1/2/3/4): ")
if choice == '1':
print(calculator.num1, "+", calculator.num2, "=", calculator.add())
elif choice == '2':
print(calculator.num1, "-", calculator.num2, "=", calculator.subtract())
elif choice == '3':
print(calculator.num1, "*", calculator.num2, "=", calculator.multiply())
elif choice == '4':
print(calculator.num1, "/", calculator.num2, "=", calculator.divide())
else:
print("Неверный номер операции.")
Код теста:
import unittest
from calculator import Calculator
class TestCalculator(unittest.TestCase):
def test_add(self):
calculator = Calculator(2, 3)
self.assertEqual(calculator.add(), 5)
def test_subtract(self):
calculator = Calculator(10, 5)
self.assertEqual(calculator.subtract(), 5)
def test_multiply(self):
calculator = Calculator(4, 8)
self.assertEqual(calculator.multiply(), 32)
def test_divide(self):
calculator = Calculator(10, 2)
self.assertEqual(calculator.divide(), 5)
calculator = Calculator(7, 0)
self.assertEqual(calculator.divide(), "Деление на ноль невозможно")
if __name__ == '__main__':
unittest.main()