Repository navigation
feat(eval): the start-attitude draw study as a generated table (#168) - #176
Merged
Merged
Conversation
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Comment on lines
+184
to
+187
| "For both single-anchor cases (`outage_visual` and `vision_only`) the median ATE is several times larger with " | ||
| "the attitude drawn than without it, and with only the attitude drawn it is close to the full-draw median. " | ||
| "The attitude prior is 2 degrees per axis, so the anchor model does not recover from a start attitude error " | ||
| "inside its own declared prior.", |
Comment on lines
+189
to
+192
| "Without vision (`outage_control`) the attitude draw moves the median ATE by less than a factor of two. " | ||
| "The clone (`outage_visual_clone`) does not follow the attitude draw: its ATE and its mean NEES stay within a " | ||
| "quarter of their mean across the three variants in every seed. " | ||
| "The count in the last column says little for the clone, whose differences are small.", |
Comment on lines
+194
to
+195
| "Why the anchor model fails is a HYPOTHESIS and was not tested here: gravity leakage from the start tilt " | ||
| "error plus absolute information that the anchor model invents.", |
Comment on lines
+197
to
+198
| "The rows are in `docs/data/start_draw_study.csv`, written by `navkit sweep start-draw`, and the sentences " | ||
| "above are checked against them by `tests/test_start_draw_page.py`.", |
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Keep both test files in the ci.yml pytest list. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01L6ro5x4WRA4P7sQHLyPPGa
Keep every page test in the ci.yml pytest list. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01L6ro5x4WRA4P7sQHLyPPGa
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.
Re-measures the start-attitude-draw study on the corrected fixture as a committed CSV, and replaces the typed numbers on the pages by a generated, test-checked section. Development seeds 0 to 9 only.
Hook
run_casegets a keyword-onlystart_hook. It receives theStartErrorthatdraw_start_errordrew and returns the one to use. It applies to ESKF cases that start fromprior_draw. Likegnss_hookandimu_hookit is not inconfig_hash, and the docstring says so. The draw is made first on its own stream, so every variant of a seed sees the same draw.Study
navkit sweep start-draw --csv PATH [--page PATH] [--compare PATH] [--seeds A-B](src/navkit/start_draw_study.py). Casesoutage_visual,vision_only,outage_visual_clone,outage_control. Variantsfull,no_attitude,attitude_only. One CSV row per (case, variant, seed): ATE RMSE (alignment none, full run) and mean NEES over the full run, no verdicts. Deterministic. Seeds from 100 are refused.Result (medians over seeds 0 to 9)
outage_visualvision_onlyoutage_visual_cloneoutage_controlThe new numbers agree with the old claim. The clone is not exactly unchanged: per seed its ATE differs across variants by up to about 13% and its mean NEES by up to about 18%. The page therefore says "within a quarter of their mean in every seed" (tolerance chosen from those values), not "does not change". The mechanism stays a HYPOTHESIS; nothing here tests it.
Tests, with failing-on-main evidence
tests/test_start_hook.py: identity hook gives an identical record (timing keys stripped); the hook sees the drawn error and is not in the hash; a hook that zeroesdthetagives an exactly zero initial attitude error; every variant of a seed sees the same draw. All 4 failed on main (run_casehad nostart_hook).tests/test_start_draw_page.py: CSV shape and seeds, page section equals the generated text, every table cell recomputed from the rows, each sentence tested against the rows (several times, close to, factor of two, quarter for the clone, 2 degrees equals the filter's declared prior, HYPOTHESIS wording and no mechanism words), a fresh run of seed 0 equals the committed rows, held-out refusal.tests/test_quoted_numbers.py: table rows between the start-draw markers are exempt (they are checked cell by cell by the page test); sentences around them are still scanned. A new test pins that.Statements changed
docs/data/start_draw_study.csv; HYPOTHESIS sentence kept<!-- start-draw:start/end -->: table, sentences, HYPOTHESISNo new typed numbers outside the generated table. Defaults and the golden file are unchanged.
CI
A step in the ensemble reproducibility job runs
navkit sweep start-draw --compare docs/data/start_draw_study.csv(about 3.6 minutes locally). That job already took about 24 minutes against about 36 for the slowest test job, so the job should stay under it. The new page test is in the docs-only list.Notes
metrics.jsonand the count markers hold the exact count. Expect a count conflict when chore(metrics): quote the test count rounded down to a hundred, so PRs stop conflicting #174 merges;python scripts/metrics.py --writefixes it.check_doc_tables,metrics --check,check_links,mkdocs build --strict, framing and quoted-numbers tests, the golden test (unchanged), full suite (2307 passed, 31 skipped, 2 xfailed).Closes #168
🤖 Generated with Claude Code