diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/test/interpolation_test.cc | 172 | ||||
-rw-r--r-- | libs/ardour/test/interpolation_test.h | 61 | ||||
-rw-r--r-- | libs/ardour/wscript | 2 |
3 files changed, 0 insertions, 235 deletions
diff --git a/libs/ardour/test/interpolation_test.cc b/libs/ardour/test/interpolation_test.cc deleted file mode 100644 index c9fae7e64f..0000000000 --- a/libs/ardour/test/interpolation_test.cc +++ /dev/null @@ -1,172 +0,0 @@ -#include <sigc++/sigc++.h> -#include "interpolation_test.h" - -CPPUNIT_TEST_SUITE_REGISTRATION(InterpolationTest); - -using namespace std; -using namespace ARDOUR; - -void -InterpolationTest::linearInterpolationTest () -{ - samplecnt_t result = 0; -// cout << "\nLinear Interpolation Test\n"; - -// cout << "\nSpeed: 1/3"; - for (int i = 0; 3*i < NUM_SAMPLES - 1024;) { - linear.set_speed (double(1.0)/double(3.0)); - linear.set_target_speed (double(1.0)/double(3.0)); - result = linear.interpolate (0, 1024, input + i, output + i*3); - i += result; - } - -// cout << "\nSpeed: 1.0"; - linear.reset(); - linear.set_speed (1.0); - linear.set_target_speed (linear.speed()); - result = linear.interpolate (0, NUM_SAMPLES, input, output); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * linear.speed()), result); - for (int i = 0; i < NUM_SAMPLES; i += INTERVAL) { - CPPUNIT_ASSERT_EQUAL (1.0f, output[i]); - } - -// cout << "\nSpeed: 0.5"; - linear.reset(); - linear.set_speed (0.5); - linear.set_target_speed (linear.speed()); - result = linear.interpolate (0, NUM_SAMPLES, input, output); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * linear.speed()), result); - for (int i = 0; i < NUM_SAMPLES; i += (INTERVAL / linear.speed() +0.5)) { - CPPUNIT_ASSERT_EQUAL (1.0f, output[i]); - } - -// cout << "\nSpeed: 0.2"; - linear.reset(); - linear.set_speed (0.2); - linear.set_target_speed (linear.speed()); - result = linear.interpolate (0, NUM_SAMPLES, input, output); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * linear.speed()), result); - -// cout << "\nSpeed: 0.02"; - linear.reset(); - linear.set_speed (0.02); - linear.set_target_speed (linear.speed()); - result = linear.interpolate (0, NUM_SAMPLES, input, output); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * linear.speed()), result); - -// cout << "\nSpeed: 0.002"; - linear.reset(); - linear.set_speed (0.002); - linear.set_target_speed (linear.speed()); - result = linear.interpolate (0, NUM_SAMPLES, input, output); - linear.speed(); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * linear.speed()), result); - -// cout << "\nSpeed: 2.0"; - linear.reset(); - linear.set_speed (2.0); - linear.set_target_speed (linear.speed()); - result = linear.interpolate (0, NUM_SAMPLES / 2, input, output); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES / 2 * linear.speed()), result); - for (int i = 0; i < NUM_SAMPLES / 2; i += (INTERVAL / linear.speed() +0.5)) { - CPPUNIT_ASSERT_EQUAL (1.0f, output[i]); - } - -// cout << "\nSpeed: 10.0"; - linear.set_speed (10.0); - linear.set_target_speed (linear.speed()); - result = linear.interpolate (0, NUM_SAMPLES / 10, input, output); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES / 10 * linear.speed()), result); - for (int i = 0; i < NUM_SAMPLES / 10; i += (INTERVAL / linear.speed() +0.5)) { - CPPUNIT_ASSERT_EQUAL (1.0f, output[i]); - } - /* - for (int i=0; i < NUM_SAMPLES; ++i) { - cout << i << " " << output[i] << endl; - } - */ -} - -void -InterpolationTest::cubicInterpolationTest () -{ - samplecnt_t result = 0; -// cout << "\nCubic Interpolation Test\n"; - -// cout << "\nSpeed: 1/3"; - for (int i = 0; 3*i < NUM_SAMPLES - 1024;) { - cubic.set_speed (double(1.0)/double(3.0)); - cubic.set_target_speed (double(1.0)/double(3.0)); - result = cubic.interpolate (0, 1024, input + i, output + i*3); - i += result; - } - -// cout << "\nSpeed: 1.0"; - cubic.reset(); - cubic.set_speed (1.0); - cubic.set_target_speed (cubic.speed()); - result = cubic.interpolate (0, NUM_SAMPLES, input, output); - CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES, NULL, NULL)); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * cubic.speed()), result); - for (int i = 0; i < NUM_SAMPLES; i += INTERVAL) { - CPPUNIT_ASSERT_EQUAL (1.0f, output[i]); - } - -// cout << "\nSpeed: 0.5"; - cubic.reset(); - cubic.set_speed (0.5); - cubic.set_target_speed (cubic.speed()); - result = cubic.interpolate (0, NUM_SAMPLES, input, output); - CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES, NULL, NULL)); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * cubic.speed()), result); - for (int i = 0; i < NUM_SAMPLES; i += (INTERVAL / cubic.speed() +0.5)) { - CPPUNIT_ASSERT_EQUAL (1.0f, output[i]); - } - -// cout << "\nSpeed: 0.2"; - cubic.reset(); - cubic.set_speed (0.2); - cubic.set_target_speed (cubic.speed()); - result = cubic.interpolate (0, NUM_SAMPLES, input, output); - CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES, NULL, NULL)); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * cubic.speed()), result); - -// cout << "\nSpeed: 0.02"; - cubic.reset(); - cubic.set_speed (0.02); - cubic.set_target_speed (cubic.speed()); - result = cubic.interpolate (0, NUM_SAMPLES, input, output); - CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES, NULL, NULL)); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * cubic.speed()), result); - - /* This one fails due too error accumulation - cout << "\nSpeed: 0.002"; - cubic.reset(); - cubic.set_speed (0.002); - cubic.set_target_speed (cubic.speed()); - result = cubic.interpolate (0, NUM_SAMPLES, input, output); - cubic.speed(); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES * cubic.speed()), result); - */ - -// cout << "\nSpeed: 2.0"; - cubic.reset(); - cubic.set_speed (2.0); - cubic.set_target_speed (cubic.speed()); - result = cubic.interpolate (0, NUM_SAMPLES / 2, input, output); - CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES / 2, NULL, NULL)); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES / 2 * cubic.speed()), result); - for (int i = 0; i < NUM_SAMPLES / 2; i += (INTERVAL / cubic.speed() +0.5)) { - CPPUNIT_ASSERT_EQUAL (1.0f, output[i]); - } - -// cout << "\nSpeed: 10.0"; - cubic.set_speed (10.0); - cubic.set_target_speed (cubic.speed()); - result = cubic.interpolate (0, NUM_SAMPLES / 10, input, output); - CPPUNIT_ASSERT_EQUAL (result, cubic.interpolate (0, NUM_SAMPLES / 10, NULL, NULL)); - CPPUNIT_ASSERT_EQUAL ((samplecnt_t)(NUM_SAMPLES / 10 * cubic.speed()), result); - for (int i = 0; i < NUM_SAMPLES / 10; i += (INTERVAL / cubic.speed() +0.5)) { - CPPUNIT_ASSERT_EQUAL (1.0f, output[i]); - } -} diff --git a/libs/ardour/test/interpolation_test.h b/libs/ardour/test/interpolation_test.h deleted file mode 100644 index a051990e85..0000000000 --- a/libs/ardour/test/interpolation_test.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright(C) 2000-2008 Paul Davis - * Author: Hans Baier - * - * Evoral is free software; you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation; either version 2 of the License, or(at your option) any later - * version. - * - * Evoral 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 General Public License for details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <cassert> -#include <stdint.h> -#include <cppunit/TestFixture.h> -#include <cppunit/extensions/HelperMacros.h> - -#include "ardour/interpolation.h" - -class InterpolationTest : public CppUnit::TestFixture -{ - CPPUNIT_TEST_SUITE(InterpolationTest); - CPPUNIT_TEST(cubicInterpolationTest); - CPPUNIT_TEST(linearInterpolationTest); - CPPUNIT_TEST_SUITE_END(); - -#define NUM_SAMPLES 1000000 -#define INTERVAL 100 - - ARDOUR::Sample input[NUM_SAMPLES]; - ARDOUR::Sample output[NUM_SAMPLES]; - - ARDOUR::LinearInterpolation linear; - ARDOUR::CubicInterpolation cubic; - - public: - - void setUp() { - for (int i = 0; i < NUM_SAMPLES; ++i) { - if (i % INTERVAL == 0) { - input[i] = 1.0f; - } else { - input[i] = 0.0f; - } - output[i] = 0.0f; - } - linear.add_channel_to (NUM_SAMPLES, NUM_SAMPLES); - cubic.add_channel_to (NUM_SAMPLES, NUM_SAMPLES); - } - - void tearDown() { - } - - void linearInterpolationTest(); - void cubicInterpolationTest(); -}; diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 8cd06692bf..5a5c99f22c 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -524,7 +524,6 @@ def build(bld): create_ardour_test_program(bld, obj.includes, 'automation_list_property_test', 'test_automation_list_property', ['test/automation_list_property_test.cc']) create_ardour_test_program(bld, obj.includes, 'bbt', 'test_bbt', ['test/bbt_test.cc']) create_ardour_test_program(bld, obj.includes, 'tempo', 'test_tempo', ['test/tempo_test.cc']) - create_ardour_test_program(bld, obj.includes, 'interpolation', 'test_interpolation', ['test/interpolation_test.cc']) create_ardour_test_program(bld, obj.includes, 'lua_script', 'test_lua_script', ['test/lua_script_test.cc']) create_ardour_test_program(bld, obj.includes, 'midi_clock_slave', 'test_midi_clock_slave', ['test/midi_clock_slave_test.cc']) create_ardour_test_program(bld, obj.includes, 'resampled_source', 'test_resampled_source', ['test/resampled_source_test.cc']) @@ -546,7 +545,6 @@ def build(bld): test/bbt_test.cc test/dsp_load_calculator_test.cc test/tempo_test.cc - test/interpolation_test.cc test/lua_script_test.cc test/midi_clock_slave_test.cc test/resampled_source_test.cc |