29 lines
863 B
Python
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
|