X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Ftest.cc;h=d1286dd762b9e966e5356ebfeb54509c9c4cfd77;hb=b7466a9653345bc51db4cb1d7e960bfc4c12721f;hp=a1a8c9cf3a8aafe866c14bea80484b607392363d;hpb=fe4e160ba2df273e8e065d0d12411eba35b00ebf;p=dcpomatic.git diff --git a/test/test.cc b/test/test.cc index a1a8c9cf3..d1286dd76 100644 --- a/test/test.cc +++ b/test/test.cc @@ -178,10 +178,10 @@ BOOST_AUTO_TEST_CASE (dvd_test) } void -do_positive_delay_line_test (int delay_length, int block_length) +do_positive_delay_line_test (int delay_length, int data_length) { - DelayLine d (delay_length); - uint8_t data[block_length]; + DelayLine d (6, delay_length); + shared_ptr data (new AudioBuffers (6, data_length)); int in = 0; int out = 0; @@ -189,64 +189,66 @@ do_positive_delay_line_test (int delay_length, int block_length) int zeros = 0; for (int i = 0; i < 64; ++i) { - for (int j = 0; j < block_length; ++j) { - data[j] = in; - ++in; + for (int j = 0; j < data_length; ++j) { + for (int c = 0; c < 6; ++c ) { + data->data(c)[j] = in; + ++in; + } } - int const a = d.feed (data, block_length); - returned += a; + d.feed (data); + returned += data->frames (); - for (int j = 0; j < a; ++j) { + for (int j = 0; j < data->frames(); ++j) { if (zeros < delay_length) { - BOOST_CHECK_EQUAL (data[j], 0); + for (int c = 0; c < 6; ++c) { + BOOST_CHECK_EQUAL (data->data(c)[j], 0); + } ++zeros; } else { - BOOST_CHECK_EQUAL (data[j], out & 0xff); - ++out; + for (int c = 0; c < 6; ++c) { + BOOST_CHECK_EQUAL (data->data(c)[j], out); + ++out; + } } } } - BOOST_CHECK_EQUAL (returned, 64 * block_length); + BOOST_CHECK_EQUAL (returned, 64 * data_length); } void -do_negative_delay_line_test (int delay_length, int block_length) +do_negative_delay_line_test (int delay_length, int data_length) { - DelayLine d (delay_length); - uint8_t data[block_length]; + DelayLine d (6, delay_length); + shared_ptr data (new AudioBuffers (6, data_length)); int in = 0; - int out = -delay_length; + int out = -delay_length * 6; int returned = 0; for (int i = 0; i < 256; ++i) { - for (int j = 0; j < block_length; ++j) { - data[j] = in; - ++in; + data->set_frames (data_length); + for (int j = 0; j < data_length; ++j) { + for (int c = 0; c < 6; ++c) { + data->data(c)[j] = in; + ++in; + } } - int const a = d.feed (data, block_length); - returned += a; + d.feed (data); + returned += data->frames (); - for (int j = 0; j < a; ++j) { - BOOST_CHECK_EQUAL (data[j], out & 0xff); - ++out; + for (int j = 0; j < data->frames(); ++j) { + for (int c = 0; c < 6; ++c) { + BOOST_CHECK_EQUAL (data->data(c)[j], out); + ++out; + } } } - uint8_t remainder[-delay_length]; - d.get_remaining (remainder); returned += -delay_length; - - for (int i = 0; i < -delay_length; ++i) { - BOOST_CHECK_EQUAL (remainder[i], 0); - ++out; - } - - BOOST_CHECK_EQUAL (returned, 256 * block_length); - + BOOST_CHECK_EQUAL (returned, 256 * data_length); } BOOST_AUTO_TEST_CASE (delay_line_test)