idea15-edgemind-verifiable-.../tests/test_energi_bridge_ext.py

42 lines
1.5 KiB
Python

import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src")))
from idea15_edgemind_verifiable_onboard.energi_bridge import (
EnergiBridge,
LocalProblem,
DualVariables,
GovernanceLog,
PlanDelta,
)
def test_map_dual_variables_basic():
eb = EnergiBridge()
dv = DualVariables(signals={"shadow_cost": 0.5, "price": 1.2})
canon = eb.map_dual_variables(dv)
assert canon["canonical"] == "DualVariables"
assert canon["signals"]["shadow_cost"] == 0.5
assert canon["signals"]["price"] == 1.2
def test_map_governance_basic():
eb = EnergiBridge()
gv = GovernanceLog(entries=["gen-rule-1", "audit-2"])
canon = eb.map_governance(gv)
assert canon["canonical"] == "GovernanceLog"
assert canon["entries"] == ["gen-rule-1", "audit-2"]
def test_envelope_with_new_components():
eb = EnergiBridge()
lp = LocalProblem(asset_id="robot-03", tasks=["navigate"], budgets={"energy": 10.0})
delta = PlanDelta(timestamp=99.9, delta_actions=["turn"], safety_tags=["ok"])
dv = DualVariables(signals={"shadow_cost": 0.1})
gv = GovernanceLog(entries=["init"])
envelope = eb.export_envelope(lp=lp, delta=delta, signals=None, log=None, dv=dv, gv=gv)
assert envelope["canonical"] == "Envelope"
assert envelope["LocalProblem"]["asset_id"] == "robot-03"
assert envelope["DualVariables"]["signals"]["shadow_cost"] == 0.1
assert envelope["GovernanceLog"]["entries"] == ["init"]