42 lines
1.5 KiB
Python
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"]
|