from pathlib import Path ROOT = Path(__file__).resolve().parents[2] def test_detection_calibration_sweep_reuses_real_data_workflow_and_reports_qa_metrics() -> None: script_path = ROOT / "scripts" / "run_detection_calibration_sweep.sh" readiness = (ROOT / "scripts" / "run_readiness_check.sh").read_text(encoding="utf-8") assert script_path.exists() script = script_path.read_text(encoding="utf-8") assert "bash -n scripts/run_detection_calibration_sweep.sh" in readiness assert "verify_real_data_detection_qa_workflow.sh" in script assert "CALIBRATION_THRESHOLDS" in script assert "REAL_CONFIDENCE_THRESHOLD" in script assert "REAL_RASTER_PATH" in script assert "REAL_REFERENCE_VECTOR_PATH" in script assert "/api/v1/projects/${project_id}/quality-checks" in script assert "/api/v1/detection/runs/${analysis_run_id}" in script assert "quality_check_id" in script assert "raw_detection_count" in script assert "suppressed_detection_count" in script assert "duplicate_iou_threshold" in script assert "false_positives" in script assert "false_negatives" in script assert "quality_score" in script assert 'metrics.get("f1")' in script assert "best_by_score" in script assert "calibration_summary.json" in script assert "demo/workflow" not in script assert "fixture_mode" not in script assert "will_download_models" not in script