fix(eigen): reject nonfinite modal validation scales

This commit is contained in:
KOKO\Mimi
2026-10-09 02:24:55 +09:00
parent 37eb5815bf
commit 0e07b4df08
3 changed files with 43 additions and 6 deletions
@@ -276,3 +276,19 @@ TEST(SolidFrequencyProcedure,
// Original modal Value output is pending. This proves only our independent
// checks on the supplied input; it is not an external frequency comparison.
}
TEST(SolidFrequencyProcedure, RejectsOverflowingOriginalPencilValidationScale) {
// Every local K entry, eigenvalue, and spectral enclosure is representable.
// The all-odd x Walsh mode still overflows the original residual/energy
// denominators: finite / infinity must never become passing zero evidence.
auto domain = Brick(24U, "", 1.0, 2.0, 3e306);
ASSERT_TRUE(domain.HasValue()) << StatusText(domain.GetStatus());
const auto result =
fesa::SolidFrequencyProcedureExecutor{}.Execute(domain.Value());
ASSERT_FALSE(result.HasValue());
ASSERT_FALSE(result.GetStatus().Diagnostics().empty());
EXPECT_EQ(result.GetStatus().Diagnostics()[0].code,
"solid-eigenpair-validation-failed");
EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find("nonfinite"),
std::string::npos);
}