diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-01-14 17:39:32 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-01-20 11:20:25 +0000 |
| commit | 3f630fb8334238ab8a58fbe1a0f513ae2c00de80 (patch) | |
| tree | 4b773b91029d6374bfd4f2194053d3e249d597cd /test | |
| parent | 49cafda01b3e07c47e3b20dd5ee91e1426446aea (diff) | |
Simplify time representation; better in-tree DCP subtitle parser.
Diffstat (limited to 'test')
| -rw-r--r-- | test/dcp_reader_test.cc | 336 | ||||
| -rw-r--r-- | test/dcp_to_stl_binary_test.cc | 13 | ||||
| -rw-r--r-- | test/stl_binary_writer_test.cc | 8 | ||||
| -rw-r--r-- | test/stl_text_reader_test.cc | 26 | ||||
| -rw-r--r-- | test/subrip_reader_test.cc | 71 | ||||
| -rw-r--r-- | test/time_test.cc | 53 |
6 files changed, 243 insertions, 264 deletions
diff --git a/test/dcp_reader_test.cc b/test/dcp_reader_test.cc index 7fd1621..a5ec975 100644 --- a/test/dcp_reader_test.cc +++ b/test/dcp_reader_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington <cth@carlh.net> + Copyright (C) 2014-2015 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ */ -#include "dcp_reader.h" +#include "interop_dcp_reader.h" #include "collect.h" #include <boost/test/unit_test.hpp> #include <fstream> @@ -30,22 +30,22 @@ using boost::shared_ptr; /* Test reading of a DCP XML file */ BOOST_AUTO_TEST_CASE (dcp_reader_test1) { - sub::DCPReader reader ("test/data/test1.xml", true); + sub::InteropDCPReader reader ("test/data/test1.xml"); list<sub::Subtitle> subs = sub::collect<list<sub::Subtitle> > (reader.subtitles ()); list<sub::Subtitle>::iterator i = subs.begin (); - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 0, 5, 198 * 4)); - BOOST_CHECK_EQUAL (i->to.metric(), sub::MetricTime (0, 0, 7, 115 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 5, 198 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 7, 115 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 4)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 4)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFontId"); + BOOST_CHECK_EQUAL (b.font.get(), "theFontId"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (39) / (72 * 11)); @@ -56,22 +56,22 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j == i->lines.end ()); + BOOST_REQUIRE (j == i->lines.end ()); } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 0, 7, 177 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 11, 31 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 7, 177 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 11, 31 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 4)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 4)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFontId"); + BOOST_CHECK_EQUAL (b.font.get(), "theFontId"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (39) / (72 * 11)); @@ -82,10 +82,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFontId"); + BOOST_CHECK_EQUAL (b.font.get(), "theFontId"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (39) / (72 * 11)); @@ -96,22 +96,22 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j == i->lines.end ()); + BOOST_REQUIRE (j == i->lines.end ()); } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 0, 11, 94 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 13, 63 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 11, 94 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 13, 63 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 4)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 4)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFontId"); + BOOST_CHECK_EQUAL (b.font.get(), "theFontId"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (39) / (72 * 11)); @@ -122,22 +122,22 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j == i->lines.end ()); + BOOST_REQUIRE (j == i->lines.end ()); } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric(), sub::MetricTime (0, 0, 13, 104 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 15, 177 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 13, 104 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 15, 177 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 4)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 4)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFontId"); + BOOST_CHECK_EQUAL (b.font.get(), "theFontId"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (39) / (72 * 11)); @@ -148,29 +148,29 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j == i->lines.end ()); + BOOST_REQUIRE (j == i->lines.end ()); } } /* And another one */ BOOST_AUTO_TEST_CASE (dcp_reader_test2) { - sub::DCPReader reader ("test/data/test2.xml", true); + sub::InteropDCPReader reader ("test/data/test2.xml"); list<sub::Subtitle> subs = sub::collect<list<sub::Subtitle> > (reader.subtitles ()); list<sub::Subtitle>::iterator i = subs.begin (); - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric(), sub::MetricTime (0, 0, 41, 62 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 43, 52 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 41, 62 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 43, 52 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -181,10 +181,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -199,18 +199,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric(), sub::MetricTime (0, 0, 50, 42 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 52, 21 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 50, 42 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 52, 21 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -221,10 +221,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -239,18 +239,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 2, 208 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 04, 10 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 2, 208 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 04, 10 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -261,40 +261,40 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 2, 208 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 4, 10 * 4)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 2, 208 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 4, 10 * 4)); BOOST_CHECK_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP_OF_SCREEN); BOOST_CHECK_EQUAL (b.text, "I spent a long weekend in Brighton"); BOOST_CHECK_EQUAL (b.effect, sub::BORDER); BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); ++j; BOOST_CHECK (j == i->lines.end ()); } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 15, 42 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 16, 42 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 15, 42 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 16, 42 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -305,10 +305,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -323,18 +323,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 20, 219 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 22, 73 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 20, 219 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 22, 73 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -345,10 +345,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -363,18 +363,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 27, 115 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 28, 208 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 27, 115 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 28, 208 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -385,10 +385,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -403,18 +403,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 42, 229 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 45, 62 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 42, 229 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 45, 62 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -425,10 +425,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -443,18 +443,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 45, 146 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 47, 94 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 45, 146 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 47, 94 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -465,10 +465,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -483,18 +483,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 47, 146 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 48, 167 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 47, 146 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 48, 167 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -505,10 +505,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -523,18 +523,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 53, 21 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 56, 10 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 53, 21 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 56, 10 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -545,10 +545,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -563,18 +563,18 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) } ++i; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 2, 5, 208 * 4)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 2, 7, 31 * 4)); - BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0)); - BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0)); + BOOST_REQUIRE (i != subs.end ()); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 2, 5, 208 * 4)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 2, 7, 31 * 4)); + BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 0)); + BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { list<sub::Line>::iterator j = i->lines.begin (); - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); @@ -585,10 +585,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); ++j; - BOOST_CHECK (j != i->lines.end ()); - BOOST_CHECK_EQUAL (j->blocks.size(), 1); + BOOST_REQUIRE (j != i->lines.end ()); + BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); - BOOST_CHECK_EQUAL (b.font, "theFont"); + BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); BOOST_CHECK_EQUAL (b.font_size.proportional().get(), float (42) / (72 * 11)); diff --git a/test/dcp_to_stl_binary_test.cc b/test/dcp_to_stl_binary_test.cc index 8ac377b..6199c69 100644 --- a/test/dcp_to_stl_binary_test.cc +++ b/test/dcp_to_stl_binary_test.cc @@ -18,7 +18,8 @@ */ #include "test.h" -#include "dcp_reader.h" +#include "interop_dcp_reader.h" +#include "smpte_dcp_reader.h" #include "stl_binary_writer.h" #include "collect.h" #include <boost/test/unit_test.hpp> @@ -35,7 +36,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test1) boost::filesystem::path p = private_test / "fd586c30-6d38-48f2-8241-27359acf184c_sub.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p, true).subtitles ()), + sub::collect<list<sub::Subtitle> > (sub::InteropDCPReader(p).subtitles ()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -62,7 +63,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test2) boost::filesystem::path p = private_test / "93e8a6bf-499e-4d36-9350-a9bfa2e6758a_sub.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p, true).subtitles ()), + sub::collect<list<sub::Subtitle> > (sub::InteropDCPReader(p).subtitles ()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -89,7 +90,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test3) boost::filesystem::path p = private_test / "Paddington_FTR_Subs_DE-FR_24fps_R1.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p, true).subtitles ()), + sub::collect<list<sub::Subtitle> > (sub::InteropDCPReader(p).subtitles ()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -111,7 +112,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test3) BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test4) { sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader("test/data/test1.xml", true).subtitles ()), + sub::collect<list<sub::Subtitle> > (sub::InteropDCPReader("test/data/test1.xml").subtitles ()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -133,7 +134,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test5) boost::filesystem::path p = private_test / "065d39ff-6723-4dbf-a94f-849cde82f5e1_sub.mxf"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p, false).subtitles ()), + sub::collect<list<sub::Subtitle> > (sub::SMPTEDCPReader(p, true).subtitles ()), 25, sub::LANGUAGE_FRENCH, "", "", diff --git a/test/stl_binary_writer_test.cc b/test/stl_binary_writer_test.cc index 9bc3ec7..f0a407c 100644 --- a/test/stl_binary_writer_test.cc +++ b/test/stl_binary_writer_test.cc @@ -30,8 +30,8 @@ BOOST_AUTO_TEST_CASE (stl_binary_writer_test) { sub::Subtitle s; - s.from.set_frame (sub::FrameTime (0, 0, 41, 9)); - s.to.set_frame (sub::FrameTime (0, 0, 42, 21)); + s.from = sub::Time::from_hmsf (0, 0, 41, 9, sub::Rational (25, 1)); + s.to = sub::Time::from_hmsf (0, 0, 42, 21, sub::Rational (25, 1)); { sub::Block b; @@ -64,8 +64,8 @@ BOOST_AUTO_TEST_CASE (stl_binary_writer_test) { sub::Subtitle s; - s.from.set_frame (sub::FrameTime (0, 1, 1, 1)); - s.to.set_frame (sub::FrameTime (0, 1, 2, 10)); + s.from = sub::Time::from_hmsf (0, 1, 1, 1, sub::Rational (25, 1)); + s.to = sub::Time::from_hmsf (0, 1, 2, 10, sub::Rational (25, 1)); sub::Line l; l.vertical_position.line = 0; diff --git a/test/stl_text_reader_test.cc b/test/stl_text_reader_test.cc index b21ecee..0ce9594 100644 --- a/test/stl_text_reader_test.cc +++ b/test/stl_text_reader_test.cc @@ -40,15 +40,15 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) /* First subtitle */ BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.frame().get(), sub::FrameTime (0, 0, 41, 9)); - BOOST_CHECK_EQUAL (i->to.frame().get(), sub::FrameTime (0, 0, 42, 21)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hmsf (0, 0, 41, 9)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hmsf (0, 0, 42, 21)); list<sub::Line>::iterator j = i->lines.begin (); BOOST_CHECK (j != i->lines.end ()); BOOST_CHECK_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); BOOST_CHECK_EQUAL (b.text, " This is a subtitle "); - BOOST_CHECK_EQUAL (b.font, "Arial"); + BOOST_CHECK_EQUAL (b.font.get(), "Arial"); BOOST_CHECK_EQUAL (b.font_size.points().get(), 42); BOOST_CHECK_EQUAL (b.bold, false); BOOST_CHECK_EQUAL (b.italic, false); @@ -60,7 +60,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); BOOST_CHECK_EQUAL (b.text, " and that's a line break"); - BOOST_CHECK_EQUAL (b.font, "Arial"); + BOOST_CHECK_EQUAL (b.font.get(), "Arial"); BOOST_CHECK_EQUAL (b.font_size.points().get(), 42); BOOST_CHECK_EQUAL (b.bold, false); BOOST_CHECK_EQUAL (b.italic, false); @@ -72,8 +72,8 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) /* Second subtitle */ BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.frame().get(), sub::FrameTime (0, 1, 1, 1)); - BOOST_CHECK_EQUAL (i->to.frame().get(), sub::FrameTime (0, 1, 2, 10)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hmsf (0, 1, 1, 1)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hmsf (0, 1, 2, 10)); BOOST_CHECK_EQUAL (i->lines.size(), 1); sub::Line l = i->lines.front (); @@ -84,7 +84,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, " This is some "); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -93,7 +93,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "bold"); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); BOOST_CHECK_EQUAL (k->bold, true); BOOST_CHECK_EQUAL (k->italic, false); @@ -102,7 +102,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, " and some "); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -111,7 +111,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "bold italic"); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); BOOST_CHECK_EQUAL (k->bold, true); BOOST_CHECK_EQUAL (k->italic, true); @@ -120,7 +120,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, " and some "); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -129,7 +129,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "underlined"); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -138,7 +138,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "."); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); diff --git a/test/subrip_reader_test.cc b/test/subrip_reader_test.cc index e54f620..1779517 100644 --- a/test/subrip_reader_test.cc +++ b/test/subrip_reader_test.cc @@ -44,15 +44,15 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) /* First subtitle */ BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 0, 41, 90)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 42, 210)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 41, 90)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 42, 210)); list<sub::Line>::iterator j = i->lines.begin (); BOOST_CHECK (j != i->lines.end ()); BOOST_CHECK_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); BOOST_CHECK_EQUAL (b.text, "This is a subtitle"); - BOOST_CHECK_EQUAL (b.font, "Arial"); + BOOST_CHECK_EQUAL (b.font.get(), "Arial"); BOOST_CHECK_EQUAL (b.font_size.points().get(), 48); BOOST_CHECK_EQUAL (b.bold, false); BOOST_CHECK_EQUAL (b.italic, false); @@ -65,7 +65,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK_EQUAL (j->blocks.size(), 1); b = j->blocks.front (); BOOST_CHECK_EQUAL (b.text, "and that's a line break"); - BOOST_CHECK_EQUAL (b.font, "Arial"); + BOOST_CHECK_EQUAL (b.font.get(), "Arial"); BOOST_CHECK_EQUAL (b.font_size.points().get(), 48); BOOST_CHECK_EQUAL (b.bold, false); BOOST_CHECK_EQUAL (b.italic, false); @@ -78,8 +78,8 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) /* Second subtitle */ BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 1, 10)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 2, 100)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 1, 10)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 2, 100)); BOOST_CHECK_EQUAL (i->lines.size(), 1); sub::Line l = i->lines.front (); @@ -91,7 +91,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "This is some "); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 48); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -100,7 +100,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "bold"); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 48); BOOST_CHECK_EQUAL (k->bold, true); BOOST_CHECK_EQUAL (k->italic, false); @@ -109,7 +109,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, " and some "); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 48); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -118,7 +118,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "bold italic"); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 48); BOOST_CHECK_EQUAL (k->bold, true); BOOST_CHECK_EQUAL (k->italic, true); @@ -127,7 +127,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, " and some "); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 48); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -136,7 +136,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "underlined"); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 48); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -145,7 +145,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "."); - BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font.get(), "Arial"); BOOST_CHECK_EQUAL (k->font_size.points().get(), 48); BOOST_CHECK_EQUAL (k->bold, false); BOOST_CHECK_EQUAL (k->italic, false); @@ -166,46 +166,46 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test2) list<sub::Subtitle>::const_iterator i = subs.begin(); BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 49, 200)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 52, 351)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 49, 200)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 52, 351)); BOOST_CHECK_EQUAL (i->lines.size(), 2); BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "This is a subtitle, and it goes "); BOOST_CHECK_EQUAL (i->lines.back().blocks.front().text, "over two lines."); ++i; BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 52, 440)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 54, 351)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 52, 440)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 54, 351)); BOOST_CHECK_EQUAL (i->lines.size(), 1); BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "We have emboldened this"); BOOST_CHECK_EQUAL (i->lines.front().blocks.front().bold, true); ++i; BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 54, 440)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 56, 590)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 54, 440)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 56, 590)); BOOST_CHECK_EQUAL (i->lines.size(), 1); BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "And italicised this."); BOOST_CHECK_EQUAL (i->lines.front().blocks.front().italic, true); ++i; BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 1, 56, 680)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 58, 955)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 56, 680)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 1, 58, 955)); BOOST_CHECK_EQUAL (i->lines.size(), 1); BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "Shall I compare thee to a summers' day?"); ++i; BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 2, 0, 840)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 2, 3, 400)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 2, 0, 840)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 2, 3, 400)); BOOST_CHECK_EQUAL (i->lines.size(), 1); BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "Is this a dagger I see before me?"); ++i; BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->from.metric().get(), sub::MetricTime (0, 3, 54, 560)); - BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 3, 56, 471)); + BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 3, 54, 560)); + BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 3, 56, 471)); BOOST_CHECK_EQUAL (i->lines.size(), 1); BOOST_CHECK_EQUAL (i->lines.front().blocks.front().text, "Hello world."); @@ -218,48 +218,48 @@ BOOST_AUTO_TEST_CASE (subrip_reader_convert_line_test) { sub::SubripReader r; - r.convert_line ("Hello world", 0, sub::TimePair (), sub::TimePair ()); + r.convert_line ("Hello world", 0, sub::Time (), sub::Time ()); BOOST_CHECK_EQUAL (r._subs.size(), 1); BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); r._subs.clear (); - r.convert_line ("<b>Hello world</b>", 0, sub::TimePair (), sub::TimePair ()); + r.convert_line ("<b>Hello world</b>", 0, sub::Time (), sub::Time ()); BOOST_CHECK_EQUAL (r._subs.size(), 1); BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); BOOST_CHECK_EQUAL (r._subs.front().bold, true); r._subs.clear (); - r.convert_line ("<i>Hello world</i>", 0, sub::TimePair (), sub::TimePair ()); + r.convert_line ("<i>Hello world</i>", 0, sub::Time (), sub::Time ()); BOOST_CHECK_EQUAL (r._subs.size(), 1); BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); BOOST_CHECK_EQUAL (r._subs.front().italic, true); r._subs.clear (); - r.convert_line ("<u>Hello world</u>", 0, sub::TimePair (), sub::TimePair ()); + r.convert_line ("<u>Hello world</u>", 0, sub::Time (), sub::Time ()); BOOST_CHECK_EQUAL (r._subs.size(), 1); BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); BOOST_CHECK_EQUAL (r._subs.front().underline, true); r._subs.clear (); - r.convert_line ("{b}Hello world{/b}", 0, sub::TimePair (), sub::TimePair ()); + r.convert_line ("{b}Hello world{/b}", 0, sub::Time (), sub::Time ()); BOOST_CHECK_EQUAL (r._subs.size(), 1); BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); BOOST_CHECK_EQUAL (r._subs.front().bold, true); r._subs.clear (); - r.convert_line ("{i}Hello world{/i}", 0, sub::TimePair (), sub::TimePair ()); + r.convert_line ("{i}Hello world{/i}", 0, sub::Time (), sub::Time ()); BOOST_CHECK_EQUAL (r._subs.size(), 1); BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); BOOST_CHECK_EQUAL (r._subs.front().italic, true); r._subs.clear (); - r.convert_line ("{u}Hello world{/u}", 0, sub::TimePair (), sub::TimePair ()); + r.convert_line ("{u}Hello world{/u}", 0, sub::Time (), sub::Time ()); BOOST_CHECK_EQUAL (r._subs.size(), 1); BOOST_CHECK_EQUAL (r._subs.front().text, "Hello world"); BOOST_CHECK_EQUAL (r._subs.front().underline, true); r._subs.clear (); - r.convert_line ("<b>This is <i>nesting</i> of subtitles</b>", 0, sub::TimePair (), sub::TimePair ()); + r.convert_line ("<b>This is <i>nesting</i> of subtitles</b>", 0, sub::Time (), sub::Time ()); BOOST_CHECK_EQUAL (r._subs.size(), 3); list<sub::RawSubtitle>::iterator i = r._subs.begin (); BOOST_CHECK_EQUAL (i->text, "This is "); @@ -281,11 +281,10 @@ BOOST_AUTO_TEST_CASE (subrip_reader_convert_line_test) /** Test SubripReader::convert_time */ BOOST_AUTO_TEST_CASE (subrip_reader_convert_time_test) { - BOOST_CHECK_EQUAL (sub::SubripReader::convert_time ("00:03:10,500"), sub::TimePair (sub::MetricTime (0, 3, 10, 500))); - BOOST_CHECK_EQUAL (sub::SubripReader::convert_time ("04:19:51,782"), sub::TimePair (sub::MetricTime (4, 19, 51, 782))); + BOOST_CHECK_EQUAL (sub::SubripReader::convert_time ("00:03:10,500"), sub::Time::from_hms (0, 3, 10, 500)); + BOOST_CHECK_EQUAL (sub::SubripReader::convert_time ("04:19:51,782"), sub::Time::from_hms (4, 19, 51, 782)); } - static void test (boost::filesystem::path p) { diff --git a/test/time_test.cc b/test/time_test.cc index d6ca14a..f57bb2c 100644 --- a/test/time_test.cc +++ b/test/time_test.cc @@ -17,16 +17,14 @@ */ +#include "sub_time.h" #include <boost/test/unit_test.hpp> -#include "metric_time.h" -#include "frame_time.h" -#include "time_pair.h" /* Check time construction */ BOOST_AUTO_TEST_CASE (time_construction_test) { { - sub::MetricTime t (3, 5, 7, 40); + sub::Time t = sub::Time::from_hms (3, 5, 7, 40); BOOST_CHECK_EQUAL (t.hours(), 3); BOOST_CHECK_EQUAL (t.minutes(), 5); BOOST_CHECK_EQUAL (t.seconds(), 7); @@ -34,54 +32,35 @@ BOOST_AUTO_TEST_CASE (time_construction_test) } { - sub::MetricTime t (591353, 1, 2, 3); + sub::Time t = sub::Time::from_hms (591353, 1, 2, 3); BOOST_CHECK_EQUAL (t.hours(), 591353); BOOST_CHECK_EQUAL (t.minutes(), 1); BOOST_CHECK_EQUAL (t.seconds(), 2); BOOST_CHECK_EQUAL (t.milliseconds(), 3); } - - { - sub::FrameTime t (3 * 60 * 60 * 24 + 31 * 60 * 24 + 4 * 24 + 11, 24); - BOOST_CHECK_EQUAL (t.hours(), 3); - BOOST_CHECK_EQUAL (t.minutes(), 31); - BOOST_CHECK_EQUAL (t.seconds(), 4); - BOOST_CHECK_EQUAL (t.frames(), 11); - } } /* Check time conversions */ BOOST_AUTO_TEST_CASE (time_conversion_test) { - sub::TimePair p; + sub::Time p; /* 40ms = 1 frame at 25fps */ - p.set_metric (sub::MetricTime (3, 5, 7, 40)); - BOOST_CHECK_EQUAL (p.frame (25), sub::FrameTime (3, 5, 7, 1)); - p.set_frame (sub::FrameTime (3, 5, 7, 1)); - BOOST_CHECK_EQUAL (p.metric (25), sub::MetricTime (3, 5, 7, 40)); + p = sub::Time::from_hms (3, 5, 7, 40); + BOOST_CHECK_EQUAL (p.frames_at (sub::Rational (25, 1)), 1); + p = sub::Time::from_hmsf (3, 5, 7, 1, sub::Rational (25, 1)); + BOOST_CHECK_EQUAL (p.milliseconds (), 40); /* 120ms = 3 frames at 25fps */ - p.set_metric (sub::MetricTime (3, 5, 7, 120)); - BOOST_CHECK_EQUAL (p.frame (25), sub::FrameTime (3, 5, 7, 3)); - p.set_frame (sub::FrameTime (3, 5, 7, 3)); - BOOST_CHECK_EQUAL (p.metric (25), sub::MetricTime (3, 5, 7, 120)); + p = sub::Time::from_hms (3, 5, 7, 120); + BOOST_CHECK_EQUAL (p.frames_at (sub::Rational (25, 1)), 3); + p = sub::Time::from_hmsf (3, 5, 7, 3, sub::Rational (25, 1)); + BOOST_CHECK_EQUAL (p.milliseconds (), 120); } -/* Check time maths */ -BOOST_AUTO_TEST_CASE (time_maths_test) +/* Check some operators */ +BOOST_AUTO_TEST_CASE (time_operator_test) { - { - sub::FrameTime a (1, 59, 59, 23); - sub::FrameTime b (2, 31, 19, 2); - a.add (b, 24); - BOOST_CHECK_EQUAL (a, sub::FrameTime (4, 31, 19, 1)); - } - - { - sub::MetricTime a (1, 59, 59, 999); - sub::MetricTime b (2, 31, 19, 2); - a.add (b); - BOOST_CHECK_EQUAL (a, sub::MetricTime (4, 31, 19, 1)); - } + BOOST_CHECK_EQUAL (sub::Time::from_hms (0, 0, 5, 198 * 4), sub::Time::from_hms (0, 0, 5, 198 * 4)); + BOOST_CHECK (sub::Time::from_hms (0, 0, 55, 332) != sub::Time::from_hms (0, 0, 58, 332)); } |
