from corrlib import tools as tl from configparser import ConfigParser import os from pathlib import Path def test_m2k() -> None: for m in [0.1, 0.5, 1.0]: expected_k = 1 / (2 * m + 8) assert tl.m2k(m) == expected_k def test_k2m() -> None: for m in [0.1, 0.5, 1.0]: assert tl.k2m(m) == (1/(2*m))-4 def test_k2m_m2k() -> None: for m in [0.1, 0.5, 1.0]: k = tl.m2k(m) m_converted = tl.k2m(k) assert abs(m - m_converted) < 1e-9 def test_str2list() -> None: assert tl.str2list("a,b,c") == ["a", "b", "c"] assert tl.str2list("1,2,3") == ["1", "2", "3"] def test_list2str() -> None: assert tl.list2str(["a", "b", "c"]) == "a,b,c" assert tl.list2str(["1", "2", "3"]) == "1,2,3" def test_set_config(tmp_path: Path) -> None: section = "core" option = "test_option" value = "test_value" # config is not yet available tl.set_config(tmp_path, section, option, value) config_path = os.path.join(tmp_path, '.corrlib') config = ConfigParser() config.read(config_path) assert config.get('core', 'test_option', fallback="not the value") == "test_value" # now, a config file is already present section = "core" option = "test_option2" value = "test_value2" tl.set_config(tmp_path, section, option, value) config_path = os.path.join(tmp_path, '.corrlib') config = ConfigParser() config.read(config_path) assert config.get('core', 'test_option2', fallback="not the value") == "test_value2" # update option 2 section = "core" option = "test_option2" value = "test_value3" tl.set_config(tmp_path, section, option, value) config_path = os.path.join(tmp_path, '.corrlib') config = ConfigParser() config.read(config_path) assert config.get('core', 'test_option2', fallback="not the value") == "test_value3" def test_get_db_file(tmp_path: Path) -> None: section = "paths" option = "db" value = "test_value" # config is not yet available tl.set_config(tmp_path, section, option, value) assert tl.get_db_file(tmp_path) == "test_value" def test_cache_enabled(tmp_path: Path) -> None: section = "core" option = "cached" value = "True" # config is not yet available tl.set_config(tmp_path, section, option, value) assert tl.get_db_file(tmp_path)