Promote focused small-building detector
This commit is contained in:
@@ -69,6 +69,7 @@ def test_operator_yolo_tile_dataset_export_help_does_not_require_gis_dependencie
|
||||
assert "Export operator real-data samples to a tile-level YOLO detection dataset" in result.stdout
|
||||
assert "--tile-size" in result.stdout
|
||||
assert "--stride" in result.stdout
|
||||
assert "--samples" in result.stdout
|
||||
assert "--negative-keep-ratio" in result.stdout
|
||||
assert "--min-label-visible-ratio" in result.stdout
|
||||
assert "--background-negative-repeat" in result.stdout
|
||||
@@ -84,10 +85,19 @@ def test_default_validation_split_is_explicit_and_rejects_holdout_leakage() -> N
|
||||
{"sample_slug": "retie", "recommended_split": "val"},
|
||||
{"sample_slug": "westerlo", "recommended_split": "val"},
|
||||
{"sample_slug": "arendonk_heide", "recommended_split": "val"},
|
||||
{"sample_slug": "vosselaar_center", "recommended_split": "val"},
|
||||
{"sample_slug": "grobbendonk_center", "recommended_split": "val"},
|
||||
]
|
||||
|
||||
assert module.DEFAULT_VALIDATION_SAMPLE_SLUGS == frozenset(
|
||||
{"turnhout", "retie", "westerlo", "arendonk_heide"}
|
||||
{
|
||||
"turnhout",
|
||||
"retie",
|
||||
"westerlo",
|
||||
"arendonk_heide",
|
||||
"vosselaar_center",
|
||||
"grobbendonk_center",
|
||||
}
|
||||
)
|
||||
assert module.validate_validation_split(
|
||||
samples,
|
||||
@@ -100,6 +110,35 @@ def test_default_validation_split_is_explicit_and_rejects_holdout_leakage() -> N
|
||||
module.validate_validation_split(samples, {"turnhout", "missing"})
|
||||
|
||||
|
||||
def test_manifest_sample_selection_keeps_external_holdouts_out_of_targeted_dataset() -> None:
|
||||
module = load_tile_exporter()
|
||||
samples = [
|
||||
{"sample_slug": "geel", "recommended_split": "train"},
|
||||
{"sample_slug": "beerse_center", "recommended_split": "train"},
|
||||
{"sample_slug": "vosselaar_center", "recommended_split": "val"},
|
||||
{"sample_slug": "turnhout", "recommended_split": "val"},
|
||||
{"sample_slug": "retie", "recommended_split": "val"},
|
||||
{"sample_slug": "westerlo", "recommended_split": "val"},
|
||||
]
|
||||
|
||||
selected, excluded = module.select_manifest_samples(
|
||||
samples,
|
||||
{"geel", "beerse_center", "vosselaar_center"},
|
||||
)
|
||||
|
||||
assert [sample["sample_slug"] for sample in selected] == [
|
||||
"geel",
|
||||
"beerse_center",
|
||||
"vosselaar_center",
|
||||
]
|
||||
assert excluded == ["retie", "turnhout", "westerlo"]
|
||||
assert module.validate_validation_split(selected, {"vosselaar_center"}) == {
|
||||
"vosselaar_center"
|
||||
}
|
||||
with pytest.raises(SystemExit, match="unknown samples"):
|
||||
module.select_manifest_samples(samples, {"geel", "missing"})
|
||||
|
||||
|
||||
def test_validation_coverage_reports_holdouts_without_retained_tiles() -> None:
|
||||
module = load_tile_exporter()
|
||||
coverage = module.validation_sample_coverage(
|
||||
|
||||
Reference in New Issue
Block a user