X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fdcpomatic_time_test.cc;h=ae03d91c0e09a3c9ec36f76d508ae7210d2876a1;hb=54038beb4437c027e584fc95110f6fd4dbf2207d;hp=2b42d22b880788907e276f33a1329c4cb5c1f13d;hpb=a0d1dd5d91c81ec9907cbc7b890905c463c18f62;p=dcpomatic.git diff --git a/test/dcpomatic_time_test.cc b/test/dcpomatic_time_test.cc index 2b42d22b8..ae03d91c0 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 . */ @@ -36,3 +37,38 @@ 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.overlap (b)); + + /* Some more obvious non-overlaps */ + a = TimePeriod (DCPTime (0), DCPTime (4)); + b = TimePeriod (DCPTime (5), DCPTime (8)); + BOOST_CHECK (!a.overlap (b)); + + /* Some overlaps */ + a = TimePeriod (DCPTime (0), DCPTime (4)); + b = TimePeriod (DCPTime (3), DCPTime (8)); + BOOST_CHECK (a.overlap(b)); + BOOST_CHECK (a.overlap(b).get() == DCPTimePeriod(DCPTime(3), DCPTime(4))); + a = TimePeriod (DCPTime (1), DCPTime (9)); + b = TimePeriod (DCPTime (0), DCPTime (10)); + BOOST_CHECK (a.overlap(b)); + BOOST_CHECK (a.overlap(b).get() == DCPTimePeriod(DCPTime(1), DCPTime(9))); +}