from catopt_query.adapters import Adapter, VendorPlan from catopt_query.protocol import CanonicalPlan def test_adapter_to_canonical_basic(): vp = VendorPlan(shard_id="shard-1", projection=["x", "y"], predicates=["x>5"], price=2.5) adapter = Adapter() canon = adapter.to_canonical(vp) assert isinstance(canon, CanonicalPlan) assert canon.projection == ["x", "y"] assert canon.predicates == ["x>5"] assert canon.estimated_cost == 2.5