Select Git revision
test_PolynomialBasis.cpp
-
Stéphane Del Pino authoredStéphane Del Pino authored
test_PolynomialBasis.cpp 1.11 KiB
#include <catch2/catch.hpp>
#include <Kokkos_Core.hpp>
#include <utils/PugsAssert.hpp>
#include <utils/Types.hpp>
#include <algebra/TinyMatrix.hpp>
#include <analysis/Polynomial.hpp>
#include <analysis/PolynomialBasis.hpp>
// Instantiate to ensure full coverage is performed
template class Polynomial<0>;
template class Polynomial<1>;
template class Polynomial<2>;
template class PolynomialBasis<2>;
// clazy:excludeall=non-pod-global-static
TEST_CASE("PolynomialBasis", "[analysis]")
{
SECTION("construction")
{
REQUIRE_NOTHROW(PolynomialBasis<2>{});
}
SECTION("size")
{
PolynomialBasis<2> B;
REQUIRE(B.size() == 3);
REQUIRE(B.degree() == 2);
}
SECTION("build")
{
PolynomialBasis<2> B;
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}});
PolynomialBasis<2> C;
C.build(BasisType::taylor);
REQUIRE(B.elements()[1] == C.elements()[1]);
C.build(BasisType::taylor, 1);
REQUIRE(C.elements()[2] == Polynomial<2>{{1, -2, 1}});
}
}