diff --git a/src/analysis/PolynomialBasis.hpp b/src/analysis/PolynomialBasis.hpp index 4359f408d93db2bc814a9225f69b73982d04f796..84b223fd740b32a806b8501c395b2b793953faa9 100644 --- a/src/analysis/PolynomialBasis.hpp +++ b/src/analysis/PolynomialBasis.hpp @@ -7,6 +7,7 @@ enum class BasisType { + undefined, lagrange, canonical, taylor @@ -104,6 +105,8 @@ class PolynomialBasis return "canonical"; case BasisType::taylor: return "taylor"; + case BasisType::undefined: + return "undefined"; default: return "unknown basis type"; } @@ -141,19 +144,17 @@ class PolynomialBasis return _buildTaylorBasis(shift); break; } - default: + // LCOV_EXCL_START + default: { throw UnexpectedError("unknown basis type"); } + // LCOV_EXCL_STOP + } } - PUGS_INLINE constexpr PolynomialBasis(const TinyVector<N + 1, Polynomial<N>>& elements) noexcept - : m_elements{elements} - {} PUGS_INLINE - constexpr PolynomialBasis(TinyVector<N + 1, Polynomial<N>>&& elements) noexcept : m_elements{elements} {} + constexpr PolynomialBasis() noexcept : m_basis_type{BasisType::undefined} {} - PUGS_INLINE - constexpr PolynomialBasis() noexcept = default; - ~PolynomialBasis() = default; + ~PolynomialBasis() = default; }; #endif // POLYNOMIAL_BASIS_HPP diff --git a/src/language/modules/SchemeModule.hpp b/src/language/modules/SchemeModule.hpp index 963ed4af02a3c8e7895c89f705d15bac1ab8d521..aa0f1322618956da9b3a4bc095c87f95ebf719fa 100644 --- a/src/language/modules/SchemeModule.hpp +++ b/src/language/modules/SchemeModule.hpp @@ -17,8 +17,8 @@ inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const IBoundaryCo ASTNodeDataType::build<ASTNodeDataType::type_id_t>("boundary_condition"); template <> -inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const BasisType>> = {ASTNodeDataType::type_id_t, - "basis_type"}; +inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const BasisType>> = + ASTNodeDataType::build<ASTNodeDataType::type_id_t>("basis_type"); class SchemeModule : public BuiltinModule { diff --git a/tests/test_PolynomialBasis.cpp b/tests/test_PolynomialBasis.cpp index ae3745553d9e5dc4a528e32a86818bd7965301e0..ac34fca34d84ac5b2f0ff7764e6097742abbd972 100644 --- a/tests/test_PolynomialBasis.cpp +++ b/tests/test_PolynomialBasis.cpp @@ -21,9 +21,7 @@ TEST_CASE("PolynomialBasis", "[analysis]") { SECTION("construction") { - TinyVector<3, Polynomial<2>> elements; - REQUIRE_NOTHROW(PolynomialBasis<2>(elements)); - REQUIRE_NOTHROW(PolynomialBasis<2>()); + REQUIRE_NOTHROW(PolynomialBasis<2>{}); } SECTION("size") { @@ -34,7 +32,7 @@ TEST_CASE("PolynomialBasis", "[analysis]") SECTION("build") { PolynomialBasis<2> B; - REQUIRE(B.displayType() == "unknown basis type"); + REQUIRE(B.displayType() == "undefined"); B.build(BasisType::canonical); REQUIRE(B.elements()[1] == Polynomial<2>{{0, 1, 0}}); REQUIRE(B.elements()[2] == Polynomial<2>{{0, 0, 1}});