From 52c1de9c473cbc257503ac72e4daa160dbda2f9c Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Wed, 22 Aug 2018 15:56:50 +0200 Subject: [PATCH] tests/src/spectral/test-dct.c: check reconstruction works --- tests/src/spectral/test-dct.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/src/spectral/test-dct.c b/tests/src/spectral/test-dct.c index 5ea4d1dd..ebd98467 100644 --- a/tests/src/spectral/test-dct.c +++ b/tests/src/spectral/test-dct.c @@ -1,15 +1,18 @@ -#include +#include +#include "aubio.h" +#include "utils_tests.h" int main (void) { int return_code = 0; uint_t win_s = 32; // window size - uint_t i, n_iters = 10; // number of iterations + uint_t i, j, n_iters = 10; // number of iterations // create dct object aubio_dct_t * dct = new_aubio_dct(win_s); fvec_t * in = new_fvec (win_s); // input buffer fvec_t * dctout = new_fvec (win_s); // output buffer + fvec_t * out = new_fvec (win_s); // input buffer if (!dct || !in || !dctout) { return_code = 1; @@ -19,13 +22,22 @@ int main (void) in->data[0] = 1.; for (i = 0; i < n_iters; i++) { aubio_dct_do (dct, in, dctout); - aubio_dct_rdo (dct, dctout, in); + aubio_dct_rdo (dct, dctout, out); + for (j = 0; j < in->length; j++) { + if (fabsf(in->data[j] - out->data[j]) > 10.e-4) { + fprintf(stderr, "dct reconstruction failed\n"); + } + } } - fvec_print(dctout); + fvec_print(in); + fvec_print(dctout); + fvec_print(out); + del_fvec(dctout); del_fvec(in); - + del_fvec(out); del_aubio_dct(dct); + return return_code; } -- 2.11.0