diff --git a/tests/test_interop_bridge.py b/tests/test_interop_bridge.py new file mode 100644 index 0000000..5eee01d --- /dev/null +++ b/tests/test_interop_bridge.py @@ -0,0 +1,29 @@ +import time + +from nova_plan.planner import LocalProblem +from nova_plan.contracts import PlanDelta +from nova_plan.interop_catopt import local_to_canon, canon_delta_to_morphism +from nova_plan.catopt_bridge import ObjectI, Morphism + + +def test_local_to_canon_wrapper_returns_objectI(): + lp = LocalProblem( + id="interop-agent", + objective=lambda v, s: sum(v.values()) + sum(s.values()), + variables={"x": 3.0}, + constraints={}, + ) + obj = local_to_canon(lp) + assert isinstance(obj, ObjectI) + assert obj.id == "interop-agent" + assert "variables" in obj.payload + + +def test_canon_delta_from_plan_delta(): + d = PlanDelta(agent_id="interop-agent", delta={"x": 0.25}, timestamp=time.time()) + m = canon_delta_to_morphism(d) + assert isinstance(m, Morphism) + assert m.source == "interop-agent" + assert m.target == "global" + assert m.data == {"x": 0.25} + assert m.contract_id == "default"