"""Tests for the independent physical-line alignment overlay.""" import pytest from linkerhand_calibration.alignment_view import ( summarize_alignment_measurements, ) def _measurement(angle: float, offset: float, y: float) -> dict: return { "line_xyxy_px": [0.0, y, 100.0, y - angle * 100.0], "angle_rad": angle, "vertical_offset_px": offset, } def test_line_summary_smooths_only_physical_line_measurements() -> None: """The overlay smooths scene lines without any Tag orientation input.""" result = summarize_alignment_measurements( [ _measurement(-0.02, -4.0, 80.0), None, _measurement(0.00, 0.0, 82.0), _measurement(0.02, 4.0, 84.0), ] ) assert result is not None assert result["angle_rad"] == pytest.approx(0.0) assert result["vertical_offset_px"] == pytest.approx(0.0) assert result["line_xyxy_px"] == pytest.approx([0.0, 82.0, 100.0, 82.0]) assert result["detected_frames"] == 3 assert result["window_frames"] == 4 def test_line_summary_returns_none_without_scene_line() -> None: """No blue line is fabricated when the scene has no valid long edge.""" assert summarize_alignment_measurements([None, None]) is None