Expand validation references: 2024 pre-epoch total + 2025 timing-only partial (item 17)#16
Merged
Merged
Conversation
…rences Item 17: extends NASA_GSFC_REFERENCES beyond the model epoch and beyond central eclipses. - 2024 Apr 08 total (Saros 139): pre-epoch historical anchor, inserted at the beginning of the tuple to keep it chronological. Values are quoted verbatim from the GSFC Besselian page, including its Delta-T = 70.6 s, which differs from the page's own TDT/UT pair (70.7 s) by one 0.1 s rounding step; the fixture self-consistency test tolerance documents it. - 2025 Mar 29 deep partial (Saros 149, gamma 1.0404, magnitude 0.9378): NASA publishes no greatest-eclipse coordinates or central duration for non-central eclipses, so the reference stores None for those fields and is validated on eclipse type and TT timing only, honestly and explicitly. PublishedEclipseReference and EclipseValidationResult grow None-aware fields; _validate_one skips coordinate/duration comparisons for non-central references and bases pass/fail on type + timing there. The report gains a non_central_reference_note, and the run_full terminal summary computes its max-path-error line over central references only. The hybrid reference (2031 Nov 14) lands separately with the classifier fix in the item-14 PR; that PR appends at the end of the tuple, this one inserts at the beginning, so the two merge cleanly in either order.
13 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Work-plan item 17. Extends
NASA_GSFC_REFERENCESbeyond the model epoch and beyond central eclipses, with all values quoted verbatim from GSFC Besselian-elements pages:Nonefor those fields and is validated on eclipse type + TT timing only. This scope limitation is explicit rather than papered over: the dataclass docstring, a newnon_central_reference_notein the validation report, andtests/test_known_eclipses.pyskips all say so.Mechanics:
PublishedEclipseReference.latitude_deg/longitude_deg/central_duration_sbecomefloat | None;EclipseValidationResultcoordinate/duration fields becomeNone-aware andcoordinate_within_targetbecomesbool | None._validate_oneskips the WGS84 distance and local-circumstances solve for timing-only references;passed = type_matches and timing_within_target and coordinate_within_target is not False. Central references matched to a non-central event still raiseValueError(regression-tested).cli.pyguard: therun_fullterminal summary's “max path error” line now computes over central references only, so a coordinate-less reference can't crash or poison the summary. Everything else incli.pyis byte-identical to main.tests/test_validation_references.py(partial reference is genuinely timing-only;_validate_onebehavior on a fabricated non-central event — fails on main, where it raisesValueError; central references still require central events) andtest_known_eclipses.pyupdates (coordinate test skips non-central refs; new chronological-order test that enforces the insert-at-front/append-at-end discipline shared with the item-14 PR Classify hybrid (annular-total) eclipses; add NASA 2031 Nov 14 hybrid reference (item 14) #15).Scientific impact
No physics or geometry changes. But the validation enumeration window grows to 2024–2028 (2024–2031 once PR #15 also lands), so
validation_report.json/validation_results.csvgain rows and the validation stage + reference tests take proportionally longer in CI and in full runs. Partial-reference rows carrynullcoordinate/duration fields — downstream consumers of the report should tolerate that (the shipped CLI summary already does).Checklist
test_partial_event_validates_without_coordinates).Merge-order independence vs. PR #15 (item 14): this PR inserts at the beginning of the reference tuple and touches
_validate_one/result dataclasses; #15 appends at the end and touches the classifier inephemeris.py. The singlecli.pyhunk here is also disjoint from PR #14's logging changes. All three merge cleanly in any order.