Mercurial > hg > libxtract
annotate tests/xttest_util.cpp @ 264:ecd6f2cf1346
Initial unit testing setup with an example test
author | Jamie Bullock <jamie@jamiebullock.com> |
---|---|
date | Mon, 10 Nov 2014 20:29:19 +0000 |
parents | |
children | 41fe82c7ff80 |
rev | line source |
---|---|
jamie@264 | 1 |
jamie@264 | 2 |
jamie@264 | 3 #include "xttest_util.hpp" |
jamie@264 | 4 |
jamie@264 | 5 #include <random> |
jamie@264 | 6 |
jamie@264 | 7 #include <math.h> |
jamie@264 | 8 #include <stdio.h> |
jamie@264 | 9 |
jamie@264 | 10 |
jamie@264 | 11 #define XTTEST_2PI 6.28318530717958647693 |
jamie@264 | 12 |
jamie@264 | 13 void xttest_gen_sine(double *table, uint32_t tablesize, double samplerate, double frequency, double amplitude) |
jamie@264 | 14 { |
jamie@264 | 15 int samples_per_period = samplerate / frequency; |
jamie@264 | 16 |
jamie@264 | 17 for (int i = 0; i < tablesize; ++i) |
jamie@264 | 18 { |
jamie@264 | 19 int phase = i % samples_per_period; |
jamie@264 | 20 table[i] = sin((phase / (double)samples_per_period) * XTTEST_2PI) * amplitude; |
jamie@264 | 21 } |
jamie@264 | 22 } |
jamie@264 | 23 |
jamie@264 | 24 void xttest_gen_noise(double *table, uint32_t tablesize, double amplitude) |
jamie@264 | 25 { |
jamie@264 | 26 std::random_device rd; |
jamie@264 | 27 std::mt19937 gen(rd()); |
jamie@264 | 28 std::uniform_real_distribution<double> dist(-amplitude, amplitude); |
jamie@264 | 29 |
jamie@264 | 30 for (int i = 0; i < tablesize; ++i) |
jamie@264 | 31 { |
jamie@264 | 32 table[i] = dist(gen); |
jamie@264 | 33 printf("%f\n", table[i]); |
jamie@264 | 34 } |
jamie@264 | 35 |
jamie@264 | 36 } |
jamie@264 | 37 |