From: Carl Hetherington Date: Wed, 14 Apr 2021 09:14:13 +0000 (+0200) Subject: Move some tests from write_subtitle_test to smpte_subtitle_test. X-Git-Tag: v1.8.0~50 X-Git-Url: https://main.carlh.net/gitweb/?p=libdcp.git;a=commitdiff_plain;h=9e3f8bfe9e274865590d49ad1e59e82f7894a12a Move some tests from write_subtitle_test to smpte_subtitle_test. --- diff --git a/test/smpte_subtitle_test.cc b/test/smpte_subtitle_test.cc index 2e35ba8d..74b29951 100644 --- a/test/smpte_subtitle_test.cc +++ b/test/smpte_subtitle_test.cc @@ -46,6 +46,7 @@ using std::make_shared; using std::string; using std::shared_ptr; using std::dynamic_pointer_cast; +using std::vector; using boost::optional; @@ -170,3 +171,310 @@ BOOST_AUTO_TEST_CASE (read_smpte_subtitle_test3) BOOST_REQUIRE (si); BOOST_CHECK (si->png_image() == dcp::ArrayData("test/data/sub.png")); } + + +/* Write some subtitle content as SMPTE XML and check that it is right */ +BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test) +{ + dcp::SMPTESubtitleAsset c; + c.set_reel_number (1); + c.set_language (dcp::LanguageTag("en")); + c.set_content_title_text ("Test"); + c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00")); + + c.add ( + make_shared ( + string ("Frutiger"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 4, 9, 22, 24), + dcp::Time (0, 4, 11, 22, 24), + 0, + dcp::HAlign::CENTER, + 0.8, + dcp::VAlign::TOP, + dcp::Direction::LTR, + "Hello world", + dcp::Effect::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ); + + c.add ( + make_shared( + boost::optional (), + true, + true, + true, + dcp::Colour (128, 0, 64), + 91, + 1.0, + dcp::Time (5, 41, 0, 21, 24), + dcp::Time (6, 12, 15, 21, 24), + 0, + dcp::HAlign::CENTER, + 0.4, + dcp::VAlign::BOTTOM, + dcp::Direction::RTL, + "What's going on", + dcp::Effect::BORDER, + dcp::Colour (1, 2, 3), + dcp::Time (1, 2, 3, 4, 24), + dcp::Time (5, 6, 7, 8, 24) + ) + ); + + c._xml_id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; + + check_xml ( + "" + "" + "urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6" + "Test" + "2016-04-01T03:52:00.000+00:00" + "1" + "en" + "24 1" + "24" + "" + "" + "" + "Hello world" + "" + "" + "" + "" + "What's going on" + "" + "" + "" + "", + c.xml_as_string (), + vector() + ); +} + +/* Write some subtitle content as SMPTE XML and check that it is right. + This includes in-line font changes. +*/ +BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2) +{ + dcp::SMPTESubtitleAsset c; + c.set_reel_number (1); + c.set_language (dcp::LanguageTag("en")); + c.set_content_title_text ("Test"); + c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00")); + + c.add ( + make_shared( + string ("Arial"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HAlign::CENTER, + 0.8, + dcp::VAlign::TOP, + dcp::Direction::LTR, + "Testing is ", + dcp::Effect::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ); + + c.add ( + make_shared( + string ("Arial"), + true, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HAlign::CENTER, + 0.8, + dcp::VAlign::TOP, + dcp::Direction::LTR, + "really", + dcp::Effect::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ); + + c.add ( + make_shared( + string ("Arial"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HAlign::CENTER, + 0.8, + dcp::VAlign::TOP, + dcp::Direction::LTR, + " fun", + dcp::Effect::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ); + + c.add ( + make_shared( + string ("Arial"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HAlign::CENTER, + 0.9, + dcp::VAlign::TOP, + dcp::Direction::LTR, + "This is the ", + dcp::Effect::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ); + + c.add ( + make_shared( + string ("Arial"), + true, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HAlign::CENTER, + 0.9, + dcp::VAlign::TOP, + dcp::Direction::LTR, + "second", + dcp::Effect::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ); + + c.add ( + make_shared( + string ("Arial"), + false, + false, + false, + dcp::Colour (255, 255, 255), + 48, + 1.0, + dcp::Time (0, 0, 1, 0, 24), + dcp::Time (0, 0, 9, 0, 24), + 0, + dcp::HAlign::CENTER, + 0.9, + dcp::VAlign::TOP, + dcp::Direction::LTR, + " line", + dcp::Effect::NONE, + dcp::Colour (0, 0, 0), + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ); + + c._xml_id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; + + check_xml ( + c.xml_as_string(), + "" + "" + "urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6" + "Test" + "2016-04-01T03:52:00.000+00:00" + "1" + "en" + "24 1" + "24" + "" + "" + "" + "" + "Testing is " + "really" + " fun" + "" + "" + "This is the " + "second" + " line" + "" + "" + "" + "" + "", + vector() + ); +} + +/* Write some subtitle content as SMPTE using bitmaps and check that it is right */ +BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test3) +{ + dcp::SMPTESubtitleAsset c; + c.set_reel_number (1); + c.set_language (dcp::LanguageTag("en")); + c.set_content_title_text ("Test"); + + c.add ( + make_shared( + dcp::ArrayData ("test/data/sub.png"), + dcp::Time (0, 4, 9, 22, 24), + dcp::Time (0, 4, 11, 22, 24), + 0, + dcp::HAlign::CENTER, + 0.8, + dcp::VAlign::TOP, + dcp::Time (0, 0, 0, 0, 24), + dcp::Time (0, 0, 0, 0, 24) + ) + ); + + c._id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; + + boost::filesystem::create_directories ("build/test/write_smpte_subtitle_test3"); + c.write ("build/test/write_smpte_subtitle_test3/subs.mxf"); + + /* XXX: check this result when we can read them back in again */ +} diff --git a/test/write_subtitle_test.cc b/test/write_subtitle_test.cc index f90d7c6f..c1b01c05 100644 --- a/test/write_subtitle_test.cc +++ b/test/write_subtitle_test.cc @@ -393,308 +393,3 @@ BOOST_AUTO_TEST_CASE (write_interop_subtitle_test3) ); } -/* Write some subtitle content as SMPTE XML and check that it is right */ -BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test) -{ - dcp::SMPTESubtitleAsset c; - c.set_reel_number (1); - c.set_language (dcp::LanguageTag("en")); - c.set_content_title_text ("Test"); - c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00")); - - c.add ( - make_shared ( - string ("Frutiger"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 4, 9, 22, 24), - dcp::Time (0, 4, 11, 22, 24), - 0, - dcp::HAlign::CENTER, - 0.8, - dcp::VAlign::TOP, - dcp::Direction::LTR, - "Hello world", - dcp::Effect::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ); - - c.add ( - make_shared( - boost::optional (), - true, - true, - true, - dcp::Colour (128, 0, 64), - 91, - 1.0, - dcp::Time (5, 41, 0, 21, 24), - dcp::Time (6, 12, 15, 21, 24), - 0, - dcp::HAlign::CENTER, - 0.4, - dcp::VAlign::BOTTOM, - dcp::Direction::RTL, - "What's going on", - dcp::Effect::BORDER, - dcp::Colour (1, 2, 3), - dcp::Time (1, 2, 3, 4, 24), - dcp::Time (5, 6, 7, 8, 24) - ) - ); - - c._xml_id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; - - check_xml ( - "" - "" - "urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6" - "Test" - "2016-04-01T03:52:00.000+00:00" - "1" - "en" - "24 1" - "24" - "" - "" - "" - "Hello world" - "" - "" - "" - "" - "What's going on" - "" - "" - "" - "", - c.xml_as_string (), - vector() - ); -} - -/* Write some subtitle content as SMPTE XML and check that it is right. - This includes in-line font changes. -*/ -BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2) -{ - dcp::SMPTESubtitleAsset c; - c.set_reel_number (1); - c.set_language (dcp::LanguageTag("en")); - c.set_content_title_text ("Test"); - c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00")); - - c.add ( - make_shared( - string ("Arial"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HAlign::CENTER, - 0.8, - dcp::VAlign::TOP, - dcp::Direction::LTR, - "Testing is ", - dcp::Effect::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ); - - c.add ( - make_shared( - string ("Arial"), - true, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HAlign::CENTER, - 0.8, - dcp::VAlign::TOP, - dcp::Direction::LTR, - "really", - dcp::Effect::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ); - - c.add ( - make_shared( - string ("Arial"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HAlign::CENTER, - 0.8, - dcp::VAlign::TOP, - dcp::Direction::LTR, - " fun", - dcp::Effect::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ); - - c.add ( - make_shared( - string ("Arial"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HAlign::CENTER, - 0.9, - dcp::VAlign::TOP, - dcp::Direction::LTR, - "This is the ", - dcp::Effect::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ); - - c.add ( - make_shared( - string ("Arial"), - true, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HAlign::CENTER, - 0.9, - dcp::VAlign::TOP, - dcp::Direction::LTR, - "second", - dcp::Effect::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ); - - c.add ( - make_shared( - string ("Arial"), - false, - false, - false, - dcp::Colour (255, 255, 255), - 48, - 1.0, - dcp::Time (0, 0, 1, 0, 24), - dcp::Time (0, 0, 9, 0, 24), - 0, - dcp::HAlign::CENTER, - 0.9, - dcp::VAlign::TOP, - dcp::Direction::LTR, - " line", - dcp::Effect::NONE, - dcp::Colour (0, 0, 0), - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ); - - c._xml_id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; - - check_xml ( - c.xml_as_string(), - "" - "" - "urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6" - "Test" - "2016-04-01T03:52:00.000+00:00" - "1" - "en" - "24 1" - "24" - "" - "" - "" - "" - "Testing is " - "really" - " fun" - "" - "" - "This is the " - "second" - " line" - "" - "" - "" - "" - "", - vector() - ); -} - -/* Write some subtitle content as SMPTE using bitmaps and check that it is right */ -BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test3) -{ - dcp::SMPTESubtitleAsset c; - c.set_reel_number (1); - c.set_language (dcp::LanguageTag("en")); - c.set_content_title_text ("Test"); - - c.add ( - make_shared( - dcp::ArrayData ("test/data/sub.png"), - dcp::Time (0, 4, 9, 22, 24), - dcp::Time (0, 4, 11, 22, 24), - 0, - dcp::HAlign::CENTER, - 0.8, - dcp::VAlign::TOP, - dcp::Time (0, 0, 0, 0, 24), - dcp::Time (0, 0, 0, 0, 24) - ) - ); - - c._id = "a6c58cff-3e1e-4b38-acec-a42224475ef6"; - - boost::filesystem::create_directories ("build/test/write_smpte_subtitle_test3"); - c.write ("build/test/write_smpte_subtitle_test3/subs.mxf"); - - /* XXX: check this result when we can read them back in again */ -}