@@ -26,6 +26,23 @@ def test_parse_formats_json_accepts_ci_format_arrays() -> None:
2626 assert formats == [Format .PARQUET , Format .VORTEX , Format .DUCKDB ]
2727
2828
29+ def test_parse_formats_json_accepts_vortex_native () -> None :
30+ formats = parse_formats_json ('["parquet","vortex","vortex-native"]' )
31+
32+ assert formats == [Format .PARQUET , Format .VORTEX , Format .VORTEX_NATIVE ]
33+
34+
35+ def test_resolve_axis_targets_offers_vortex_native_on_duckdb_only () -> None :
36+ # vortex-native is a DuckDB-only lane; the DataFusion axis is dropped as unsupported.
37+ targets , warnings = resolve_axis_targets (
38+ [Engine .DATAFUSION , Engine .DUCKDB ],
39+ [Format .VORTEX_NATIVE ],
40+ )
41+
42+ assert targets == [BenchmarkTarget (engine = Engine .DUCKDB , format = Format .VORTEX_NATIVE )]
43+ assert warnings == ["Format vortex-native is not supported by engine datafusion" ]
44+
45+
2946def test_resolve_axis_targets_filters_unsupported_combinations () -> None :
3047 targets , warnings = resolve_axis_targets (
3148 [Engine .DATAFUSION , Engine .DUCKDB ],
@@ -55,6 +72,23 @@ def test_resolve_axis_targets_skips_engines_a_benchmark_cannot_run() -> None:
5572 assert warnings == ["Benchmark spatialbench does not support engine datafusion" ]
5673
5774
75+ def test_resolve_axis_targets_expands_spatialbench_three_lanes () -> None :
76+ # The single-command three-lane comparison: parquet, WKB vortex, and native-geometry vortex, all
77+ # on DuckDB.
78+ targets , warnings = resolve_axis_targets (
79+ [Engine .DUCKDB ],
80+ [Format .PARQUET , Format .VORTEX , Format .VORTEX_NATIVE ],
81+ Benchmark .SPATIALBENCH ,
82+ )
83+
84+ assert targets == [
85+ BenchmarkTarget (engine = Engine .DUCKDB , format = Format .PARQUET ),
86+ BenchmarkTarget (engine = Engine .DUCKDB , format = Format .VORTEX ),
87+ BenchmarkTarget (engine = Engine .DUCKDB , format = Format .VORTEX_NATIVE ),
88+ ]
89+ assert warnings == []
90+
91+
5892def test_validate_targets_rejects_engine_a_benchmark_cannot_run () -> None :
5993 errors = validate_targets (
6094 [BenchmarkTarget (engine = Engine .DATAFUSION , format = Format .PARQUET )],
0 commit comments