X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fdcpomatic_time_test.cc;h=716ec98d756e6547fd0d1c0e7f9d4542e0416182;hb=4f459e4761080657bbaa194c1f954d1e7c336624;hp=4462ae870f59ce2dfa1738e0fd099abbda379e3b;hpb=0d6a18d8c1d80f4badb06929b90515bf121595b5;p=dcpomatic.git diff --git a/test/dcpomatic_time_test.cc b/test/dcpomatic_time_test.cc index 4462ae870..716ec98d7 100644 --- a/test/dcpomatic_time_test.cc +++ b/test/dcpomatic_time_test.cc @@ -1,19 +1,20 @@ /* Copyright (C) 2015 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 . */ @@ -28,8 +29,7 @@ BOOST_AUTO_TEST_CASE (dcpomatic_time_test) for (int64_t i = 0; i < 62000; i += 2000) { DCPTime d (i); ContentTime c (d, frc); - std::cout << i << " " << d << " " << c << " " << c.frames (24.0) << " " << j << "\n"; - BOOST_CHECK_EQUAL (c.frames (24.0), j); + BOOST_CHECK_EQUAL (c.frames_floor (24.0), j); ++k; if (k == 2) { ++j; @@ -37,3 +37,36 @@ BOOST_AUTO_TEST_CASE (dcpomatic_time_test) } } } + +BOOST_AUTO_TEST_CASE (dcpomatic_time_period_overlaps_test) +{ + /* Taking times as the start of a sampling interval + + |--|--|--|--|--|--|--|--|--|--| + 0 1 2 3 4 5 6 7 8 9 | + |--|--|--|--|--|--|--|--|--|--| + + <------a----><----b-----> + + and saying `from' is the start of the first sampling + interval and `to' is the start of the interval after + the period... a and b do not overlap. + */ + + TimePeriod a (DCPTime (0), DCPTime (4)); + TimePeriod b (DCPTime (4), DCPTime (8)); + BOOST_CHECK (!a.overlaps (b)); + + /* Some more obvious non-overlaps */ + a = TimePeriod (DCPTime (0), DCPTime (4)); + b = TimePeriod (DCPTime (5), DCPTime (8)); + BOOST_CHECK (!a.overlaps (b)); + + /* Some overlaps */ + a = TimePeriod (DCPTime (0), DCPTime (4)); + b = TimePeriod (DCPTime (3), DCPTime (8)); + BOOST_CHECK (a.overlaps (b)); + a = TimePeriod (DCPTime (1), DCPTime (9)); + b = TimePeriod (DCPTime (0), DCPTime (10)); + BOOST_CHECK (a.overlaps (b)); +}