diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-06-16 18:05:00 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-06-16 18:15:59 +0200 |
commit | 2abc107b24f73b8c4664189c34196d9a27a3e339 (patch) | |
tree | b7067a45f7294dbd143c410bdfb690157c976e3c /test/resampler.cc | |
parent | e694a23ab28686ecc0635c2ac8c625e743b89a3b (diff) |
Port the rest of the unittests to DGUnit and remove the CppUnit dependency.
Diffstat (limited to 'test/resampler.cc')
-rw-r--r-- | test/resampler.cc | 141 |
1 files changed, 70 insertions, 71 deletions
diff --git a/test/resampler.cc b/test/resampler.cc index 2b6862d..12732c1 100644 --- a/test/resampler.cc +++ b/test/resampler.cc @@ -24,7 +24,7 @@ * along with DrumGizmo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include <cppunit/extensions/HelperMacros.h> +#include "dgunit.h" #include "../src/chresampler.h" @@ -32,80 +32,79 @@ static float round(float a) { return a<0.5?0:1; } -class test_resampler : public CppUnit::TestFixture +class test_resampler + : public DGUnit { - CPPUNIT_TEST_SUITE(test_resampler); - CPPUNIT_TEST(resampling); - CPPUNIT_TEST(resampling_buffer_sizes); - CPPUNIT_TEST_SUITE_END(); - public: - void setUp() {} - void tearDown() {} - - void resampling() - { - CHResampler r; - CPPUNIT_ASSERT_EQUAL(1.0, r.getRatio()); - - r.setup(44100, 48000); - CPPUNIT_ASSERT_EQUAL(44100.0/48000.0, r.getRatio()); - - float in[BUFSZ]; - for(int i = 0; i < BUFSZ; i++) in[i] = 0;//(float)i/(float)BUFSZ; - in[100] = 1.0; - - float out[BUFSZ]; - r.setInputSamples(in, sizeof(in) / sizeof(float)); - r.setOutputSamples(out, sizeof(out) / sizeof(float)); - r.process(); - CPPUNIT_ASSERT_EQUAL((size_t)0, r.getInputSampleCount()); - - // CPPUNIT_ASSERT_EQUAL(, r.getOutputSampleCount()); - - int outidx = -1; - int inidx = -1; - for(int i = 0; i < BUFSZ - (int)r.getOutputSampleCount(); i++) { - if(in[i] == 1.0) inidx = i; - if(round(out[i]) == 1.0) outidx = i; - //printf("in[% 4d]\t= %f\t", i, in[i]); - //printf("out[% 4d]\t= %f\n", i, out[i]); - } - - CPPUNIT_ASSERT(inidx != -1); - CPPUNIT_ASSERT(outidx != -1); - - //printf("inidx: %d - outidx: %d\n", inidx, outidx); - //CPPUNIT_ASSERT_EQUAL(71, inidx - outidx); // This does not make sense... + test_resampler() + { + DGUNIT_TEST(test_resampler::resampling); + DGUNIT_TEST(test_resampler::resampling_buffer_sizes); } - void resampling_buffer_sizes() - { - CHResampler r; - CPPUNIT_ASSERT_EQUAL(1.0, r.getRatio()); - - double infs = 24000; - double outfs = 48000; - r.setup(infs, outfs); - CPPUNIT_ASSERT_EQUAL(infs / outfs, r.getRatio()); - - float in[BUFSZ]; - float out[(int)(BUFSZ / r.getRatio())]; - - // Preload resampler - r.setOutputSamples(out, 1); - while(r.getOutputSampleCount()) { - r.setInputSamples(in, 1); - r.process(); - } - - r.setInputSamples(in, sizeof(in) / sizeof(float)); - r.setOutputSamples(out, sizeof(out) / sizeof(float)); - r.process(); - CPPUNIT_ASSERT_EQUAL((size_t)0, r.getInputSampleCount()); - CPPUNIT_ASSERT_EQUAL((size_t)0, r.getOutputSampleCount()); - } + void resampling() + { + CHResampler r; + DGUNIT_ASSERT_EQUAL(1.0, r.getRatio()); + + r.setup(44100, 48000); + DGUNIT_ASSERT_EQUAL(44100.0/48000.0, r.getRatio()); + + float in[BUFSZ]; + for(int i = 0; i < BUFSZ; i++) in[i] = 0;//(float)i/(float)BUFSZ; + in[100] = 1.0; + + float out[BUFSZ]; + r.setInputSamples(in, sizeof(in) / sizeof(float)); + r.setOutputSamples(out, sizeof(out) / sizeof(float)); + r.process(); + DGUNIT_ASSERT_EQUAL((size_t)0, r.getInputSampleCount()); + + // DGUNIT_ASSERT_EQUAL(, r.getOutputSampleCount()); + + int outidx = -1; + int inidx = -1; + for(int i = 0; i < BUFSZ - (int)r.getOutputSampleCount(); i++) { + if(in[i] == 1.0) inidx = i; + if(round(out[i]) == 1.0) outidx = i; + //printf("in[% 4d]\t= %f\t", i, in[i]); + //printf("out[% 4d]\t= %f\n", i, out[i]); + } + + DGUNIT_ASSERT(inidx != -1); + DGUNIT_ASSERT(outidx != -1); + + //printf("inidx: %d - outidx: %d\n", inidx, outidx); + //DGUNIT_ASSERT_EQUAL(71, inidx - outidx); // This does not make sense... + } + + void resampling_buffer_sizes() + { + CHResampler r; + DGUNIT_ASSERT_EQUAL(1.0, r.getRatio()); + + double infs = 24000; + double outfs = 48000; + r.setup(infs, outfs); + DGUNIT_ASSERT_EQUAL(infs / outfs, r.getRatio()); + + float in[BUFSZ]; + float out[(int)(BUFSZ / r.getRatio())]; + + // Preload resampler + r.setOutputSamples(out, 1); + while(r.getOutputSampleCount()) { + r.setInputSamples(in, 1); + r.process(); + } + + r.setInputSamples(in, sizeof(in) / sizeof(float)); + r.setOutputSamples(out, sizeof(out) / sizeof(float)); + r.process(); + DGUNIT_ASSERT_EQUAL((size_t)0, r.getInputSampleCount()); + DGUNIT_ASSERT_EQUAL((size_t)0, r.getOutputSampleCount()); + } }; // Registers the fixture into the 'registry' -CPPUNIT_TEST_SUITE_REGISTRATION(test_resampler); +static test_resampler test; |