from __future__ import annotations import importlib.util from pathlib import Path SCRIPT = Path(__file__).parents[2] / "scripts" / "evaluate_belgium_building_candidate.py" SPEC = importlib.util.spec_from_file_location("candidate_evaluation", SCRIPT) assert SPEC and SPEC.loader MODULE = importlib.util.module_from_spec(SPEC) SPEC.loader.exec_module(MODULE) def test_iou_and_one_to_one_matching() -> None: reference = [(0.0, 0.0, 10.0, 10.0)] predictions = [((0.0, 0.0, 10.0, 10.0), 0.9), ((0.0, 0.0, 10.0, 10.0), 0.8)] assert MODULE.iou(reference[0], reference[0]) == 1.0 assert MODULE.match_boxes(predictions, reference, confidence=0.25, match_iou=0.5) == (1, 1, 0) def test_empty_reference_counts_false_positives() -> None: predictions = [((0.0, 0.0, 10.0, 10.0), 0.4)] assert MODULE.match_boxes(predictions, [], confidence=0.25, match_iou=0.5) == (0, 1, 0) assert MODULE.match_boxes(predictions, [], confidence=0.5, match_iou=0.5) == (0, 0, 0)