diff --git a/tests/preconditioning/gravity_field.cpp b/tests/preconditioning/gravity_field.cpp index 7675164..9f01ccc 100644 --- a/tests/preconditioning/gravity_field.cpp +++ b/tests/preconditioning/gravity_field.cpp @@ -643,9 +643,18 @@ TEST_CASE( ); baseline.Mult(rhs, actual); baselineReference.Mult(rhs, expected); + bool baselineIdentical = true; + int firstDifferentCoefficient = -1; + double maximumDifference = 0.0; for (int index = 0; index < actual.Size(); ++index) { - CHECK(std::bit_cast(actual(index)) == std::bit_cast(expected(index))); + const bool identical = + std::bit_cast(actual(index)) == std::bit_cast(expected(index)); + if (!identical && firstDifferentCoefficient < 0) firstDifferentCoefficient = index; + baselineIdentical = baselineIdentical && identical; + maximumDifference = std::max(maximumDifference, std::abs(actual(index) - expected(index))); } + CAPTURE(firstDifferentCoefficient, maximumDifference); + CHECK(baselineIdentical); preconditioning::ReducedFieldSolverAdapter refinedSchur(refined.GetPotentialSchurInverse(), potentialMap); preconditioning::GravityFactorizationOperator refinedReference(