Skip to content

Reproducing and Verifying

Dan Lee-Odinson edited this page Jun 15, 2026 · 1 revision

Reproducing and Verifying

The package is designed to be rerun and checked. These instructions target the published v1.0.0 release.

0. Install the reproduction environment

From the repository root:

python -m pip install -e ".[dev]"

The dev extra installs pytest, matplotlib, and the pinned CoolProp dependency used by the complete test suite.

1. Run the test suite

pytest -q
# Expected at v1.0.0: 259 passed, 3 xfailed

The three xfail results are intentional placeholders for the not-yet-implemented disk-integrated albedo model, pinned to NotImplementedError; they are not test failures.

2. Run the paper verification scripts

python verify_suite.py
# Expected final line: All assertions pass.

python companion/verify_ai1.py
# Paper two: AI1 design-point arithmetic

python verify_paper3.py
# Expected final line: All paper-3 assertions pass.

verify_paper3.py is deliberately pinned to orbital-thermal==1.0.0. It recomputes the view-factor decomposition, three equilibrium balances, beta-angle table, dense-grid monotonicity checks, and transient-bias rows.

There is also an independent Wolfram Language suite:

verify_suite.wl

Open it in Mathematica or Wolfram Engine and evaluate blocks W1–W9 in order.

3. Check the frozen McCalip oracle

The vendored McCalip model under external_models/ is SHA-256-pinned in PINS.json, regenerated semantically with Node, and attested against the upstream GitHub source. Published/oracle expected values are not edited to make tests pass.

For ordinary package testing, the frozen oracle is sufficient. To reproduce the strict CI oracle check, install the CI-pinned Node version (24.14.0) and run the repository's oracle-verifier workflow with:

ORACLE_REQUIRE_EXTERNAL=1 pytest -q

On Windows PowerShell:

$env:ORACLE_REQUIRE_EXTERNAL = "1"
pytest -q

4. Expected reference values

Quantity Value
AI1 primary operating point 337.1 K
McCalip replicated default equilibrium 335.749538 K
Exact edge-on view factor (per face, 550 km) 0.257773
Exact-VF default equilibrium 342.099222 K
Headline correction (coded → exact) +6.349684 K
— model-form geometry contribution +5.766313 K
— floating-point branch contribution +0.583371 K
Orbit-average sink (nadir, 550 km, β = 0°) 250.99 K

Continuous integration

A push expands to five CI runs/checks:

  • test matrix on Python 3.10, 3.11, and 3.12;
  • strict oracle-freeze verification;
  • wheel and license verification.

The package passed eight remediation rounds plus a final adversarial technical-review pass, with independent computer-algebra verification, and was closed at v1.0.0.