Skip to content

TestAgainstNEO_QH zero-component abstol is toolchain-sensitive #110

Description

@krystophny

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions