40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import os
|
|
import sys
|
|
import unittest
|
|
|
|
PROJECT_ROOT = os.path.realpath(os.path.join(os.path.dirname(__file__), "..", ".."))
|
|
MODULE_ROOT = os.path.join(PROJECT_ROOT, "modules")
|
|
sys.path.append(MODULE_ROOT)
|
|
|
|
from cda.utils import str_to_number
|
|
|
|
class TestUtils(unittest.TestCase):
|
|
def test_str_to_number(self):
|
|
# Test integer conversion
|
|
self.assertEqual(str_to_number("42"), 42)
|
|
|
|
# Test float conversion
|
|
self.assertEqual(str_to_number("3.14"), 3.14)
|
|
|
|
# Test negative integer
|
|
self.assertEqual(str_to_number("-10"), -10)
|
|
|
|
# Test negative float
|
|
self.assertEqual(str_to_number("-2.71"), -2.71)
|
|
|
|
# Test zero
|
|
self.assertEqual(str_to_number("0"), 0)
|
|
self.assertEqual(str_to_number("0.0"), 0.0)
|
|
|
|
# Test invalid input (empty string)
|
|
with self.assertRaises(ValueError):
|
|
str_to_number("")
|
|
|
|
# Test invalid input (non-numeric string)
|
|
with self.assertRaises(ValueError):
|
|
str_to_number("abc")
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|
|
|