cosmosmesh-privacy-preservi.../tests/contracts_test.py

33 lines
967 B
Python

import json
import time
from cosmosmesh_privacy_preserving_federated.contracts import LocalProblem, GraphOfContracts
def test_local_problem_json_roundtrip():
lp = LocalProblem(
agent_id="rover-1",
variables={"x": 1.0, "y": 2.0},
objective={"coef": 0.5},
constraints={"type": "ineq", "limit": 10.0},
version="v0.1",
)
payload = lp.to_json()
lp2 = LocalProblem.from_json(payload)
assert lp2.agent_id == lp.agent_id
assert lp2.variables == lp.variables
assert lp2.version == lp.version
def test_graph_of_contracts_registry():
g = GraphOfContracts()
g.register("LocalProblem", "v0.1")
g.register("PlanDelta", "v0.2")
assert g.get_version("LocalProblem") == "v0.1"
assert g.get_version("PlanDelta") == "v0.2"
# ensure JSON export works and is parseable
data = g.to_json()
assert isinstance(data, str)
parsed = json.loads(data)
assert "LocalProblem" in parsed