summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2017-06-28 10:09:53 +0100
committerCarl Hetherington <cth@carlh.net>2017-06-29 11:26:13 +0100
commitbaf84885a777378b9ff5c05ef24d6361560822a6 (patch)
tree18b953a0e1a6b05609f98193a766a679de434551 /test
parent4fbe44913582d6cc48a7d61145f3170fb0eec595 (diff)
Fixes for silence in projects, various cleanups.
Diffstat (limited to 'test')
-rw-r--r--test/dcpomatic_time_test.cc86
-rw-r--r--test/empty_test.cc59
-rw-r--r--test/wscript1
3 files changed, 146 insertions, 0 deletions
diff --git a/test/dcpomatic_time_test.cc b/test/dcpomatic_time_test.cc
index f49d29a57..38b4d31a9 100644
--- a/test/dcpomatic_time_test.cc
+++ b/test/dcpomatic_time_test.cc
@@ -24,10 +24,13 @@
*/
#include "lib/dcpomatic_time.h"
+#include "lib/dcpomatic_time_coalesce.h"
#include <boost/test/unit_test.hpp>
#include <list>
+#include <iostream>
using std::list;
+using std::cout;
BOOST_AUTO_TEST_CASE (dcpomatic_time_test)
{
@@ -214,3 +217,86 @@ BOOST_AUTO_TEST_CASE (dcpomatic_time_period_subtract_test7)
++i;
BOOST_REQUIRE (i == r.end ());
}
+
+BOOST_AUTO_TEST_CASE (dcpomatic_time_period_subtract_test8)
+{
+ DCPTimePeriod A (DCPTime(0), DCPTime(32000));
+ list<DCPTimePeriod> B;
+ B.push_back (DCPTimePeriod (DCPTime(8000), DCPTime(20000)));
+ B.push_back (DCPTimePeriod (DCPTime(28000), DCPTime(32000)));
+ list<DCPTimePeriod> r = subtract (A, B);
+ list<DCPTimePeriod>::const_iterator i = r.begin ();
+ BOOST_REQUIRE (i != r.end ());
+ BOOST_CHECK (*i == DCPTimePeriod(DCPTime(0), DCPTime(8000)));
+ ++i;
+ BOOST_REQUIRE (i != r.end ());
+ BOOST_CHECK (*i == DCPTimePeriod(DCPTime(20000), DCPTime(28000)));
+ ++i;
+ BOOST_REQUIRE (i == r.end ());
+}
+
+BOOST_AUTO_TEST_CASE (dcpomatic_time_period_coalesce_test1)
+{
+ DCPTimePeriod A (DCPTime(14), DCPTime(29));
+ DCPTimePeriod B (DCPTime(45), DCPTime(91));
+ list<DCPTimePeriod> p;
+ p.push_back (A);
+ p.push_back (B);
+ list<DCPTimePeriod> q = coalesce (p);
+ BOOST_REQUIRE_EQUAL (q.size(), 2);
+ BOOST_CHECK (q.front() == DCPTimePeriod(DCPTime(14), DCPTime(29)));
+ BOOST_CHECK (q.back () == DCPTimePeriod(DCPTime(45), DCPTime(91)));
+}
+
+BOOST_AUTO_TEST_CASE (dcpomatic_time_period_coalesce_test2)
+{
+ DCPTimePeriod A (DCPTime(14), DCPTime(29));
+ DCPTimePeriod B (DCPTime(26), DCPTime(91));
+ list<DCPTimePeriod> p;
+ p.push_back (A);
+ p.push_back (B);
+ list<DCPTimePeriod> q = coalesce (p);
+ BOOST_REQUIRE_EQUAL (q.size(), 1);
+ BOOST_CHECK (q.front() == DCPTimePeriod(DCPTime(14), DCPTime(91)));
+}
+
+BOOST_AUTO_TEST_CASE (dcpomatic_time_period_coalesce_test3)
+{
+ DCPTimePeriod A (DCPTime(14), DCPTime(29));
+ DCPTimePeriod B (DCPTime(29), DCPTime(91));
+ list<DCPTimePeriod> p;
+ p.push_back (A);
+ p.push_back (B);
+ list<DCPTimePeriod> q = coalesce (p);
+ BOOST_REQUIRE_EQUAL (q.size(), 1);
+ BOOST_CHECK (q.front() == DCPTimePeriod(DCPTime(14), DCPTime(91)));
+}
+
+BOOST_AUTO_TEST_CASE (dcpomatic_time_period_coalesce_test4)
+{
+ DCPTimePeriod A (DCPTime(14), DCPTime(29));
+ DCPTimePeriod B (DCPTime(20), DCPTime(91));
+ DCPTimePeriod C (DCPTime(35), DCPTime(106));
+ list<DCPTimePeriod> p;
+ p.push_back (A);
+ p.push_back (B);
+ p.push_back (C);
+ list<DCPTimePeriod> q = coalesce (p);
+ BOOST_REQUIRE_EQUAL (q.size(), 1);
+ BOOST_CHECK (q.front() == DCPTimePeriod(DCPTime(14), DCPTime(106)));
+}
+
+BOOST_AUTO_TEST_CASE (dcpomatic_time_period_coalesce_test5)
+{
+ DCPTimePeriod A (DCPTime(14), DCPTime(29));
+ DCPTimePeriod B (DCPTime(20), DCPTime(91));
+ DCPTimePeriod C (DCPTime(100), DCPTime(106));
+ list<DCPTimePeriod> p;
+ p.push_back (A);
+ p.push_back (B);
+ p.push_back (C);
+ list<DCPTimePeriod> q = coalesce (p);
+ BOOST_REQUIRE_EQUAL (q.size(), 2);
+ BOOST_CHECK (q.front() == DCPTimePeriod(DCPTime(14), DCPTime(91)));
+ BOOST_CHECK (q.back() == DCPTimePeriod(DCPTime(100), DCPTime(106)));
+}
diff --git a/test/empty_test.cc b/test/empty_test.cc
new file mode 100644
index 000000000..b7dce1ab8
--- /dev/null
+++ b/test/empty_test.cc
@@ -0,0 +1,59 @@
+/*
+ Copyright (C) 2017 Carl Hetherington <cth@carlh.net>
+
+ 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.
+
+ 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 DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+#include "lib/film.h"
+#include "lib/dcp_content_type.h"
+#include "lib/ratio.h"
+#include "lib/video_content.h"
+#include "lib/image_content.h"
+#include "lib/empty.h"
+#include "test.h"
+#include <boost/test/unit_test.hpp>
+
+using boost::shared_ptr;
+
+BOOST_AUTO_TEST_CASE (empty_test1)
+{
+ shared_ptr<Film> film = new_test_film ("empty_test1");
+ film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR"));
+ film->set_name ("empty_test1");
+ film->set_container (Ratio::from_id ("185"));
+ film->set_sequence (false);
+ shared_ptr<ImageContent> contentA (new ImageContent (film, "test/data/simple_testcard_640x480.png"));
+ shared_ptr<ImageContent> contentB (new ImageContent (film, "test/data/simple_testcard_640x480.png"));
+
+ film->examine_and_add_content (contentA);
+ film->examine_and_add_content (contentB);
+ wait_for_jobs ();
+
+ contentA->video->set_scale (VideoContentScale (Ratio::from_id ("185")));
+ contentA->video->set_length (3);
+ contentA->set_position (DCPTime::from_frames (2, film->video_frame_rate ()));
+ contentB->video->set_scale (VideoContentScale (Ratio::from_id ("185")));
+ contentB->video->set_length (1);
+ contentB->set_position (DCPTime::from_frames (7, film->video_frame_rate ()));
+
+ Empty black (film->playlist(), bind(&Content::video, _1));
+ BOOST_REQUIRE_EQUAL (black._periods.size(), 2);
+ BOOST_CHECK (black._periods.front().from == DCPTime());
+ BOOST_CHECK (black._periods.front().to == DCPTime::from_frames(2, film->video_frame_rate()));
+ BOOST_CHECK (black._periods.back().from == DCPTime::from_frames(5, film->video_frame_rate()));
+ BOOST_CHECK (black._periods.back().to == DCPTime::from_frames(7, film->video_frame_rate()));
+}
diff --git a/test/wscript b/test/wscript
index c90f9bdfa..37185346c 100644
--- a/test/wscript
+++ b/test/wscript
@@ -54,6 +54,7 @@ def build(bld):
dcpomatic_time_test.cc
dcp_subtitle_test.cc
digest_test.cc
+ empty_test.cc
ffmpeg_audio_only_test.cc
ffmpeg_audio_test.cc
ffmpeg_dcp_test.cc