|
# retoor <retoor@molodetz.nl>
|
|
|
|
import unittest
|
|
|
|
from src.calculator import add, subtract, multiply, divide
|
|
|
|
|
|
class TestCalculator(unittest.TestCase):
|
|
|
|
def test_add(self) -> None:
|
|
self.assertEqual(add(2, 3), 5)
|
|
|
|
def test_subtract(self) -> None:
|
|
self.assertEqual(subtract(5, 3), 2)
|
|
|
|
def test_multiply_positive(self) -> None:
|
|
self.assertEqual(multiply(2, 3), 6)
|
|
|
|
def test_multiply_negative_left(self) -> None:
|
|
self.assertEqual(multiply(-2, 3), -6)
|
|
|
|
def test_multiply_negative_right(self) -> None:
|
|
self.assertEqual(multiply(2, -3), -6)
|
|
|
|
def test_multiply_both_negative(self) -> None:
|
|
self.assertEqual(multiply(-2, -3), 6)
|
|
|
|
def test_multiply_zero_left(self) -> None:
|
|
self.assertEqual(multiply(0, 5), 0)
|
|
|
|
def test_multiply_zero_right(self) -> None:
|
|
self.assertEqual(multiply(5, 0), 0)
|
|
|
|
def test_multiply_both_zero(self) -> None:
|
|
self.assertEqual(multiply(0, 0), 0)
|
|
|
|
def test_divide_positive(self) -> None:
|
|
self.assertEqual(divide(6, 3), 2)
|
|
|
|
def test_divide_negative_left(self) -> None:
|
|
self.assertEqual(divide(-6, 3), -2)
|
|
|
|
def test_divide_negative_right(self) -> None:
|
|
self.assertEqual(divide(6, -3), -2)
|
|
|
|
def test_divide_both_negative(self) -> None:
|
|
self.assertEqual(divide(-6, -3), 2)
|
|
|
|
def test_divide_floor(self) -> None:
|
|
self.assertEqual(divide(7, 3), 2)
|
|
|
|
def test_divide_zero_numerator(self) -> None:
|
|
self.assertEqual(divide(0, 5), 0)
|
|
|
|
def test_divide_by_zero(self) -> None:
|
|
with self.assertRaises(ValueError) as cm:
|
|
divide(5, 0)
|
|
self.assertEqual(str(cm.exception), 'division by zero')
|