catopt-graph-graph-calculus.../tests/test_bridge.py

43 lines
1.2 KiB
Python

import unittest
def _to_canonical_local(local_problem: dict) -> dict:
return {
"LocalProblem": {
"id": local_problem.get("id"),
"domain": local_problem.get("domain", "unknown"),
"objective": local_problem.get("objective"),
"variables": local_problem.get("variables", {}),
}
}
def _from_canonical_local(canonical: dict) -> dict:
lp = canonical.get("LocalProblem", {})
return {
"id": lp.get("id"),
"domain": lp.get("domain", "unknown"),
"objective": lp.get("objective"),
"variables": lp.get("variables", {}),
}
class TestBridge(unittest.TestCase):
def test_roundtrip(self):
canonical = {
"LocalProblem": {
"id": "lp-123",
"domain": "robotics",
"objective": {"minimize": "cost"},
"variables": {"x": 1.0, "y": 2.0},
}
}
back = _from_canonical_local(canonical)
expected = {
"id": "lp-123",
"domain": "robotics",
"objective": {"minimize": "cost"},
"variables": {"x": 1.0, "y": 2.0},
}
self.assertEqual(back, expected)