import json from catopt_query.protocol import LocalProblem, SharedVariables, CanonicalPlan, PlanDelta def test_local_problem_serialization(): lp = LocalProblem( shard_id="shard-1", projected_attrs=["a", "b"], predicates=["a > 0"], costs=12.5, constraints={"limit": 100}, ) d = lp.to_dict() lp2 = LocalProblem.from_dict(d) assert lp == lp2 def test_canonical_plan_serialization(): cp = CanonicalPlan(projection=["a"], predicates=["a>0"], estimated_cost=3.14) d = cp.to_dict() cp2 = CanonicalPlan.from_dict(d) assert cp == cp2