diff options
author | Roland Reichwein <mail@reichwein.it> | 2023-12-29 17:21:16 +0100 |
---|---|---|
committer | Roland Reichwein <mail@reichwein.it> | 2023-12-29 17:21:16 +0100 |
commit | 8f1d7d3000647c049cca7c235d273637cae19885 (patch) | |
tree | 784daa56a1f22cded7671787f4782924f2d91b31 /testsuite.cpp | |
parent | af22f78fb470225d276e8903b327bd57732d13a9 (diff) |
Added tests
Diffstat (limited to 'testsuite.cpp')
-rw-r--r-- | testsuite.cpp | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/testsuite.cpp b/testsuite.cpp index eeed1c6..a846883 100644 --- a/testsuite.cpp +++ b/testsuite.cpp @@ -305,7 +305,7 @@ BOOST_AUTO_TEST_CASE(fft_2) BOOST_REQUIRE_EQUAL(ifft_result[1], (std::complex<double>{0.0, 0.0})); } -BOOST_AUTO_TEST_CASE(fft_4) +BOOST_AUTO_TEST_CASE(fft_4a) { std::vector<std::complex<double>> v{{1, 0}, {0, 0}, {0, 0}, {0, 0}}; RIT::FFT fft{4}; @@ -326,3 +326,47 @@ BOOST_AUTO_TEST_CASE(fft_4) 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})); } + +BOOST_AUTO_TEST_CASE(fft_4b) +{ + std::vector<std::complex<double>> v{{1, 0}, {-1, 0}, {1, 0}, {-1, 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>{0.0, 0.0})); + BOOST_REQUIRE_EQUAL(fft_result[1], (std::complex<double>{0.0, 0.0})); + BOOST_REQUIRE_EQUAL(fft_result[2], (std::complex<double>{4.0, 0.0})); + BOOST_REQUIRE_EQUAL(fft_result[3], (std::complex<double>{0.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>{-1.0, 0.0})); + BOOST_REQUIRE_EQUAL(ifft_result[2], (std::complex<double>{1.0, 0.0})); + BOOST_REQUIRE_EQUAL(ifft_result[3], (std::complex<double>{-1.0, 0.0})); +} + +BOOST_AUTO_TEST_CASE(fft_4c) +{ + std::vector<std::complex<double>> v{{-1, 0}, {1, 0}, {-1, 0}, {1, 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>{0.0, 0.0})); + BOOST_REQUIRE_EQUAL(fft_result[1], (std::complex<double>{0.0, 0.0})); + BOOST_REQUIRE_EQUAL(fft_result[2], (std::complex<double>{-4.0, 0.0})); + BOOST_REQUIRE_EQUAL(fft_result[3], (std::complex<double>{0.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>{1.0, 0.0})); + BOOST_REQUIRE_EQUAL(ifft_result[2], (std::complex<double>{-1.0, 0.0})); + BOOST_REQUIRE_EQUAL(ifft_result[3], (std::complex<double>{1.0, 0.0})); +} |