/*
Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
- This program is free software; you can redistribute it and/or modify
+ This file is part of DCP-o-matic.
+
+ DCP-o-matic 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.
- This program is distributed in the hope that it will be useful,
+ DCP-o-matic 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 more 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file test/audio_buffers_test.cc
- * @brief Test AudioBuffers in various ways.
+ * @brief Test AudioBuffers class.
+ * @ingroup selfcontained
*/
#include <cmath>
random_fill (buffers);
/* Extend */
- buffers.ensure_size (299);
+ buffers.set_frames (299);
srand (1);
random_check (buffers, 0, 150);
int const to = 666;
int const frames = 444;
- buffers.move (from, to, frames);
+ buffers.move (frames, from, to);
/* Re-seed and check the un-moved parts */
srand (84);
AudioBuffers b (3, 256);
random_fill (b);
- a.accumulate_frames (&b, 91, 44, 129);
+ a.accumulate_frames (&b, 129, 91, 44);
srand (38);
for (int i = 0; i < 256; ++i) {
}
}
}
+
+
+BOOST_AUTO_TEST_CASE (audio_buffers_data)
+{
+ AudioBuffers a (94, 512);
+
+ for (int i = 0; i < 94; ++i) {
+ BOOST_CHECK_EQUAL (a.data()[i], a.data(i));
+ }
+
+ a.set_frames (2048);
+
+ for (int i = 0; i < 94; ++i) {
+ BOOST_CHECK_EQUAL (a.data()[i], a.data(i));
+ }
+}
+
+
+BOOST_AUTO_TEST_CASE (audio_buffers_trim_start)
+{
+ AudioBuffers a (13, 999);
+
+ srand (55);
+ random_fill (a);
+
+ a.trim_start (101);
+
+ srand (55);
+
+ /* Burn the first 101 numbers in the sequence */
+ for (int i = 0; i < 101 * 13; ++i) {
+ random_float ();
+ }
+
+ for (int i = 0; i < (999 - 101); ++i) {
+ for (int j = 0; j < 13; ++j) {
+ BOOST_CHECK_CLOSE (a.data(j)[i], random_float(), tolerance);
+ }
+ }
+}
+