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"]