Clear unavailable gravity measurements before each attempt

This commit is contained in:
2026-09-17 11:01:13 -04:00
parent 7e1ab69fcd
commit a2871e11e2
4 changed files with 77 additions and 7 deletions

View File

@@ -196,6 +196,11 @@ TEST_CASE("Production gravity strategies retain optional model borders and resto
CHECK(report.diagnostics().lastLinearSolve->iterations == 0);
CHECK(report.diagnostics().numericalStrategies.gravitySolves > 0);
CHECK(report.diagnostics().numericalStrategies.gravityFailures == 0);
CHECK(std::isfinite(report.diagnostics().numericalStrategies.lastGravityCorrectionNorm));
CHECK(std::isfinite(report.diagnostics().numericalStrategies.lastGravityPreparedDefect));
CHECK(std::isfinite(report.diagnostics().numericalStrategies.lastGravityAffineDisagreement));
CHECK(std::isfinite(report.diagnostics().numericalStrategies.lastGravityArithmeticAllowance));
CHECK(std::isfinite(report.diagnostics().numericalStrategies.lastGravityPreparedTargetThreshold));
CHECK(report.lastAcceptedCheckpointView().valid());
}
REQUIRE(context.isReady());
@@ -237,6 +242,15 @@ TEST_CASE("A failed initial gravity completion preserves the accepted stellar ch
CHECK(report.diagnostics().numericalStrategies.initialGravityResidual > 0.0);
CHECK(report.diagnostics().numericalStrategies.gravitySolves == 1);
CHECK(report.diagnostics().numericalStrategies.gravityFailures == 1);
const auto &auxiliary = report.diagnostics().numericalStrategies;
// A completed but unsuccessful inner solve has a meaningful true
// defect. No correction/prepared assessment occurred in this attempt.
CHECK(std::isfinite(auxiliary.lastGravityTrueResidual));
CHECK(std::isnan(auxiliary.lastGravityCorrectionNorm));
CHECK(std::isnan(auxiliary.lastGravityPreparedDefect));
CHECK(std::isnan(auxiliary.lastGravityAffineDisagreement));
CHECK(std::isnan(auxiliary.lastGravityArithmeticAllowance));
CHECK(std::isnan(auxiliary.lastGravityPreparedTargetThreshold));
CHECK(report.diagnostics().acceptedNonlinearIterations == 0);
CHECK(report.lastAcceptedCheckpointView().valid());
}