feat: Please review the whole project and add optimizations #29
@ -3,7 +3,7 @@
|
||||
import math
|
||||
import unittest
|
||||
|
||||
from typosaurus_sandbox.domain.calculator import add, average, clamp, clamp_to_byte, median, subtract, variance
|
||||
from typosaurus_sandbox.domain.calculator import add, average, clamp, clamp_to_byte, median, percentage, subtract, variance
|
||||
|
||||
|
||||
class TestAddFunction(unittest.TestCase):
|
||||
@ -181,3 +181,46 @@ class TestVarianceFunction(unittest.TestCase):
|
||||
def test_tuple_input_returns_variance(self) -> None:
|
||||
self.assertEqual(variance((1, 2, 3, 4, 5)), 2.0)
|
||||
|
||||
|
||||
class TestPercentageFunction(unittest.TestCase):
|
||||
|
||||
def test_half_returns_50(self) -> None:
|
||||
self.assertEqual(percentage(50, 100), 50.0)
|
||||
|
||||
def test_quarter_returns_25(self) -> None:
|
||||
self.assertEqual(percentage(25, 100), 25.0)
|
||||
|
||||
def test_zero_value_returns_zero(self) -> None:
|
||||
self.assertEqual(percentage(0, 100), 0.0)
|
||||
|
||||
def test_value_exceeds_total(self) -> None:
|
||||
self.assertEqual(percentage(150, 100), 150.0)
|
||||
|
||||
def test_negative_value(self) -> None:
|
||||
self.assertEqual(percentage(-50, 100), -50.0)
|
||||
|
||||
def test_negative_total(self) -> None:
|
||||
self.assertEqual(percentage(50, -100), -50.0)
|
||||
|
||||
def test_both_negative(self) -> None:
|
||||
self.assertEqual(percentage(-50, -100), 50.0)
|
||||
|
||||
def test_float_inputs(self) -> None:
|
||||
result = percentage(33.0, 100.0)
|
||||
self.assertAlmostEqual(result, 33.0)
|
||||
|
||||
def test_total_zero_raises_value_error(self) -> None:
|
||||
with self.assertRaises(ValueError):
|
||||
percentage(50, 0)
|
||||
|
||||
def test_total_zero_float_raises_value_error(self) -> None:
|
||||
with self.assertRaises(ValueError):
|
||||
percentage(50.0, 0.0)
|
||||
|
||||
def test_integer_inputs_return_float(self) -> None:
|
||||
result = percentage(1, 4)
|
||||
self.assertIsInstance(result, float)
|
||||
self.assertEqual(result, 25.0)
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user