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/subrip_reader_test.cc | |
| parent | 49cafda01b3e07c47e3b20dd5ee91e1426446aea (diff) | |
Simplify time representation; better in-tree DCP subtitle parser.
Diffstat (limited to 'test/subrip_reader_test.cc')
| -rw-r--r-- | test/subrip_reader_test.cc | 71 |
1 files changed, 35 insertions, 36 deletions
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) { |
