summaryrefslogtreecommitdiff
path: root/test/resampler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/resampler.cc')
-rw-r--r--test/resampler.cc141
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;