Aggregate gravity baseline equivalence assertions

This commit is contained in:
2026-09-17 16:24:47 -04:00
parent 61a44fc853
commit 30b94b75b3

View File

@@ -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<std::uint64_t>(actual(index)) == std::bit_cast<std::uint64_t>(expected(index)));
const bool identical =
std::bit_cast<std::uint64_t>(actual(index)) == std::bit_cast<std::uint64_t>(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(