Some physics properties are not specific to one module — they are
contracts across modules: that any profile pairs with any DF and
still virializes, that the units policy holds end-to-end, that
gradients flow through the whole pipeline. progenax does not carry
a dedicated tests/validation/test_cross_cutting.py; instead these
cross-cutting properties are covered indirectly by the unit and
integration suites listed below. This page documents which property
each suite enforces, so the cross-cutting coverage is auditable rather
than assumed.
What is covered, and where¶
Cross-cutting property | Asserted in |
|---|---|
Virial recovery for matched profile/DF pairs (and predictable departure for mismatched pairs) |
|
Energy conservation through builder → modifier chains (tidal truncation, mass segregation) |
|
Units-policy contract — no implicit |
|
Differentiability across the full pipeline — finite |
|
Mass-first API contract — all builders accept |
|
The profile × DF virial contract¶
The defining cross-cutting check is that any spatial profile pairs with any velocity DF (protocol-based composition), and a matched pair sits at virial equilibrium with no external rescale. How the suite covers this:
Matched pairs (Plummer⊗Plummer at the same , King⊗King at the same , EFF⊗EFF) recover to within finite- Poisson noise ( at ) — the unscaled DF is a true equilibrium. The matched-pair is asserted in the validation-tier physics suites (
test_plummer_physics.py,test_king_physics.py,test_eff_physics.py); the builder/cluster suites assert the composition (that any profile pairs with any DF and the matched DF is constructed).Mismatched pairs (e.g. Plummer positions at with Plummer velocities built for ) are expected to depart from 0.5, because the velocities no longer balance the potential they sit in. This physical asymmetry is what makes the matched-pair equilibrium a real result rather than an imposed one. (This is the rationale for the matched-pair checks, not a separately-asserted directional test.)
The per-model virial rows on the module validation pages (Plummer equilibrium, King profile validation, EFF profile validation) carry the measured numbers and tolerances; this page records that the composition across profile/DF combinations is exercised, not just the diagonal matched cases.
How to run¶
pytest tests/unit/test_builders.py -v
pytest tests/integration/test_units_through_pipeline.py -v
pytest tests/integration/test_jax_compatibility.py -v
pytest tests/integration/test_end_to_end.py -vReferences¶
The per-module measured values live on the per-module validation pages (Plummer equilibrium, King profile validation, …); the three-tier methodology and tolerance conventions are at Validation methodology; the end-to-end gradient registry is at Differentiability gradient audit. This page maps the interaction contracts onto the suites that enforce them.