Fill test disk partitions with random noise to expose more bugs.
[dcpomatic.git] / test / audio_buffers_test.cc
index 044a4c22caec4c5be2cb7090a9d9d43b50c1d9ee..0abd730809484a869c4c9b6d65b062fa459020f2 100644 (file)
@@ -1,24 +1,26 @@
 /*
     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>
@@ -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);
@@ -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);
@@ -287,7 +289,7 @@ BOOST_AUTO_TEST_CASE (audio_buffers_accumulate_frames)
        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);
+               }
+       }
+}
+