Files
FESADev/tests/unit/results_containers_test.cpp
T
2026-06-12 02:25:07 +09:00

70 lines
1.4 KiB
C++

#include <fesa/results/results.hpp>
#include <stdexcept>
namespace {
int fail()
{
return 1;
}
} // namespace
int main()
{
fesa::results::ResultStep step{"static"};
auto& frame = step.add_frame(1, 0.0);
if (step.name() != "static" ||
step.frames().size() != 1 ||
frame.frame_id() != 1 ||
frame.time() != 0.0) {
return fail();
}
frame.add_field_output({
"U",
fesa::results::FieldLocation::nodal,
{"ux", "uy"},
{1, 2},
{0.0, 0.1, 1.0, 1.1}
});
if (frame.field_outputs().size() != 1 ||
frame.field_outputs()[0].entity_ids[1] != 2 ||
frame.field_outputs()[0].values[3] != 1.1) {
return fail();
}
frame.add_history_output({"load-factor", {0.0, 1.0}, {0.0, 10.0}});
if (frame.history_outputs().size() != 1 ||
frame.history_outputs()[0].values[1] != 10.0) {
return fail();
}
try {
frame.add_field_output({
"bad",
fesa::results::FieldLocation::nodal,
{},
{1},
{0.0}
});
return fail();
} catch (const std::invalid_argument&) {
}
try {
frame.add_field_output({
"bad-shape",
fesa::results::FieldLocation::nodal,
{"ux", "uy"},
{1},
{0.0}
});
return fail();
} catch (const std::invalid_argument&) {
}
return 0;
}