""" Tests for config loading: shared.json inheritance and extends merging. """ import json import tempfile import unittest from pathlib import Path from src.utils.config import load_config class ConfigMergeTests(unittest.TestCase): def test_shared_and_extends_merge(self): with tempfile.TemporaryDirectory() as td: root = Path(td) cfg_dir = root / "configs" / "phaseX" cfg_dir.mkdir(parents=True) (root / "configs" / "shared.json").write_text(json.dumps({ "batch_size": 32, "lr": 1e-4, "augment": {"hflip_p": 0.5, "blur_p": 0.2}, })) (cfg_dir / "base.json").write_text(json.dumps({ "epochs": 10, "augment": {"hflip_p": 0.1}, })) (cfg_dir / "exp.json").write_text(json.dumps({ "extends": "base.json", "epochs": 15, "augment": {"blur_p": 0.0}, })) cfg = load_config(cfg_dir / "exp.json") self.assertEqual(cfg["batch_size"], 32) self.assertEqual(cfg["epochs"], 15) self.assertEqual(cfg["augment"]["hflip_p"], 0.1) self.assertEqual(cfg["augment"]["blur_p"], 0.0) if __name__ == "__main__": unittest.main()