catopt-query-category-theor.../tests/test_solver.py

13 lines
542 B
Python

from catopt_query.canonical import CanonicalPlan
from catopt_query.solver import optimize_across_shards
from catopt_query.protocol import PlanDelta
def test_solver_composes_plans():
p1 = CanonicalPlan(projection=["a"], predicates=["a>0"], estimated_cost=1.0)
p2 = CanonicalPlan(projection=["b"], predicates=["b<5"], estimated_cost=2.0)
delta = optimize_across_shards([p1, p2], bandwidth_budget=10.0)
assert isinstance(delta, PlanDelta)
assert "projections" in delta.changes
assert "aggregated_cost" in delta.changes