24 #include "cheetah/utils/test/ConvolvePlanTest.h" 25 #include "cheetah/utils/ConvolvePlan.h" 35 ConvolvePlanTest::ConvolvePlanTest()
40 ConvolvePlanTest::~ConvolvePlanTest()
44 void ConvolvePlanTest::SetUp()
48 void ConvolvePlanTest::TearDown()
52 TEST_F(ConvolvePlanTest, test_all_null_function)
54 constexpr std::size_t npts=100;
55 std::array<float, npts> a;
56 std::fill(a.begin(), a.end(), 0.0);
57 std::array<float, npts> b;
58 std::fill(b.begin(), b.end(), 0.0);
59 std::array<float, npts+1> output;
60 std::fill(output.begin(), output.end(), 0.0);
62 utils::ConvolvePlan plan(npts, a.data(), b.data(), output.data());
64 std::for_each(output.begin(), output.end(), [](
float t) { ASSERT_EQ(0.0, t); });
67 TEST_F(ConvolvePlanTest, test_a_null_function)
69 constexpr std::size_t npts=100;
70 std::array<float, npts> a;
71 std::fill(a.begin(), a.end(), 0.0);
72 std::array<float, npts> b;
73 std::fill(b.begin(), b.end(), 1.0);
74 std::array<float, npts+1> output;
75 std::fill(output.begin(), output.end(), 0.0);
77 utils::ConvolvePlan plan(npts, a.data(), b.data(), output.data());
79 std::for_each(output.begin(), output.end(), [](
float t) { ASSERT_EQ(0.0, t); });
82 TEST_F(ConvolvePlanTest, test_b_null_function)
84 constexpr std::size_t npts=100;
85 std::array<float, npts> a;
86 std::fill(a.begin(), a.end(), 1.0);
87 std::array<float, npts> b;
88 std::fill(b.begin(), b.end(), 0.0);
89 std::array<float, npts+1> output;
90 std::fill(output.begin(), output.end(), 0.0);
92 utils::ConvolvePlan plan(npts, a.data(), b.data(), output.data());
94 std::for_each(output.begin(), output.end(), [](
float t) { ASSERT_EQ(0.0, t); });
97 TEST_F(ConvolvePlanTest, test_a_equal_b)
99 constexpr std::size_t npts=100;
100 std::array<float, npts> a;
101 std::fill(a.begin(), a.end(), 1.0);
102 std::array<float, npts> b;
103 std::fill(b.begin(), b.end(), 1.0);
104 std::array<float, npts+1> output;
105 std::fill(output.begin(), output.end(), 0.0);
107 utils::ConvolvePlan plan(npts, a.data(), b.data(), output.data());
109 ASSERT_EQ(0.0, output.back());
110 std::for_each(output.begin(), output.end() - 1, [&](
float t) { ASSERT_EQ(100.0, t); });
Some limits and constants for FLDO.