summaryrefslogtreecommitdiff
path: root/test/resampler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/resampler.cc')
-rw-r--r--test/resampler.cc110
1 files changed, 0 insertions, 110 deletions
diff --git a/test/resampler.cc b/test/resampler.cc
deleted file mode 100644
index 6df8b51..0000000
--- a/test/resampler.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/***************************************************************************
- * resampler.cc
- *
- * Sun Oct 5 20:16:22 CEST 2014
- * Copyright 2014 Bent Bisballe Nyeng
- * deva@aasimon.org
- ****************************************************************************/
-
-/*
- * This file is part of DrumGizmo.
- *
- * DrumGizmo is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * DrumGizmo is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with DrumGizmo; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- */
-#include "dgunit.h"
-
-#include "../src/chresampler.h"
-
-#define BUFSZ 500
-
-static float roundoff(float a) { return a<0.5?0:1; }
-
-class test_resampler
- : public DGUnit
-{
-public:
- test_resampler()
- {
- DGUNIT_TEST(test_resampler::resampling);
- DGUNIT_TEST(test_resampler::resampling_buffer_sizes);
- }
-
- void resampling()
- {
- CHResampler r;
- DGUNIT_ASSERT_EQUAL(1.0, r.getRatio());
-
- r.setup(44100.0, 48000.0);
- 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(roundoff(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'
-static test_resampler test;