aboutsummaryrefslogtreecommitdiff
path: root/tests/xttest_util.cpp
diff options
context:
space:
mode:
authorJamie Bullock <jamie@jamiebullock.com>2014-11-11 17:30:31 +0000
committerJamie Bullock <jamie@jamiebullock.com>2014-11-11 17:30:31 +0000
commitc8317ed6210ebc7fa5dbb1951f9e8dd4038af8b6 (patch)
tree1e6aa9e0feb6ce30749bc9fa52dacb424378ba75 /tests/xttest_util.cpp
parentba706261d3fc5b436aa6f09d57e62eeb77377d8f (diff)
parentb3b6e6fd6b39e7f2bbbd8e2209302590d6d155eb (diff)
downloadLibXtract-c8317ed6210ebc7fa5dbb1951f9e8dd4038af8b6.tar.gz
LibXtract-c8317ed6210ebc7fa5dbb1951f9e8dd4038af8b6.tar.bz2
LibXtract-c8317ed6210ebc7fa5dbb1951f9e8dd4038af8b6.zip
Merge branch 'feature/unit-tests' into develop
Diffstat (limited to 'tests/xttest_util.cpp')
-rw-r--r--tests/xttest_util.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/xttest_util.cpp b/tests/xttest_util.cpp
new file mode 100644
index 0000000..c10ff53
--- /dev/null
+++ b/tests/xttest_util.cpp
@@ -0,0 +1,65 @@
+
+
+#include "xttest_util.hpp"
+#include "xttest_tables.hpp"
+
+#include <random>
+
+#include <math.h>
+#include <stdio.h>
+
+
+#define XTTEST_2PI 6.28318530717958647693
+
+void xttest_gen_sine(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude)
+{
+ int samples_per_period = samplerate / frequency;
+
+ for (uint32_t i = 0; i < tablesize; ++i)
+ {
+ int phase = i % samples_per_period;
+ table[i] = sin((phase / (double)samples_per_period) * XTTEST_2PI) * amplitude;
+ }
+}
+
+void xttest_gen_sawtooth(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude)
+{
+ int samples_per_period = samplerate / frequency;
+
+ for (uint32_t i = 0; i < tablesize; ++i)
+ {
+ int phase = i % samples_per_period;
+ table[i] = ((phase / (double)samples_per_period) * 2.0 - 1.0) * amplitude;
+ }
+}
+
+void xttest_gen_noise(double *table, uint32_t tablesize, double amplitude)
+{
+ for (uint32_t i = 0; i < tablesize; ++i)
+ {
+ table[i] = xttest_noise1024[i] * amplitude;
+ }
+}
+
+uint16_t xttest_ftom(double frequency)
+{
+ return (int)roundf(6900.0 + 1200.0 * log2(frequency / 440.0));
+}
+
+void xttest_add(double *table1, double *table2, uint32_t tablesize)
+{
+ for (uint32_t i = 0; i < tablesize; ++i)
+ {
+ table1[i] += table2[i];
+ }
+}
+
+void xttest_mul(double *table, uint32_t tablesize, double constant)
+{
+ for (uint32_t i = 0; i < tablesize; ++i)
+ {
+ table[i] *= constant;
+ }
+}
+
+