Preserve empty MITC4 hidden-constraint boundary
This commit is contained in:
@@ -1938,4 +1938,24 @@ TEST(Mitc4DrillingEvidence, DirectHiddenCertificateUsesCanonicalPrimitive) {
|
||||
EXPECT_DOUBLE_EQ(frame.hidden_velocity_defect[row], 0.0);
|
||||
EXPECT_DOUBLE_EQ(frame.hidden_acceleration_defect[row], 0.0);
|
||||
}
|
||||
const auto accepted = frame;
|
||||
for (const bool missing : {true, false}) {
|
||||
auto invalid = assembly.Value();
|
||||
if (missing)
|
||||
invalid.hidden_constraint = fesa::Vector(0U);
|
||||
else
|
||||
invalid.hidden_constraint[0U] = std::numeric_limits<double>::infinity();
|
||||
const auto rejected = fesa::hht_internal::CompleteConstraintEvidence(
|
||||
*fixture.domain, fixture.dofs, invalid, length.Value(), null_nodes,
|
||||
positive, tangent, &frame);
|
||||
EXPECT_FALSE(rejected.IsOk());
|
||||
for (const auto& pair : {
|
||||
std::make_pair(&frame.hidden_constraint, &accepted.hidden_constraint),
|
||||
std::make_pair(&frame.hidden_velocity_defect, &accepted.hidden_velocity_defect),
|
||||
std::make_pair(&frame.hidden_acceleration_defect, &accepted.hidden_acceleration_defect)}) {
|
||||
ASSERT_EQ(pair.first->Size(), pair.second->Size());
|
||||
for (std::size_t row = 0U; row < pair.first->Size(); ++row)
|
||||
ExpectSameBits((*pair.first)[row], (*pair.second)[row]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user