2 Copyright (C) 2015 Carl Hetherington <cth@carlh.net>
4 This file is part of DCP-o-matic.
6 DCP-o-matic is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 DCP-o-matic is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
21 #include <boost/test/unit_test.hpp>
22 #include "lib/dcpomatic_time.h"
24 BOOST_AUTO_TEST_CASE (dcpomatic_time_test)
26 FrameRateChange frc (24, 48);
29 for (int64_t i = 0; i < 62000; i += 2000) {
31 ContentTime c (d, frc);
32 BOOST_CHECK_EQUAL (c.frames_floor (24.0), j);
41 BOOST_AUTO_TEST_CASE (dcpomatic_time_period_overlaps_test)
43 /* Taking times as the start of a sampling interval
45 |--|--|--|--|--|--|--|--|--|--|
47 |--|--|--|--|--|--|--|--|--|--|
49 <------a----><----b----->
51 and saying `from' is the start of the first sampling
52 interval and `to' is the start of the interval after
53 the period... a and b do not overlap.
56 TimePeriod<DCPTime> a (DCPTime (0), DCPTime (4));
57 TimePeriod<DCPTime> b (DCPTime (4), DCPTime (8));
58 BOOST_CHECK (!a.overlap (b));
60 /* Some more obvious non-overlaps */
61 a = TimePeriod<DCPTime> (DCPTime (0), DCPTime (4));
62 b = TimePeriod<DCPTime> (DCPTime (5), DCPTime (8));
63 BOOST_CHECK (!a.overlap (b));
66 a = TimePeriod<DCPTime> (DCPTime (0), DCPTime (4));
67 b = TimePeriod<DCPTime> (DCPTime (3), DCPTime (8));
68 BOOST_CHECK (a.overlap(b));
69 BOOST_CHECK (a.overlap(b).get() == DCPTimePeriod(DCPTime(3), DCPTime(4)));
70 a = TimePeriod<DCPTime> (DCPTime (1), DCPTime (9));
71 b = TimePeriod<DCPTime> (DCPTime (0), DCPTime (10));
72 BOOST_CHECK (a.overlap(b));
73 BOOST_CHECK (a.overlap(b).get() == DCPTimePeriod(DCPTime(1), DCPTime(9)));