diff --git a/src/test/TestStretcher.cpp b/src/test/TestStretcher.cpp index e596efb..54999bf 100644 --- a/src/test/TestStretcher.cpp +++ b/src/test/TestStretcher.cpp @@ -1440,273 +1440,4 @@ BOOST_AUTO_TEST_CASE(with_resets_2x_5up_realtime_faster) with_resets(RubberBandStretcher::OptionProcessRealTime | RubberBandStretcher::OptionEngineFaster, 2.0, 1.5); } - - -BOOST_AUTO_TEST_CASE(impulses_2x_0up_offline_reset_finer_initialparams) -{ - int n = 10000; - int rate = 44100; - RubberBandStretcher stretcher - (rate, 1, RubberBandStretcher::OptionEngineFiner, - 2.0, 1.0); - - vector in(n, 0.f), out1(n * 2, 0.f), out2(n * 2, 0.f); - - in[100] = 1.f; - in[101] = -1.f; - - in[5000] = 1.f; - in[5001] = -1.f; - - in[9900] = 1.f; - in[9901] = -1.f; - - float *inp = in.data(), *outp1 = out1.data(), *outp2 = out2.data(); - - stretcher.setMaxProcessSize(n); - stretcher.setExpectedInputDuration(n); - BOOST_TEST(stretcher.available() == 0); - - stretcher.study(&inp, n, true); - BOOST_TEST(stretcher.available() == 0); - - stretcher.process(&inp, n, true); - BOOST_TEST(stretcher.available() == n * 2); - - BOOST_TEST(stretcher.getStartDelay() == 0); // offline mode - - size_t got = stretcher.retrieve(&outp1, n * 2); - BOOST_TEST(got == n * 2); - BOOST_TEST(stretcher.available() == -1); - - stretcher.reset(); - - stretcher.setMaxProcessSize(n); - stretcher.setExpectedInputDuration(n); - BOOST_TEST(stretcher.available() == 0); - - stretcher.study(&inp, n, true); - BOOST_TEST(stretcher.available() == 0); - - stretcher.process(&inp, n, true); - BOOST_TEST(stretcher.available() == n * 2); - - BOOST_TEST(stretcher.getStartDelay() == 0); // offline mode - - got = stretcher.retrieve(&outp2, n * 2); - BOOST_TEST(got == n * 2); - BOOST_TEST(stretcher.available() == -1); - - for (int i = 0; i < n * 2; ++i) { - BOOST_TEST(outp1[i] == outp2[i]); - if (outp1[i] != outp2[i]) { - std::cerr << "Failure at index " << i << std::endl; - break; - } - } - -/* - std::cout << "ms\tV" << std::endl; - for (int i = 0; i < n*2; ++i) { - std::cout << i << "\t" << out[i] << std::endl; - } -*/ -} - -BOOST_AUTO_TEST_CASE(impulses_2x_0up_offline_reset_finer_postparams) -{ - int n = 10000; - int rate = 44100; - RubberBandStretcher stretcher - (rate, 1, RubberBandStretcher::OptionEngineFiner, - 2.0, 1.0); - - stretcher.setTimeRatio(2.0); - stretcher.setPitchScale(1.0); - - vector in(n, 0.f), out1(n * 2, 0.f), out2(n * 2, 0.f); - - in[100] = 1.f; - in[101] = -1.f; - - in[5000] = 1.f; - in[5001] = -1.f; - - in[9900] = 1.f; - in[9901] = -1.f; - - float *inp = in.data(), *outp1 = out1.data(), *outp2 = out2.data(); - - stretcher.setMaxProcessSize(n); - stretcher.setExpectedInputDuration(n); - BOOST_TEST(stretcher.available() == 0); - - stretcher.study(&inp, n, true); - BOOST_TEST(stretcher.available() == 0); - - stretcher.process(&inp, n, true); - BOOST_TEST(stretcher.available() == n * 2); - - BOOST_TEST(stretcher.getStartDelay() == 0); // offline mode - - size_t got = stretcher.retrieve(&outp1, n * 2); - BOOST_TEST(got == n * 2); - BOOST_TEST(stretcher.available() == -1); - - stretcher.reset(); - - stretcher.setMaxProcessSize(n); - stretcher.setExpectedInputDuration(n); - BOOST_TEST(stretcher.available() == 0); - - stretcher.study(&inp, n, true); - BOOST_TEST(stretcher.available() == 0); - - stretcher.process(&inp, n, true); - BOOST_TEST(stretcher.available() == n * 2); - - BOOST_TEST(stretcher.getStartDelay() == 0); // offline mode - - got = stretcher.retrieve(&outp2, n * 2); - BOOST_TEST(got == n * 2); - BOOST_TEST(stretcher.available() == -1); - - for (int i = 0; i < n * 2; ++i) { - BOOST_TEST(outp1[i] == outp2[i]); - if (outp1[i] != outp2[i]) { - std::cerr << "Failure at index " << i << std::endl; - break; - } - } - -/* - std::cout << "ms\tV" << std::endl; - for (int i = 0; i < n*2; ++i) { - std::cout << i << "\t" << out[i] << std::endl; - } -*/ -} - -BOOST_AUTO_TEST_CASE(impulses_2x_5up_offline_reset_finer) -{ - int n = 10000; - int rate = 44100; - RubberBandStretcher stretcher - (rate, 1, RubberBandStretcher::OptionEngineFiner); - - stretcher.setTimeRatio(2.0); - stretcher.setPitchScale(1.5); - - vector in(n, 0.f), out1(n * 2, 0.f), out2(n * 2, 0.f); - - in[100] = 1.f; - in[101] = -1.f; - - in[5000] = 1.f; - in[5001] = -1.f; - - in[9900] = 1.f; - in[9901] = -1.f; - - float *inp = in.data(), *outp1 = out1.data(), *outp2 = out2.data(); - - stretcher.setMaxProcessSize(n); - stretcher.setExpectedInputDuration(n); - BOOST_TEST(stretcher.available() == 0); - - stretcher.study(&inp, n, true); - BOOST_TEST(stretcher.available() == 0); - - stretcher.process(&inp, n, true); - BOOST_TEST(stretcher.available() == n * 2); - - BOOST_TEST(stretcher.getStartDelay() == 0); // offline mode - - size_t got = stretcher.retrieve(&outp1, n * 2); - BOOST_TEST(got == n * 2); - BOOST_TEST(stretcher.available() == -1); - - stretcher.reset(); - - stretcher.setMaxProcessSize(n); - stretcher.setExpectedInputDuration(n); - BOOST_TEST(stretcher.available() == 0); - - stretcher.study(&inp, n, true); - BOOST_TEST(stretcher.available() == 0); - - stretcher.process(&inp, n, true); - BOOST_TEST(stretcher.available() == n * 2); - - BOOST_TEST(stretcher.getStartDelay() == 0); // offline mode - - got = stretcher.retrieve(&outp2, n * 2); - BOOST_TEST(got == n * 2); - BOOST_TEST(stretcher.available() == -1); - - for (int i = 0; i < n * 2; ++i) { - BOOST_TEST(outp1[i] == outp2[i]); - if (outp1[i] != outp2[i]) { - std::cerr << "Failure at index " << i << std::endl; - break; - } - } - -/* - std::cout << "ms\tV" << std::endl; - for (int i = 0; i < n*2; ++i) { - std::cout << i << "\t" << out[i] << std::endl; - } -*/ -} - -BOOST_AUTO_TEST_CASE(impulses_2x_5up_realtime_reset_finer) -{ - int n = 10000; - int rate = 44100; - RubberBandStretcher stretcher - (rate, 1, RubberBandStretcher::OptionEngineFiner); - - stretcher.setTimeRatio(2.0); - stretcher.setPitchScale(1.5); - - vector in(n, 0.f), out1(n * 2, 0.f), out2(n * 2, 0.f); - - in[100] = 1.f; - in[101] = -1.f; - - in[5000] = 1.f; - in[5001] = -1.f; - - in[9900] = 1.f; - in[9901] = -1.f; - - float *inp = in.data(), *outp1 = out1.data(), *outp2 = out2.data(); - - stretcher.process(&inp, n, true); - size_t got1 = stretcher.retrieve(&outp1, n * 2); - BOOST_TEST(got1 <= n * 2); - - stretcher.reset(); - - stretcher.process(&inp, n, true); - size_t got2 = stretcher.retrieve(&outp2, n * 2); - BOOST_TEST(got2 == got1); - - for (size_t i = 0; i < got1; ++i) { - BOOST_TEST(outp1[i] == outp2[i]); - if (outp1[i] != outp2[i]) { - std::cerr << "Failure at index " << i << std::endl; - break; - } - } - -/* - std::cout << "ms\tV" << std::endl; - for (int i = 0; i < n*2; ++i) { - std::cout << i << "\t" << out[i] << std::endl; - } -*/ -} - BOOST_AUTO_TEST_SUITE_END()