gridverse-open-low-code-pla.../tests/test_energi_bridge_skeleton.py

30 lines
939 B
Python

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