"""Testy harnessu porównawczego (LOG-25) — bez efemeryd.""" from app.engine.compare import compare_positions from app.engine.models import ObjectPosition def test_identical_positions_have_zero_diff(): a = [ObjectPosition("Sun", 40.0, 0.0, 0.95, False)] report = compare_positions(a, a, lon_tol_arcsec=1.0) assert report.ok assert report.max_arcsec == 0.0 def test_offset_beyond_tolerance_is_flagged(): a = [ObjectPosition("Sun", 40.0, 0.0, 0.95, False)] b = [ObjectPosition("Sun", 40.1, 0.0, 0.95, False)] # 0.1° = 360" report = compare_positions(a, b, lon_tol_arcsec=120.0) assert not report.ok assert report.diffs[0].over_tolerance assert abs(abs(report.diffs[0].delta_arcsec) - 360.0) < 1.0 def test_retrograde_mismatch_is_flagged(): a = [ObjectPosition("Mars", 234.0, 0.0, -0.2, True)] b = [ObjectPosition("Mars", 234.0, 0.0, 0.2, False)] report = compare_positions(a, b, lon_tol_arcsec=120.0) assert not report.ok assert report.diffs[0].speed_sign_mismatch def test_wraparound_delta_is_small(): a = [ObjectPosition("Sun", 359.99, 0.0, 1.0, False)] b = [ObjectPosition("Sun", 0.01, 0.0, 1.0, False)] report = compare_positions(a, b, lon_tol_arcsec=120.0) assert report.ok # 0.02° ≈ 72" < 120" assert abs(report.diffs[0].delta_arcsec) < 80.0