X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Faudio_buffers_test.cc;h=0abd730809484a869c4c9b6d65b062fa459020f2;hp=15f91847089c366ca6ef636404a615ef7b3e4910;hb=6d686ea45f5cd01a0d11f92a903ac77779ad8562;hpb=9e4c091e6ef0f79fab10664e95240de2f14e5702 diff --git a/test/audio_buffers_test.cc b/test/audio_buffers_test.cc index 15f918470..0abd73080 100644 --- a/test/audio_buffers_test.cc +++ b/test/audio_buffers_test.cc @@ -1,24 +1,26 @@ /* Copyright (C) 2014 Carl Hetherington - 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 . */ /** @file test/audio_buffers_test.cc - * @brief Test AudioBuffers in various ways. + * @brief Test AudioBuffers class. + * @ingroup selfcontained */ #include @@ -77,7 +79,7 @@ BOOST_AUTO_TEST_CASE (audio_buffers_extend_test) random_fill (buffers); /* Extend */ - buffers.ensure_size (299); + buffers.set_frames (299); srand (1); random_check (buffers, 0, 150); @@ -98,7 +100,7 @@ BOOST_AUTO_TEST_CASE (audio_buffers_make_silent_test) random_fill (buffers); buffers.make_silent (); - + for (int i = 0; i < 9933; ++i) { for (int c = 0; c < 9; ++c) { BOOST_CHECK_EQUAL (buffers.data(c)[i], 0); @@ -227,7 +229,7 @@ BOOST_AUTO_TEST_CASE (audio_buffers_move) 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); @@ -248,7 +250,7 @@ BOOST_AUTO_TEST_CASE (audio_buffers_move) for (int i = 0; i < from * 7; ++i) { random_float (); } - + random_check (buffers, to, frames); } @@ -258,7 +260,7 @@ BOOST_AUTO_TEST_CASE (audio_buffers_accumulate_channel) AudioBuffers a (3, 256); srand (38); random_fill (a); - + AudioBuffers b (3, 256); random_fill (b); @@ -283,11 +285,11 @@ BOOST_AUTO_TEST_CASE (audio_buffers_accumulate_frames) AudioBuffers a (3, 256); srand (38); random_fill (a); - + 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) { @@ -301,3 +303,44 @@ BOOST_AUTO_TEST_CASE (audio_buffers_accumulate_frames) } } } + + +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); + } + } +} +