35 lines
1.1 KiB
Python
35 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_with_default
|
|
|
|
class TestUtils(unittest.TestCase):
|
|
def test_str_to_number_with_default(self):
|
|
# Test integer conversion
|
|
self.assertEqual(str_to_number_with_default("42", 0), 42)
|
|
|
|
# Test float conversion
|
|
self.assertEqual(str_to_number_with_default("3.14", 0.0), 3.14)
|
|
|
|
# Test negative integer
|
|
self.assertEqual(str_to_number_with_default("-10", 0), -10)
|
|
|
|
# Test negative float
|
|
self.assertEqual(str_to_number_with_default("-2.71", 0.0), -2.71)
|
|
|
|
# Test zero
|
|
self.assertEqual(str_to_number_with_default("0", 1), 0)
|
|
self.assertEqual(str_to_number_with_default("0.0", 1.0), 0.0)
|
|
|
|
# Test empty string returning default value
|
|
self.assertEqual(str_to_number_with_default("", 42), 42)
|
|
self.assertEqual(str_to_number_with_default("", -3.5), -3.5)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|