feat(linear-static-mitc4-shell): step 13 - shell-reference-comparison
This commit is contained in:
@@ -659,7 +659,7 @@ TEST(Mitc4ReferenceComparison, RejectsInvalidInventoryBeforeNumericComparison) {
|
||||
}
|
||||
|
||||
// MITC4-REF-003
|
||||
TEST(Mitc4ReferenceComparison, AppliesAbaqusComponentScaleWithoutClampOrRowDenominator) {
|
||||
TEST(Mitc4ReferenceComparison, AppliesFixedAbsoluteToleranceWithoutScaleClampOrRowDenominator) {
|
||||
ContractFixture fixture{"tolerance"};
|
||||
auto reference = defaultRows();
|
||||
reference[0U].values[0U] = 0.0;
|
||||
@@ -668,10 +668,10 @@ TEST(Mitc4ReferenceComparison, AppliesAbaqusComponentScaleWithoutClampOrRowDenom
|
||||
reference[1U].values[1U] = 0.0;
|
||||
writeCsv(fixture.csv(), reference);
|
||||
auto fesaValues = reference;
|
||||
fesaValues[0U].values[0U] = 1.5e-6;
|
||||
fesaValues[1U].values[0U] += 2.002e-6;
|
||||
fesaValues[0U].values[1U] = 0.999e-9;
|
||||
fesaValues[1U].values[1U] = 1.001e-9;
|
||||
fesaValues[0U].values[0U] = 0.9999e-5;
|
||||
fesaValues[1U].values[0U] += 1.0001e-5;
|
||||
fesaValues[0U].values[1U] = 0.9999e-5;
|
||||
fesaValues[1U].values[1U] = 1.0001e-5;
|
||||
writeHdf5(fixture.results(), fixture.input(), fesaValues);
|
||||
|
||||
auto result = fesa::test::Mitc4ReferenceComparison::compare(
|
||||
@@ -687,12 +687,22 @@ TEST(Mitc4ReferenceComparison, AppliesAbaqusComponentScaleWithoutClampOrRowDenom
|
||||
ASSERT_NE(u1Scaled, nullptr);
|
||||
ASSERT_NE(u2Near, nullptr);
|
||||
ASSERT_NE(u2Over, nullptr);
|
||||
EXPECT_DOUBLE_EQ(u1Zero->tolerance, 2.001e-6);
|
||||
EXPECT_DOUBLE_EQ(u1Zero->tolerance, 1.0e-5);
|
||||
EXPECT_TRUE(u1Zero->withinTolerance);
|
||||
EXPECT_NEAR(u1Zero->normalizedError, 0.9999, 1.0e-12);
|
||||
EXPECT_FALSE(u1Scaled->withinTolerance);
|
||||
EXPECT_DOUBLE_EQ(u2Near->tolerance, 1.0e-9);
|
||||
EXPECT_NEAR(u1Scaled->normalizedError, 1.0001, 2.0e-11);
|
||||
EXPECT_DOUBLE_EQ(u2Near->tolerance, 1.0e-5);
|
||||
EXPECT_TRUE(u2Near->withinTolerance);
|
||||
EXPECT_NEAR(u2Near->normalizedError, 0.9999, 1.0e-12);
|
||||
EXPECT_FALSE(u2Over->withinTolerance);
|
||||
EXPECT_NEAR(u2Over->normalizedError, 1.0001, 1.0e-12);
|
||||
for (const auto& row : report.rows) {
|
||||
EXPECT_DOUBLE_EQ(row.tolerance, 1.0e-5);
|
||||
}
|
||||
for (const auto& metric : report.metrics) {
|
||||
EXPECT_DOUBLE_EQ(metric.tolerance, 1.0e-5);
|
||||
}
|
||||
const auto* u1Metric = findMetric(report, "U1");
|
||||
ASSERT_NE(u1Metric, nullptr);
|
||||
EXPECT_DOUBLE_EQ(u1Metric->referenceScale, 2.0);
|
||||
|
||||
Reference in New Issue
Block a user