from __future__ import annotations import importlib.util from pathlib import Path SCRIPT = Path(__file__).parents[2] / "scripts" / "build_regional_yolo_dataset.py" SPEC = importlib.util.spec_from_file_location("regional_yolo_dataset", SCRIPT) assert SPEC and SPEC.loader MODULE = importlib.util.module_from_spec(SPEC) SPEC.loader.exec_module(MODULE) def test_select_paths_is_region_and_split_safe() -> None: manifest = { "samples": [ {"sample_slug": "f-train", "region": "flanders", "split": "train"}, {"sample_slug": "f-val", "region": "flanders", "split": "val"}, {"sample_slug": "f-test", "region": "flanders", "split": "test"}, {"sample_slug": "w-train", "region": "wallonia", "split": "train"}, ] } summary = { "tiles": [ {"sample_slug": "f-train", "split": "train", "image_path": "/f-train.png"}, {"sample_slug": "f-val", "split": "val", "image_path": "/f-val.png"}, {"sample_slug": "f-test", "split": "val", "image_path": "/f-test.png"}, {"sample_slug": "w-train", "split": "train", "image_path": "/w-train.png"}, ] } train, val = MODULE.select_paths(summary, manifest, "flanders") assert train == ["/f-train.png"] assert val == ["/f-val.png"]