X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fmarkers_test.cc;h=1d0ebbfa74d7dadc9bff4a9bd3c0645ce32605f7;hb=ddb999544ab9da2a3a4760baf241a5ef8520c37e;hp=3f2ea8abb2e0dd7d4ae255812e007337922e799b;hpb=74f639adc8ddb21d3de095cdb5d5a529bdbf7a2c;p=libdcp.git diff --git a/test/markers_test.cc b/test/markers_test.cc index 3f2ea8ab..1d0ebbfa 100644 --- a/test/markers_test.cc +++ b/test/markers_test.cc @@ -33,9 +33,10 @@ #include "cpl.h" +#include "equality_options.h" #include "reel.h" #include "reel_markers_asset.h" -#include +#include #include #include @@ -43,64 +44,69 @@ using std::make_shared; using std::shared_ptr; using std::string; +#if BOOST_VERSION >= 106100 +using namespace boost::placeholders; +#endif -BOOST_AUTO_TEST_CASE (markers_write_test) +BOOST_AUTO_TEST_CASE(markers_test) { - dcp::CPL cpl("Markers test", dcp::ContentKind::TEST, dcp::Standard::SMPTE); - - auto asset = make_shared(dcp::Fraction(24, 1), 432000, 0); - asset->set (dcp::Marker::FFOC, dcp::Time(1, 1, 9, 16, 24)); - asset->set (dcp::Marker::LFOC, dcp::Time(2, 5, 3, 0, 24)); - asset->set (dcp::Marker::FFTC, dcp::Time(0, 6, 4, 2, 24)); - asset->set (dcp::Marker::LFTC, dcp::Time(0, 6, 4, 18, 24)); - asset->set (dcp::Marker::FFOI, dcp::Time(3, 6, 4, 18, 24)); - asset->set (dcp::Marker::LFOI, dcp::Time(3, 2, 4, 18, 24)); - asset->set (dcp::Marker::FFEC, dcp::Time(3, 2, 7, 18, 24)); - asset->set (dcp::Marker::LFEC, dcp::Time(3, 2, 8, 18, 24)); - asset->set (dcp::Marker::FFMC, dcp::Time(4, 2, 8, 18, 24)); - asset->set (dcp::Marker::LFMC, dcp::Time(4, 3, 8, 18, 24)); - - auto reel = make_shared(); - reel->add (asset); - - cpl.add (reel); - - cpl.write_xml ("build/test/markers_test.xml", {}); -} - - -BOOST_AUTO_TEST_CASE (markers_read_test, * boost::unit_test::depends_on("markers_write_test")) -{ - dcp::CPL cpl ("build/test/markers_test.xml"); - BOOST_CHECK_EQUAL (cpl.reels().size(), 1); - auto reel = cpl.reels().front(); - auto markers = reel->main_markers (); - BOOST_REQUIRE (markers); - - BOOST_REQUIRE (markers->get(dcp::Marker::FFOC)); - BOOST_CHECK (markers->get(dcp::Marker::FFOC) == dcp::Time(1, 1, 9, 16, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::LFOC)); - BOOST_CHECK (markers->get(dcp::Marker::LFOC) == dcp::Time(2, 5, 3, 0, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::FFTC)); - BOOST_CHECK (markers->get (dcp::Marker::FFTC) == dcp::Time(0, 6, 4, 2, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::LFTC)); - BOOST_CHECK (markers->get (dcp::Marker::LFTC) == dcp::Time(0, 6, 4, 18, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::FFOI)); - BOOST_CHECK (markers->get (dcp::Marker::FFOI) == dcp::Time(3, 6, 4, 18, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::LFOI)); - BOOST_CHECK (markers->get (dcp::Marker::LFOI) == dcp::Time(3, 2, 4, 18, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::FFEC)); - BOOST_CHECK (markers->get (dcp::Marker::FFEC) == dcp::Time(3, 2, 7, 18, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::LFEC)); - BOOST_CHECK (markers->get (dcp::Marker::LFEC) == dcp::Time(3, 2, 8, 18, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::FFMC)); - BOOST_CHECK (markers->get (dcp::Marker::FFMC) == dcp::Time(4, 2, 8, 18, 24)); - BOOST_REQUIRE (markers->get(dcp::Marker::LFMC)); - BOOST_CHECK (markers->get (dcp::Marker::LFMC) == dcp::Time(4, 3, 8, 18, 24)); - - BOOST_CHECK (markers->equals(markers, dcp::EqualityOptions(), [](dcp::NoteType, string) {})); - - auto markers2 = make_shared(dcp::Fraction(24, 1), 432000, 0); - BOOST_CHECK (!markers->equals(markers2, dcp::EqualityOptions(), [](dcp::NoteType, string) {})); + { + /* Write */ + dcp::CPL cpl("Markers test", dcp::ContentKind::TEST, dcp::Standard::SMPTE); + + auto asset = make_shared(dcp::Fraction(24, 1), 432000); + asset->set (dcp::Marker::FFOC, dcp::Time(1, 1, 9, 16, 24)); + asset->set (dcp::Marker::LFOC, dcp::Time(2, 5, 3, 0, 24)); + asset->set (dcp::Marker::FFTC, dcp::Time(0, 6, 4, 2, 24)); + asset->set (dcp::Marker::LFTC, dcp::Time(0, 6, 4, 18, 24)); + asset->set (dcp::Marker::FFOI, dcp::Time(3, 6, 4, 18, 24)); + asset->set (dcp::Marker::LFOI, dcp::Time(3, 2, 4, 18, 24)); + asset->set (dcp::Marker::FFEC, dcp::Time(3, 2, 7, 18, 24)); + asset->set (dcp::Marker::LFEC, dcp::Time(3, 2, 8, 18, 24)); + asset->set (dcp::Marker::FFMC, dcp::Time(4, 2, 8, 18, 24)); + asset->set (dcp::Marker::LFMC, dcp::Time(4, 3, 8, 18, 24)); + + auto reel = make_shared(); + reel->add (asset); + + cpl.add (reel); + + cpl.write_xml ("build/test/markers_test.xml", {}); + } + + { + /* Read */ + dcp::CPL cpl ("build/test/markers_test.xml"); + BOOST_CHECK_EQUAL (cpl.reels().size(), 1U); + auto reel = cpl.reels().front(); + auto markers = reel->main_markers (); + BOOST_REQUIRE (markers); + + BOOST_REQUIRE (markers->get(dcp::Marker::FFOC)); + BOOST_CHECK (markers->get(dcp::Marker::FFOC) == dcp::Time(1, 1, 9, 16, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::LFOC)); + BOOST_CHECK (markers->get(dcp::Marker::LFOC) == dcp::Time(2, 5, 3, 0, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::FFTC)); + BOOST_CHECK (markers->get (dcp::Marker::FFTC) == dcp::Time(0, 6, 4, 2, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::LFTC)); + BOOST_CHECK (markers->get (dcp::Marker::LFTC) == dcp::Time(0, 6, 4, 18, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::FFOI)); + BOOST_CHECK (markers->get (dcp::Marker::FFOI) == dcp::Time(3, 6, 4, 18, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::LFOI)); + BOOST_CHECK (markers->get (dcp::Marker::LFOI) == dcp::Time(3, 2, 4, 18, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::FFEC)); + BOOST_CHECK (markers->get (dcp::Marker::FFEC) == dcp::Time(3, 2, 7, 18, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::LFEC)); + BOOST_CHECK (markers->get (dcp::Marker::LFEC) == dcp::Time(3, 2, 8, 18, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::FFMC)); + BOOST_CHECK (markers->get (dcp::Marker::FFMC) == dcp::Time(4, 2, 8, 18, 24)); + BOOST_REQUIRE (markers->get(dcp::Marker::LFMC)); + BOOST_CHECK (markers->get (dcp::Marker::LFMC) == dcp::Time(4, 3, 8, 18, 24)); + + BOOST_CHECK (markers->equals(markers, dcp::EqualityOptions(), [](dcp::NoteType, string) {})); + + auto markers2 = make_shared(dcp::Fraction(24, 1), 432000); + BOOST_CHECK (!markers->equals(markers2, dcp::EqualityOptions(), [](dcp::NoteType, string) {})); + } }