48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
"""calc.py 的测试 —— dim4 fixture(禁止被测模型修改本文件)。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from calc import add, average, clamp, div
|
|
|
|
|
|
class TestAdd(unittest.TestCase):
|
|
def test_basic(self):
|
|
self.assertEqual(add(1, 2), 3)
|
|
|
|
def test_float(self):
|
|
self.assertAlmostEqual(add(0.1, 0.2), 0.3, places=6)
|
|
|
|
|
|
class TestDiv(unittest.TestCase):
|
|
def test_basic(self):
|
|
self.assertEqual(div(6, 3), 2)
|
|
|
|
def test_zero_raises_value_error(self):
|
|
with self.assertRaises(ValueError):
|
|
div(1, 0)
|
|
|
|
|
|
class TestAverage(unittest.TestCase):
|
|
def test_basic(self):
|
|
self.assertEqual(average([1, 2, 3]), 2.0)
|
|
|
|
def test_empty_returns_zero(self):
|
|
self.assertEqual(average([]), 0.0)
|
|
|
|
|
|
class TestClamp(unittest.TestCase):
|
|
def test_inside(self):
|
|
self.assertEqual(clamp(5, 0, 10), 5)
|
|
|
|
def test_below(self):
|
|
self.assertEqual(clamp(-3, 0, 10), 0)
|
|
|
|
def test_above(self):
|
|
self.assertEqual(clamp(99, 0, 10), 10)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|