import time from gridverse.energi_bridge_skeleton import LocalProblem, SharedSignal, PlanDelta def test_local_problem_basic(): lp = LocalProblem(id="lp-001", name="test-problem", variables={"p1": 1.0}) d = lp.to_dict() assert d["id"] == "lp-001" assert d["name"] == "test-problem" assert d["variables"]["p1"] == 1.0 def test_shared_signal_basic_and_bump(): s = SharedSignal(name="forecast", value=12.5) old_version = s.version s.bump(13.0) assert s.value == 13.0 assert s.version == old_version + 1 assert isinstance(s.to_dict(), dict) def test_plan_delta_changes_and_serialization(): pd = PlanDelta(changes=[{"action": "set", "key": "v1", "val": 42}]) prev_version = pd.version pd.add_change({"action": "update", "key": "v1", "val": 43}) assert pd.version == prev_version + 1 as_dict = pd.to_dict() assert isinstance(as_dict, dict) assert "changes" in as_dict