X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Fdcpomatic_time_test.cc;h=94d51503552f93018494b10c472644d33e1f7840;hp=38b4d31a99c74d880e81c6e7969264ed07811683;hb=35e5de23b21a1fc9788fadd9ecd8beae9cfc18e3;hpb=0d0a8a9ee75d9e535a63808846f0fe27bd77450a diff --git a/test/dcpomatic_time_test.cc b/test/dcpomatic_time_test.cc index 38b4d31a9..94d515035 100644 --- a/test/dcpomatic_time_test.cc +++ b/test/dcpomatic_time_test.cc @@ -300,3 +300,37 @@ BOOST_AUTO_TEST_CASE (dcpomatic_time_period_coalesce_test5) BOOST_CHECK (q.front() == DCPTimePeriod(DCPTime(14), DCPTime(91))); BOOST_CHECK (q.back() == DCPTimePeriod(DCPTime(100), DCPTime(106))); } + +/* Straightforward test of DCPTime::ceil */ +BOOST_AUTO_TEST_CASE (dcpomatic_time_ceil_test) +{ + BOOST_CHECK_EQUAL (DCPTime(0).ceil(DCPTime::HZ / 2).get(), 0); + BOOST_CHECK_EQUAL (DCPTime(1).ceil(DCPTime::HZ / 2).get(), 2); + BOOST_CHECK_EQUAL (DCPTime(2).ceil(DCPTime::HZ / 2).get(), 2); + BOOST_CHECK_EQUAL (DCPTime(3).ceil(DCPTime::HZ / 2).get(), 4); + + BOOST_CHECK_EQUAL (DCPTime(0).ceil(DCPTime::HZ / 42).get(), 0); + BOOST_CHECK_EQUAL (DCPTime(1).ceil(DCPTime::HZ / 42).get(), 42); + BOOST_CHECK_EQUAL (DCPTime(42).ceil(DCPTime::HZ / 42).get(), 42); + BOOST_CHECK_EQUAL (DCPTime(43).ceil(DCPTime::HZ / 42).get(), 84); + + /* Check that rounding up to non-integer frame rates works */ + BOOST_CHECK_EQUAL (DCPTime(45312).ceil(29.976).get(), 48038); +} + +/* Straightforward test of DCPTime::floor */ +BOOST_AUTO_TEST_CASE (dcpomatic_time_floor_test) +{ + BOOST_CHECK_EQUAL (DCPTime(0).floor(DCPTime::HZ / 2).get(), 0); + BOOST_CHECK_EQUAL (DCPTime(1).floor(DCPTime::HZ / 2).get(), 0); + BOOST_CHECK_EQUAL (DCPTime(2).floor(DCPTime::HZ / 2).get(), 2); + BOOST_CHECK_EQUAL (DCPTime(3).floor(DCPTime::HZ / 2).get(), 2); + + BOOST_CHECK_EQUAL (DCPTime(0).floor(DCPTime::HZ / 42).get(), 0); + BOOST_CHECK_EQUAL (DCPTime(1).floor(DCPTime::HZ / 42).get(), 0); + BOOST_CHECK_EQUAL (DCPTime(42).floor(DCPTime::HZ / 42.0).get(), 42); + BOOST_CHECK_EQUAL (DCPTime(43).floor(DCPTime::HZ / 42.0).get(), 42); + + /* Check that rounding down to non-integer frame rates works */ + BOOST_CHECK_EQUAL (DCPTime(45312).floor(29.976).get(), 44836); +}