[tests] improve test-lvec
authorPaul Brossier <piem@piem.org>
Fri, 21 Dec 2018 11:44:46 +0000 (12:44 +0100)
committerPaul Brossier <piem@piem.org>
Fri, 21 Dec 2018 11:44:46 +0000 (12:44 +0100)
tests/src/test-lvec.c

index 17b5fc6..d1a8a0e 100644 (file)
@@ -1,18 +1,47 @@
 #include "aubio.h"
 #include "utils_tests.h"
 
 #include "aubio.h"
 #include "utils_tests.h"
 
+void assert_lvec_all_equal(lvec_t *vec, lsmp_t scalar)
+{
+  uint_t i;
+  for (i = 0; i < vec->length; i++) {
+    assert(vec->data[i] == scalar);
+  }
+}
+
 int main (void)
 {
 int main (void)
 {
-  uint_t win_s = 32; // window size
-  lvec_t * sp = new_lvec (win_s); // input buffer
-  lvec_set_sample (sp, 2./3., 0);
-  PRINT_MSG(AUBIO_LSMP_FMT "\n", lvec_get_sample (sp, 0));
-  lvec_print (sp);
-  lvec_ones (sp);
-  lvec_print (sp);
-  lvec_set_all (sp, 3./5.);
-  lvec_print (sp);
-  del_lvec(sp);
+  uint_t length = 32; // window size
+
+  lvec_t * vec = new_lvec (length); // input buffer
+
+  assert(vec);
+
+  assert(vec->length == length);
+
+  lvec_set_sample (vec, 3., 0);
+  assert(lvec_get_sample(vec, 0) == 3.);
+
+  assert(lvec_get_data(vec) == vec->data);
+
+  lvec_print (vec);
+  // note AUBIO_LSMP_FMT can be used to print lsmp_t
+  PRINT_MSG(AUBIO_LSMP_FMT "\n", lvec_get_sample (vec, 0));
+
+  lvec_set_all (vec, 2.);
+  assert_lvec_all_equal(vec, 2.);
+
+  lvec_ones (vec);
+  assert_lvec_all_equal(vec, 1.);
+
+  lvec_zeros (vec);
+  assert_lvec_all_equal(vec, 0.);
+
+  del_lvec(vec);
+
+  // wrong parameters
+  assert(new_lvec(0) == NULL);
+  assert(new_lvec(-1) == NULL);
+
   return 0;
 }
   return 0;
 }
-