summaryrefslogtreecommitdiffhomepage
path: root/testsuite.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite.cpp')
-rw-r--r--testsuite.cpp42
1 files changed, 41 insertions, 1 deletions
diff --git a/testsuite.cpp b/testsuite.cpp
index cc51cfa..eeed1c6 100644
--- a/testsuite.cpp
+++ b/testsuite.cpp
@@ -251,7 +251,7 @@ public:
}
};
-BOOST_AUTO_TEST_CASE(fft)
+BOOST_AUTO_TEST_CASE(performance)
{
std::vector<std::complex<double>> v(4096, 0);
@@ -286,3 +286,43 @@ BOOST_AUTO_TEST_CASE(fft)
// TODO:
// -0.5 <= deviation <= 0.5
+
+BOOST_AUTO_TEST_CASE(fft_2)
+{
+ std::vector<std::complex<double>> v{{1, 0}, {0, 0}};
+ RIT::FFT fft{2};
+ auto fft_result = fft(v);
+
+ BOOST_REQUIRE_EQUAL(fft_result.size(), 2);
+ BOOST_REQUIRE_EQUAL(fft_result[0], (std::complex<double>{1.0, 0.0}));
+ BOOST_REQUIRE_EQUAL(fft_result[1], (std::complex<double>{1.0, 0.0}));
+
+ RIT::IFFT ifft{2};
+ auto ifft_result = ifft(fft_result);
+
+ BOOST_REQUIRE_EQUAL(ifft_result.size(), 2);
+ BOOST_REQUIRE_EQUAL(ifft_result[0], (std::complex<double>{1.0, 0.0}));
+ BOOST_REQUIRE_EQUAL(ifft_result[1], (std::complex<double>{0.0, 0.0}));
+}
+
+BOOST_AUTO_TEST_CASE(fft_4)
+{
+ std::vector<std::complex<double>> v{{1, 0}, {0, 0}, {0, 0}, {0, 0}};
+ RIT::FFT fft{4};
+ auto fft_result = fft(v);
+
+ BOOST_REQUIRE_EQUAL(fft_result.size(), 4);
+ BOOST_REQUIRE_EQUAL(fft_result[0], (std::complex<double>{1.0, 0.0}));
+ BOOST_REQUIRE_EQUAL(fft_result[1], (std::complex<double>{1.0, 0.0}));
+ BOOST_REQUIRE_EQUAL(fft_result[2], (std::complex<double>{1.0, 0.0}));
+ BOOST_REQUIRE_EQUAL(fft_result[3], (std::complex<double>{1.0, 0.0}));
+
+ RIT::IFFT ifft{4};
+ auto ifft_result = ifft(fft_result);
+
+ BOOST_REQUIRE_EQUAL(ifft_result.size(), 4);
+ BOOST_REQUIRE_EQUAL(ifft_result[0], (std::complex<double>{1.0, 0.0}));
+ BOOST_REQUIRE_EQUAL(ifft_result[1], (std::complex<double>{0.0, 0.0}));
+ BOOST_REQUIRE_EQUAL(ifft_result[2], (std::complex<double>{0.0, 0.0}));
+ BOOST_REQUIRE_EQUAL(ifft_result[3], (std::complex<double>{0.0, 0.0}));
+}