#include "fesa/element/Element.hpp" #include #include namespace { using fesa::element::ElementId; using fesa::element::ElementType; using fesa::element::NodeId; using fesa::element::PropertyId; int require(bool condition) { return condition ? 0 : 1; } class TestElement final : public fesa::element::Element { public: ElementId id() const noexcept override { return 100; } ElementType type() const noexcept override { return ElementType::Mitc4; } std::size_t nodeCount() const noexcept override { return connectivity_.size(); } const std::array& connectivity() const noexcept override { return connectivity_; } PropertyId propertyId() const noexcept override { return 500; } private: std::array connectivity_{1, 2, 3, 4}; }; } // namespace int run_element_base_tests() { std::unique_ptr owned = std::make_unique(); const fesa::element::Element& element = *owned; if (const int result = require(element.id() == 100); result != 0) { return result; } if (const int result = require(element.type() == fesa::core::ElementType::Mitc4); result != 0) { return result; } if (const int result = require(element.nodeCount() == 4); result != 0) { return result; } if (const int result = require(element.connectivity()[0] == 1); result != 0) { return result; } if (const int result = require(element.connectivity()[3] == 4); result != 0) { return result; } return require(element.propertyId() == 500); }