Target related hard-negative contexts
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-29 18:27:54 +02:00
parent a56df8b1ed
commit cfce3e64ec
4 changed files with 70 additions and 2 deletions
@@ -207,3 +207,35 @@ def test_region_cap_drops_only_repeats_and_preserves_every_unique_tile() -> None
assert metadata["sampled_entries_by_region"]["flanders"] == 7
assert metadata["dropped_region_repeat_count"] == 13
assert metadata["sampled_entries_by_region"]["flanders"] / len(paths) <= .65
def test_coastal_precision_failure_targets_port_and_dunes_negatives() -> None:
manifest = {"samples": [
{"sample_slug": "coastal-train", "split": "train", "region": "flanders", "context": "coastal-urban"},
{"sample_slug": "port-negative", "split": "train", "region": "flanders", "context": "port-hard-negative"},
{"sample_slug": "dunes-negative", "split": "train", "region": "flanders", "context": "dunes-negative"},
{"sample_slug": "coastal-cal", "split": "calibration", "region": "flanders", "context": "coastal-urban"},
]}
summary = {"tiles": [
{"sample_slug": "coastal-train", "split": "train", "label_count": 2, "image_path": "/tmp/coastal.png"},
{"sample_slug": "port-negative", "split": "train", "label_count": 0, "image_path": "/tmp/port.png"},
{"sample_slug": "dunes-negative", "split": "train", "label_count": 0, "image_path": "/tmp/dunes.png"},
]}
assessment = {
"status": "continue_training_loop",
"gates": {"min_region_f1": .45, "min_region_precision": .5, "min_region_recall": .4,
"max_pure_empty_false_positives": 0},
"calibration": {
"regions": {"flanders": {"f1": .3, "precision": .2, "recall": .4}},
"samples": {"coastal-cal": {"f1": .1, "precision": .05, "recall": .2}},
},
}
paths, metadata = MODULE.build_sampling(
summary=summary, manifest=manifest, assessment=assessment, max_region_share=1.0
)
assert paths.count(str(Path("/tmp/port.png").resolve())) == 6
assert paths.count(str(Path("/tmp/dunes.png").resolve())) == 6
assert "flanders:port-hard-negative" in metadata["targeted_negative_contexts"]
assert "flanders:dunes-negative" in metadata["targeted_negative_contexts"]