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

29 lines
863 B
Python

from catopt_query.adapters.postgres_adapter import map_postgres_to_canonical
from catopt_query.adapters.mongo_adapter import map_mongo_to_canonical
from catopt_query.protocol import LocalProblem
from catopt_query.core import CanonicalPlan
def test_postgres_adapter_maps_to_canonical():
lp = LocalProblem(
shard_id="pg-1",
projected_attributes=["a"],
predicates=["a > 1"],
costs={"cpu": 1.0},
)
can = map_postgres_to_canonical(lp)
assert isinstance(can, CanonicalPlan)
assert can.total_cost == 1.0
def test_mongo_adapter_maps_to_canonical():
lp = LocalProblem(
shard_id="mongo-1",
projected_attributes=["b"],
predicates=["b != NULL"],
costs={"io": 0.2},
)
can = map_mongo_to_canonical(lp)
assert isinstance(can, CanonicalPlan)
assert can.total_cost == 0.2