From 5b01642cbc80f1b439108c2115d514335f4dd24b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EA=B2=BD=EC=A2=85?= Date: Fri, 12 Jun 2026 17:59:44 +0900 Subject: [PATCH] feat(euler-beam-3d): add beam topology --- phases/euler-beam-3d/index.json | 3 ++- src/fesa/model/element.hpp | 1 + tests/unit/model_element_test.cpp | 16 +++++++++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/phases/euler-beam-3d/index.json b/phases/euler-beam-3d/index.json index dad3bb2..3bd9e07 100644 --- a/phases/euler-beam-3d/index.json +++ b/phases/euler-beam-3d/index.json @@ -62,7 +62,8 @@ { "step": 6, "name": "model-beam-topology", - "status": "pending", + "status": "completed", + "summary": "beam2 model topology added with unit test", "allowed_paths": [ "src/fesa/model/element.hpp", "src/fesa/model/element.cpp", diff --git a/src/fesa/model/element.hpp b/src/fesa/model/element.hpp index ab7da3a..adc836c 100644 --- a/src/fesa/model/element.hpp +++ b/src/fesa/model/element.hpp @@ -9,6 +9,7 @@ namespace fesa::model { enum class ElementTopology { truss2, bar2, + beam2, unknown }; diff --git a/tests/unit/model_element_test.cpp b/tests/unit/model_element_test.cpp index d66c7fc..ea0b40e 100644 --- a/tests/unit/model_element_test.cpp +++ b/tests/unit/model_element_test.cpp @@ -8,5 +8,19 @@ int main() {fesa::core::NodeId{1}, fesa::core::NodeId{2}}, fesa::core::PropertyId{3} }; - return element.node_ids().size() == 2 ? 0 : 1; + + const fesa::model::Element beam{ + fesa::core::ElementId{10}, + fesa::model::ElementTopology::beam2, + {fesa::core::NodeId{1}, fesa::core::NodeId{2}}, + fesa::core::PropertyId{7} + }; + + if (element.topology() != fesa::model::ElementTopology::bar2) { + return 1; + } + if (beam.topology() != fesa::model::ElementTopology::beam2) { + return 1; + } + return beam.node_ids().size() == 2 ? 0 : 1; }