43 lines
1.2 KiB
Python
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)
|