Validation

Hardened audit system around the calculator suite. Every case has a formula, an expected value with provenance, an actual value computed live, a trust label, a tolerance, and a receipt hash.

Trust label legend

Every validation case carries exactly one trust label declaring what the case proves. These labels are emitted into the certificate and the JSON report so downstream reviewers know what kind of evidence a PASS represents.

Exact analytic
Formula identity / closed-form expected value.
Textbook benchmark
Reproduces a known textbook value within the published precision.
Public experimental support
Validates a coefficient or effect against a published measurement, not an exact scenario.
Public scenario anchor
Public mission facts as scenario context — NOT exact validation.
Adversarial fail-closed
Invalid input triggers a warning or rejection.
Cross-tool consistency
Two independent code paths agree on the same physics term.
Implementation regression
Confirms the code path has not drifted from its earlier value.

Summary

Cross-tool consistency checks

These cases compute the same physics term through two independent code paths in shared/shared.js / shared/validation.js and assert that the results agree to floating-point precision. They detect drift between calculators rather than validating any external reference.

IDCaseExpectedActualStatus

Authoritative constants

Every constant used by the calculators with its public source. Edit a constant in shared/shared.js only with a matching source change here.

SymbolValueUnitsSourceNote

Validation cases

Analytic textbook cases — exact closed-form expected values

IDCaseFormulaExpectedActualRel. errTolStatus

JPL Horizons public geometry — publicly tabulated ephemeris snapshots

Tolerances are relaxed to absorb published rounding, NOT to admit drift. Anchor values are recorded explicitly in shared/validation.js.

IDCaseFormulaExpectedActualRel. errTolStatus

NASA/JPL DSOC public scenario anchors — scenario anchors only

Public scenario anchors, not internal mission validation. These cases verify that the publicly disclosed Psyche/DSOC parameters (transmit power, aperture, wavelength, Hale-receiver aperture, transverse velocity) produce a sensible order-of-magnitude link budget in our uniform-spot model. DSOC internal parameters — modulation, coding, detector quantum efficiency, AO loops, pointing-control loops, scheme — are not public and are not modeled. These are DSOC public scenario anchors only.
IDCaseFormulaExpectedActualRel. errTolStatus

Public-data experimental cross-checks — canonical experiments and published measurements

Compares the calculators' outputs against published values from canonical GR experiments (Eddington, GPS / Ashby, Pound–Rebka, Vessot–Levine GP-A, Cassini superior-conjunction, NASA DSOC public records). Tolerances reflect published precision plus the model's approximation order.

IDCaseFormulaExpectedActualRel. errTolStatus

Adversarial / fail-closed tests — calculators must error or warn on bad inputs

IDCaseFailure conditionExpectedActualRel. errTolStatus

Cross-tool consistency — same physics through two code paths must match

IDCaseFormulaExpectedActualRel. errTolStatus

Source registry

Every formula and constant points to a public source. Source IDs in the validation cases above resolve to entries here.

IDNameRole

Deployment-blocking test rules

Certificate format

Every calculator on the lab also exports a JSON certificate. Schema:

{
  "tool":          "<tool-name>",
  "version":       "0.1.0",
  "timestamp_utc": "ISO-8601",
  "inputs":        { ... },
  "constants":     { ... },
  "formulas":      [ "Δt = (1+γ) GM/c³ ln((r1+r2+R)/(r1+r2-R))", ... ],
  "assumptions":   [ ... ],
  "outputs":       { ... },
  "tolerance_tests": [ { "term": "...", "rank": "KEEP|WATCH|IGNORE", ... } ],
  "warnings":      [ ... ],
  "source_notes":  [ ... ],
  "generator":     "Relativistic Optics Lab (...)",
  "hash":          { "sha256": "<64-hex>", "short": "<12-hex>" }
}

Download report

The full validation report can be downloaded as JSON. This is the result that should be archived alongside any engineering note that cites a calculator output.

Download last committed snapshot Download validation_badge.json

Static badge (shields.io-style): validation status badge