feat: add analysis model objects

This commit is contained in:
김경종
2026-06-09 09:04:21 +09:00
parent fdeac602f4
commit 8f24213ab7
44 changed files with 1893 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
#include "fesa/property/ShellProperty.hpp"
#include <stdexcept>
namespace {
int require(bool condition) {
return condition ? 0 : 1;
}
template <typename Exception, typename Function>
int require_throws(Function&& function) {
try {
function();
} catch (const Exception&) {
return 0;
} catch (...) {
return 1;
}
return 1;
}
} // namespace
int run_shell_property_tests() {
const fesa::property::ShellProperty property{500, 700, 0.01};
if (const int result = require(property.id() == 500); result != 0) {
return result;
}
if (const int result = require(property.materialId() == 700); result != 0) {
return result;
}
if (const int result = require(property.thickness() == 0.01); result != 0) {
return result;
}
if (const int result = require_throws<std::invalid_argument>([]() {
(void)fesa::property::ShellProperty{501, 700, 0.0};
});
result != 0) {
return result;
}
return require_throws<std::invalid_argument>([]() {
(void)fesa::property::ShellProperty{502, 700, -0.01};
});
}