mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-22 23:01:13 +00:00
[AZ-961] accuracy_report: rename tlog_path -> ground_truth_path
ReportContext.tlog_path was widened in-place by AZ-959 to mean "ground-truth source path" without renaming, leaving the rendered report's "- Tlog: <csv_path>" line cosmetically wrong for CSV runs. This rename + label fix completes the cleanup. - helpers/accuracy_report.py: field rename + docstring update + rendered line now reads "- Ground truth: <path>" for both inputs. - replay_api/app.py: kwarg updated, AZ-959 inline comment about the overload removed (field name now carries the intent). - tests/unit/test_az699_report_writer.py: fixture updated, two new symmetric tests assert the canonical label for tlog AND csv inputs (AC-2). - tests/e2e/replay/_e2e_orchestrator.py + test_derkachi_real_tlog.py: kwarg updated. Tests: 62/62 green across test_az699_report_writer.py, test_az700_render_map.py, test_az701_replay_api.py. CSV-replay-input chain (AZ-959 + AZ-960 + AZ-961) is now coherent: - API accepts (video, csv) with XOR validation - /static/example-csv serves the AZ-896 reference doc - Runner dispatches --imu vs --tlog argv - Report renders with source-agnostic "Ground truth:" label - Map renders from CSV truth via gps-denied-render-map dispatch Bookkeeping: AZ-961 spec moved todo/ → done/, dep-table preamble eighth bump documents the rename + summarises the cycle-4 CSV chain, state.md records batch 7 complete. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -209,7 +209,7 @@ def _failing_distribution() -> HorizontalErrorDistribution:
|
||||
def _context(method: str = "factory-sheet") -> ReportContext:
|
||||
return ReportContext(
|
||||
run_date_utc="2026-05-20",
|
||||
tlog_path=Path("/tmp/derkachi.tlog"),
|
||||
ground_truth_path=Path("/tmp/derkachi.tlog"),
|
||||
video_path=Path("/tmp/flight_derkachi.mp4"),
|
||||
calibration_acquisition_method=method,
|
||||
clip_duration_s=180.0,
|
||||
@@ -340,3 +340,34 @@ def test_render_report_marks_vertical_skipped_when_no_samples() -> None:
|
||||
|
||||
# Assert
|
||||
assert "_No emissions carried a comparable altitude" in text
|
||||
|
||||
|
||||
def test_render_report_labels_ground_truth_source_agnostic_for_csv_path() -> None:
|
||||
# Arrange — AZ-961 AC-2: rendered label is "Ground truth: …" for
|
||||
# both tlog AND csv inputs, never "Tlog: …".
|
||||
csv_context = ReportContext(
|
||||
run_date_utc="2026-05-29",
|
||||
ground_truth_path=Path("/tmp/data_imu.csv"),
|
||||
video_path=Path("/tmp/nadir.mp4"),
|
||||
calibration_acquisition_method="factory-sheet",
|
||||
clip_duration_s=180.0,
|
||||
emissions_count=200,
|
||||
)
|
||||
|
||||
# Act
|
||||
text = render_report(_passing_distribution(), csv_context, passed=True)
|
||||
|
||||
# Assert
|
||||
assert "- Ground truth: `/tmp/data_imu.csv`" in text
|
||||
assert "- Tlog:" not in text
|
||||
|
||||
|
||||
def test_render_report_labels_ground_truth_source_agnostic_for_tlog_path() -> None:
|
||||
# Arrange — AZ-961 AC-2: the same canonical label applies to tlog runs
|
||||
|
||||
# Act
|
||||
text = render_report(_passing_distribution(), _context(), passed=True)
|
||||
|
||||
# Assert
|
||||
assert "- Ground truth: `/tmp/derkachi.tlog`" in text
|
||||
assert "- Tlog:" not in text
|
||||
|
||||
Reference in New Issue
Block a user