#define BOOST_TEST_MODULE DigitalFilterTests #include "fratio" #include "test_functions.h" #include "warning_macro.h" #include DISABLE_CONVERSION_WARNING_BEGIN template struct System { fratio::vectX_t data = (fratio::vectX_t(4) << 1, 2, 3, 4).finished(); fratio::vectX_t aCoeff = (fratio::vectX_t(2) << 1, -0.99993717).finished(); fratio::vectX_t bCoeff = (fratio::vectX_t(2) << 0.99996859, -0.99996859).finished(); fratio::vectX_t results = (fratio::vectX_t(4) << 0.99996859, 1.999874351973491, 2.999717289867956, 3.999497407630634).finished(); }; DISABLE_CONVERSION_WARNING_END BOOST_FIXTURE_TEST_CASE(DIGITAL_FILTER_FLOAT, System) { auto df = fratio::DigitalFilterf(aCoeff, bCoeff); test_coeffs(aCoeff, bCoeff, df, std::numeric_limits::epsilon() * 10); test_results(results, data, df, std::numeric_limits::epsilon() * 10); } BOOST_FIXTURE_TEST_CASE(DIGITAL_FILTER_DOUBLE, System) { auto df = fratio::DigitalFilterd(aCoeff, bCoeff); test_coeffs(aCoeff, bCoeff, df, std::numeric_limits::epsilon() * 10); test_results(results, data, df, std::numeric_limits::epsilon() * 10); }