feat(shell-surface-pressure-load): step 1 - map-pressure-input-contract

This commit is contained in:
KOKO\Mimi
2026-09-01 12:34:29 +09:00
parent ccc2f29dbf
commit ca3e4bc1b0
16 changed files with 1102 additions and 62 deletions
@@ -121,3 +121,31 @@ TEST(InpSyntax, ReadsLegacyCantileverWithoutMutation) {
EXPECT_EQ(ReadExactBytes(input_path), bytes_before);
EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before);
}
TEST(InpSyntax, AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines) {
const TemporaryInputFile input{
"keyword-continuation",
"*SuRfAcE, TYPE=ELEMENT,\r\n"
" NAME=Pressure_Surface\r\n"
"Instance-A.0010, SPOS\r\n"};
const auto result = fesa::AbaqusInputReader{}.Read(input.Path());
ASSERT_TRUE(result.HasValue());
ASSERT_EQ(result.Value().blocks.size(), 1U);
const auto& block = result.Value().blocks[0];
EXPECT_EQ(block.canonical_name, "SURFACE");
EXPECT_EQ(block.original_line, "*SuRfAcE, TYPE=ELEMENT,");
EXPECT_EQ(block.physical_lines,
(std::vector<std::string>{"*SuRfAcE, TYPE=ELEMENT,",
" NAME=Pressure_Surface"}));
ASSERT_EQ(block.parameters.size(), 2U);
EXPECT_EQ(block.parameters[0].name, "TYPE");
ASSERT_TRUE(block.parameters[0].value.has_value());
EXPECT_EQ(*block.parameters[0].value, "ELEMENT");
EXPECT_EQ(block.parameters[1].name, "NAME");
ASSERT_TRUE(block.parameters[1].value.has_value());
EXPECT_EQ(*block.parameters[1].value, "Pressure_Surface");
ASSERT_EQ(block.data.size(), 1U);
EXPECT_EQ(block.data[0].location.line, 3U);
}