diff options
author | Daniil Cherednik <dan.cherednik@gmail.com> | 2023-07-03 22:20:01 +0200 |
---|---|---|
committer | Daniil Cherednik <dan.cherednik@gmail.com> | 2023-07-03 22:20:01 +0200 |
commit | 62e6be867fa9f45c5ffbf21a9f2d43100efa2258 (patch) | |
tree | af56bdc9b58a284f7c9923869f45c9ce5f743e35 | |
parent | 18a45590e9585d97ba67992ba1aeef7d42647781 (diff) | |
download | libpqf-62e6be867fa9f45c5ffbf21a9f2d43100efa2258.tar.gz |
-rw-r--r-- | test/ut.c | 65 |
1 files changed, 35 insertions, 30 deletions
@@ -17,7 +17,7 @@ static float* create_chirp(int sz) static int done = 0; for(i = 0; i < sz; i++) { float t = i; - buf[i] = sinf((t + t * t * 0.5 / 2.0) * 2.0 * M_PI/(float)sz); + buf[i] = sinf((t + t * t * 0.5 / 2.0) * 2.0 * M_PI/(float)sz); } return buf; } @@ -34,59 +34,63 @@ static float* create_chirp(int sz) #define PQF_TEST_COVER(module) \ FCT_SUITE_BGN(module) \ { \ - uint16_t sb_sz = module.get_subband_sz(); \ - uint16_t sb_num = module.get_subbands_num(); \ + uint16_t sb_sz = module.get_subband_sz(); \ + uint16_t sb_num = module.get_subbands_num(); \ uint16_t proto_sz = module.get_proto_sz(); \ - const float* proto = module.get_proto(); \ - const float* dummy = calloc(sb_sz * sb_num, sizeof(float)); \ + const float* const proto = module.get_proto(); \ + float* const dummy = alloca(sb_sz * sb_num * sizeof(float)); \ + for (int i = 0; i < sb_sz * sb_num; i++) \ + dummy[i] = 0; \ FCT_TEST_BGN(module-IMP) \ { \ - int k;\ + int k;\ pqf_a_ctx_t ctx; \ int status = pqf_create_a_ctx(sb_sz, sb_num, proto_sz, proto, &ctx); \ fct_chk_eq_int(status, PQF_SUCCESS); \ - float* in_buf1 = calloc(sb_sz * sb_num, sizeof(float)); \ + float* in_buf1 = calloc(sb_sz * sb_num, sizeof(float)); \ in_buf1[500] = 1.0; \ float* out_buf = malloc(sizeof(float) * sb_sz * sb_num); \ float* synth_buf = malloc(sizeof(float) * sb_sz * sb_num * 2); \ - void* dec_ctx = module.create_ctx(); \ + void* dec_ctx = module.create_ctx(); \ pqf_do_analyse(ctx, in_buf1, out_buf); \ - module.synth_filter(out_buf, synth_buf, dec_ctx); \ + module.synth_filter(out_buf, synth_buf, dec_ctx); \ pqf_do_analyse(ctx, dummy, out_buf); \ - module.synth_filter(out_buf, synth_buf + sb_sz * sb_num, dec_ctx); \ + module.synth_filter(out_buf, synth_buf + sb_sz * sb_num, dec_ctx); \ \ check_reconstruction(in_buf1, synth_buf + proto_sz, sb_sz * sb_num); \ \ module.free_ctx(dec_ctx); \ - free(synth_buf); \ + free(synth_buf); \ free(out_buf); \ free(in_buf1); \ + pqf_free_a_ctx(ctx); \ } \ FCT_TEST_END(); \ FCT_TEST_BGN(module-DC) \ { \ - int k; \ + int k; \ pqf_a_ctx_t ctx; \ uint16_t i = 0; \ int status = pqf_create_a_ctx(sb_sz, sb_num, proto_sz, proto, &ctx); \ fct_chk_eq_int(status, PQF_SUCCESS); \ - float* in_buf1 = calloc(sb_sz * sb_num, sizeof(float)); \ - for (i = 0; i < sb_sz * sb_num; i++) \ + float* in_buf1 = calloc(sb_sz * sb_num, sizeof(float)); \ + for (i = 0; i < sb_sz * sb_num; i++) \ in_buf1[i] = 1.0; \ float* out_buf = malloc(sizeof(float) * sb_sz * sb_num); \ float* synth_buf = malloc(sizeof(float) * sb_sz * sb_num * 2); \ - void* dec_ctx = module.create_ctx(); \ + void* dec_ctx = module.create_ctx(); \ pqf_do_analyse(ctx, in_buf1, out_buf); \ - module.synth_filter(out_buf, synth_buf, dec_ctx); \ + module.synth_filter(out_buf, synth_buf, dec_ctx); \ pqf_do_analyse(ctx, in_buf1, out_buf); \ - module.synth_filter(out_buf, synth_buf + sb_sz * sb_num, dec_ctx); \ + module.synth_filter(out_buf, synth_buf + sb_sz * sb_num, dec_ctx); \ \ check_reconstruction(in_buf1, synth_buf + proto_sz, sb_sz * sb_num); \ \ module.free_ctx(dec_ctx); \ - free(synth_buf); \ + free(synth_buf); \ free(out_buf); \ free(in_buf1); \ + pqf_free_a_ctx(ctx); \ } \ FCT_TEST_END(); \ FCT_TEST_BGN(module-CHIRP-SHORT) \ @@ -98,18 +102,19 @@ static float* create_chirp(int sz) float* out_buf = malloc(sizeof(float) * sb_sz * sb_num); \ float* synth_buf = malloc(sizeof(float) * sb_sz * sb_num * 2); \ fct_chk_eq_int(status, PQF_SUCCESS); \ - void* dec_ctx = module.create_ctx(); \ + void* dec_ctx = module.create_ctx(); \ pqf_do_analyse(ctx, chirp, out_buf); \ - module.synth_filter(out_buf, synth_buf, dec_ctx); \ + module.synth_filter(out_buf, synth_buf, dec_ctx); \ pqf_do_analyse(ctx, dummy, out_buf); \ - module.synth_filter(out_buf, synth_buf + sb_sz * sb_num, dec_ctx); \ + module.synth_filter(out_buf, synth_buf + sb_sz * sb_num, dec_ctx); \ \ check_reconstruction(chirp, synth_buf + proto_sz, sb_sz * sb_num); \ \ module.free_ctx(dec_ctx); \ - free(synth_buf); \ + free(synth_buf); \ free(out_buf); \ free(chirp); \ + pqf_free_a_ctx(ctx); \ } \ FCT_TEST_END(); \ FCT_TEST_BGN(module-CHIRP-LONG) \ @@ -119,27 +124,27 @@ static float* create_chirp(int sz) uint16_t i = 0; \ float* chirp = create_chirp(16384); \ float* out_buf = malloc(sizeof(float) * sb_sz * sb_num); \ - float* synth_buf = malloc(sizeof(float) * 16384 + sb_sz * sb_num); \ + float* const synth_buf = malloc(sizeof(float) * (16384 + sb_sz * sb_num)); \ fct_chk_eq_int(status, PQF_SUCCESS); \ - void* dec_ctx = module.create_ctx(); \ - pqf_do_analyse(ctx, chirp, out_buf); \ - module.synth_filter(out_buf, synth_buf, dec_ctx); \ - for (i = sb_sz * sb_num; i < 16384; i += sb_sz * sb_num) { \ + void* dec_ctx = module.create_ctx(); \ + /*pqf_do_analyse(ctx, chirp, out_buf);*/ \ + /*module.synth_filter(out_buf, synth_buf, dec_ctx);*/ \ + for (i = 0 /*sb_sz * sb_num*/; i < 16384; i += sb_sz * sb_num) { \ pqf_do_analyse(ctx, chirp + i, out_buf); \ module.synth_filter(out_buf, synth_buf + i, dec_ctx); \ } \ pqf_do_analyse(ctx, dummy, out_buf); \ - module.synth_filter(out_buf, synth_buf + 16384, dec_ctx); \ + module.synth_filter(out_buf, synth_buf + 16384, dec_ctx); \ \ check_reconstruction(chirp, synth_buf + proto_sz, 16384); \ \ module.free_ctx(dec_ctx); \ - free(synth_buf); \ + free(synth_buf); \ free(out_buf); \ free(chirp); \ + pqf_free_a_ctx(ctx); \ } \ FCT_TEST_END(); \ - free((void*)dummy); \ } \ FCT_SUITE_END(); \ |