Goal
TestAgainstNEO_QH asserts an analytically-zero spline derivative component against abstol = 1e-10, while the sibling symmetry-zero check uses abstol_for_zero = 1e-3. On gfortran 16.1.1 (Arch/CachyOS) the component evaluates to 1.577e-10 and the test fails; Ubuntu CI (gfortran 13/14) stays below the bound. The failure reproduces bit-identically on a clean build of current main with the pinned libneo, independent of any open PR, so the bound encodes toolchain-specific roundoff rather than physics.
Decide the intended tolerance semantics for exact-zero reference components in this test and apply them consistently (e.g. route the zero components through the same near-zero floor the dB_dx check uses, or document the 1e-10 bound as CI-toolchain-specific).
Reproduction
cmake -S . -B build -G Ninja && cmake --build build -j
ctest --test-dir build/test -R TestAgainstNEO_QH --output-on-failure
On gfortran 16.1.1: dB/dphi = 1.5772720057194170E-010 vs reference 0.0, abstol = 1e-10 -> FAIL.
Non-goals
- No blanket tolerance widening; only the exact-zero reference components are affected.
Goal
TestAgainstNEO_QHasserts an analytically-zero spline derivative component againstabstol = 1e-10, while the sibling symmetry-zero check usesabstol_for_zero = 1e-3. On gfortran 16.1.1 (Arch/CachyOS) the component evaluates to 1.577e-10 and the test fails; Ubuntu CI (gfortran 13/14) stays below the bound. The failure reproduces bit-identically on a clean build of current main with the pinned libneo, independent of any open PR, so the bound encodes toolchain-specific roundoff rather than physics.Decide the intended tolerance semantics for exact-zero reference components in this test and apply them consistently (e.g. route the zero components through the same near-zero floor the dB_dx check uses, or document the 1e-10 bound as CI-toolchain-specific).
Reproduction
On gfortran 16.1.1:
dB/dphi = 1.5772720057194170E-010vs reference0.0,abstol = 1e-10-> FAIL.Non-goals