aboutsummaryrefslogtreecommitdiff
path: root/unittest/tvq_mbest.c
diff options
context:
space:
mode:
authorMarin Ivanov <[email protected]>2025-07-25 10:17:14 +0300
committerMarin Ivanov <[email protected]>2026-01-18 20:09:26 +0200
commit0168586485e6310c598713c911b1dec5618d61a1 (patch)
tree6aabc2a12ef8fef70683f5389bea00f948015f77 /unittest/tvq_mbest.c
Initial commitHEADmaster
* codec2 cut-down version 1.2.0 * Remove codebook and generation of sources * remove c2dec c2enc binaries * prepare for emscripten
Diffstat (limited to 'unittest/tvq_mbest.c')
-rw-r--r--unittest/tvq_mbest.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/unittest/tvq_mbest.c b/unittest/tvq_mbest.c
new file mode 100644
index 0000000..1ea52a9
--- /dev/null
+++ b/unittest/tvq_mbest.c
@@ -0,0 +1,32 @@
+/*
+ tvq_mbest.c
+ David Rowe Dec 2019
+
+ Generate some test vectors to exercise misc/vq_mbest.c
+*/
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+void write_float_file(char fn[], float *values, int n) {
+ FILE *f = fopen(fn, "wb");
+ assert(f != NULL);
+ assert(fwrite(values, sizeof(float), n, f) == n);
+ fclose(f);
+}
+
+int main(void) {
+ /* we're only interested in searching the inner 2 values, outer elements
+ should be ignored */
+ float target[] = {0.0, 1.0, 1.0, 0.0};
+ write_float_file("target.f32", target, 4);
+ float vq1[] = {
+ 1.0, 0.9, 0.9, 1.0, /* this will be a better match on first stage */
+ 2.0, 0.8, 0.8, 2.0}; /* but after second stage should choose this */
+ write_float_file("vq1.f32", vq1, 8);
+ float vq2[] = {10.0, 0.3, 0.3, 10.0, 20.0,
+ 0.2, 0.2, 20.0}; /* 0.8+0.2 == 1.0 so best 2nd stage entry */
+ write_float_file("vq2.f32", vq2, 8);
+ return 0;
+}