test: onboard quad 02 phase1 reference

This commit is contained in:
NINI
2026-05-04 12:34:39 +09:00
parent 827af924d0
commit 950ce29df1
9 changed files with 417 additions and 12 deletions
+28
View File
@@ -150,6 +150,26 @@ FESA_TEST(quad01_reference_input_remains_unsupported) {
fesa::containsDiagnostic(parsed.diagnostics, "FESA-PARSE-UNSUPPORTED-ELEMENT"));
}
FESA_TEST(quad02_original_reference_input_remains_unsupported) {
fesa::AbaqusInputParser parser;
auto parsed = parser.parseFile(sourceRoot() + "/references/quad_02.inp");
FESA_CHECK(!parsed.ok());
FESA_CHECK(fesa::containsDiagnostic(parsed.diagnostics, "FESA-PARSE-UNSUPPORTED-KEYWORD"));
}
FESA_TEST(quad02_phase1_normalized_input_uses_supported_subset) {
fesa::AbaqusInputParser parser;
auto parsed = parser.parseFile(sourceRoot() + "/references/quad_02_phase1.inp");
FESA_CHECK(parsed.ok());
FESA_CHECK(parsed.domain.nodes.size() == 121);
FESA_CHECK(parsed.domain.elements.size() == 100);
FESA_CHECK(parsed.domain.node_sets.at("fixed_boundary").node_ids.size() == 40);
FESA_CHECK(parsed.domain.node_sets.at("load_node").node_ids.size() == 1);
FESA_CHECK(parsed.domain.element_sets.at("all_elements").element_ids.size() == 100);
FESA_CHECK(parsed.domain.materials.at("material_1").elastic_modulus == 7.0e10);
FESA_CHECK(parsed.domain.shell_sections.front().thickness == 1.0);
}
FESA_TEST(domain_validation_reports_missing_property_and_targets) {
fesa::Domain domain;
domain.nodes[1] = {1, {0, 0, 0}};
@@ -223,6 +243,14 @@ FESA_TEST(displacement_csv_loader_accepts_quad01_format) {
FESA_CHECK(table.rows.count(1) == 1);
}
FESA_TEST(displacement_csv_loader_accepts_quad02_format) {
auto table = fesa::loadDisplacementCsv(sourceRoot() + "/references/quad_02_displacements.csv");
FESA_CHECK(!fesa::hasError(table.diagnostics));
FESA_CHECK(table.rows.size() == 121);
FESA_CHECK(table.rows.count(2) == 1);
FESA_CHECK(table.rows.at(2).values[2] < 0.0);
}
FESA_TEST(displacement_comparator_matches_by_node_id_not_row_order) {
fesa::FieldOutput actual;
actual.name = "U";