summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-05-29 11:57:08 +0100
committerCarl Hetherington <cth@carlh.net>2014-05-29 11:57:08 +0100
commitaebf2cb7812c8f593b85182611b587e6014aefc6 (patch)
treec954ebc0cf39263b6c051e159f48e177cafae310 /test
parent8b1958988ca234f51ec99385d81b95c1f0f092af (diff)
Re-work Subtitle class; remove STL text writer.
Diffstat (limited to 'test')
-rw-r--r--test/dcp_reader_test.cc540
-rw-r--r--test/dcp_to_stl_text_test.cc47
-rw-r--r--test/stl_text_reader_test.cc189
-rw-r--r--test/stl_text_writer_test.cc68
-rw-r--r--test/time_test.cc17
-rw-r--r--test/wscript2
6 files changed, 400 insertions, 463 deletions
diff --git a/test/dcp_reader_test.cc b/test/dcp_reader_test.cc
index 0029d16..0163108 100644
--- a/test/dcp_reader_test.cc
+++ b/test/dcp_reader_test.cc
@@ -36,81 +36,91 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1)
list<sub::Subtitle>::iterator i = subs.begin ();
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 5, 198 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 7, 115 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ sub::Block b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.15, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
- BOOST_CHECK_EQUAL (i->text, "My jacket was Idi Amin's");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "My jacket was Idi Amin's");
+ 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, 4));
BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 7, 177 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 11, 31 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.21, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
- BOOST_CHECK_EQUAL (i->text, "My corset was H.M. The Queen's");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "My corset was H.M. The Queen's");
+ 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, 4));
BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 7, 177 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 11, 31 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.15, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
- BOOST_CHECK_EQUAL (i->text, "My large wonderbra");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "My large wonderbra");
+ 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, 4));
BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 11, 94 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 13, 63 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.15, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
- BOOST_CHECK_EQUAL (i->text, "Once belonged to the Shah");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "Once belonged to the Shah");
+ 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, 4));
BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 13, 104 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 15, 177 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.15, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
- BOOST_CHECK_EQUAL (i->text, "And these are Roy Hattersley's jeans");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "And these are Roy Hattersley's jeans");
+ 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, 4));
BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
}
@@ -125,353 +135,397 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2)
list<sub::Subtitle>::iterator i = subs.begin ();
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 41, 62 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 43, 52 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ sub::Block b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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(), sub::MetricTime (0, 0, 41, 62 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 43, 52 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "At afternoon tea with John Peel");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "At afternoon tea with John Peel");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 41, 62 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 43, 52 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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(), sub::MetricTime (0, 0, 41, 62 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 43, 52 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "I enquired if his accent was real");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "I enquired if his accent was real");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 50, 42 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 52, 21 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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(), sub::MetricTime (0, 0, 50, 42 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 52, 21 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "He said \"out of the house");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "He said \"out of the house");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 50, 42 * 4));
- BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 52, 21 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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(), sub::MetricTime (0, 0, 50, 42 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 0, 52, 21 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "I'm incredibly scouse");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "I'm incredibly scouse");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->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, 04, 10 * 4));
+ BOOST_CHECK_EQUAL (i->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 04, 10 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "At home it depends how I feel.\"");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "At home it depends how I feel.\"");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "I spent a long weekend in Brighton");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 15, 42 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 16, 42 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "With the legendary Miss Enid Blyton");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "With the legendary Miss Enid Blyton");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 15, 42 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 16, 42 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "She said \"you be Noddy");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "She said \"you be Noddy");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 20, 219 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 22, 73 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "and I'll show you my body\"");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "and I'll show you my body\"");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 20, 219 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 22, 73 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "But Big Ears kept turning the light on.");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "But Big Ears kept turning the light on.");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 27, 115 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 28, 208 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "That curious creature the Sphinx");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "That curious creature the Sphinx");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 27, 115 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 1, 28, 208 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "Is smarter than anyone thinks");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "Is smarter than anyone thinks");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "It sits there and smirks");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "It sits there and smirks");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "And you don't think it works");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "And you don't think it works");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "Then when you're not looking, it winks.");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "Then when you're not looking, it winks.");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "When it snows you will find Sister Sledge");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "When it snows you will find Sister Sledge");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "Out mooning, at night, on the ledge");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "Out mooning, at night, on the ledge");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "One storey down");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "One storey down");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "Is the maestro, James Brown");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "Is the maestro, James Brown");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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));
+ 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_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "Displaying his meat and two veg.");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "Displaying his meat and two veg.");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 2, 5, 208 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 2, 7, 31 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "HELLO");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "HELLO");
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
- BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ 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, 2, 5, 208 * 4));
+ BOOST_CHECK_EQUAL (i->to.metric().get(), sub::MetricTime (0, 2, 7, 31 * 4));
BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
- BOOST_CHECK_EQUAL (i->text, "WORLD");
- BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
- BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
+ BOOST_CHECK_EQUAL (b.text, "WORLD");
+ 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));
}
diff --git a/test/dcp_to_stl_text_test.cc b/test/dcp_to_stl_text_test.cc
deleted file mode 100644
index 4f553bc..0000000
--- a/test/dcp_to_stl_text_test.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- Copyright (C) 2014 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
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#include <fstream>
-#include <boost/test/unit_test.hpp>
-#include "test.h"
-#include "dcp_reader.h"
-#include "stl_text_writer.h"
-
-using std::string;
-using std::ifstream;
-using std::ofstream;
-
-BOOST_AUTO_TEST_CASE (dcp_to_stl_text_test)
-{
- using boost::filesystem::path;
-
- if (private_test.empty ()) {
- return;
- }
-
- path p = private_test / "fd586c30-6d38-48f2-8241-27359acf184c_sub.xml";
- ifstream f (p.c_str ());
- sub::DCPReader r (f);
- path const q = path ("build") / path ("test") / path ("fd586c30-6d38-48f2-8241-27359acf184c_sub.stl");
- ofstream g (q.c_str ());
- sub::write_stl_text (r.subtitles (), 72 * 11, 24, g);
- path const c = private_test / "fd586c30-6d38-48f2-8241-27359acf184c_sub.stl";
- g.close ();
- check_text (q, c);
-}
diff --git a/test/stl_text_reader_test.cc b/test/stl_text_reader_test.cc
index fa9d448..ddf754e 100644
--- a/test/stl_text_reader_test.cc
+++ b/test/stl_text_reader_test.cc
@@ -24,6 +24,7 @@
using std::list;
using std::ifstream;
+using std::vector;
/* Test reading of a textual STL file */
BOOST_AUTO_TEST_CASE (stl_text_reader_test)
@@ -35,111 +36,105 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test)
list<sub::Subtitle>::iterator i = subs.begin ();
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->text, " This is a subtitle ");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- BOOST_CHECK_EQUAL (i->bold, false);
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK_EQUAL (i->underline, false);
- BOOST_CHECK_EQUAL (i->line, 0);
- 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->blocks.size(), 1);
+ sub::Block b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.text, " This is a subtitle ");
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ BOOST_CHECK_EQUAL (b.font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (b.bold, false);
+ BOOST_CHECK_EQUAL (b.italic, false);
+ BOOST_CHECK_EQUAL (b.underline, false);
+ BOOST_CHECK_EQUAL (i->vertical_position.line.get(), 0);
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->text, " and that's a line break");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- BOOST_CHECK_EQUAL (i->bold, false);
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK_EQUAL (i->underline, false);
- BOOST_CHECK_EQUAL (i->line, 1);
- 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->blocks.size(), 1);
+ b = i->blocks.front ();
+ BOOST_CHECK_EQUAL (b.text, " and that's a line break");
+ BOOST_CHECK_EQUAL (b.font, "Arial");
+ BOOST_CHECK_EQUAL (b.font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (b.bold, false);
+ BOOST_CHECK_EQUAL (b.italic, false);
+ BOOST_CHECK_EQUAL (b.underline, false);
+ BOOST_CHECK_EQUAL (i->vertical_position.line.get(), 1);
+ 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));
++i;
BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->text, " This is some ");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- BOOST_CHECK_EQUAL (i->bold, false);
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK_EQUAL (i->underline, false);
- BOOST_CHECK_EQUAL (i->line, 0);
- 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));
- ++i;
-
- BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->text, "bold");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- BOOST_CHECK_EQUAL (i->bold, true);
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK_EQUAL (i->underline, false);
- 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));
- ++i;
-
- BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->text, " and some ");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- 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->bold, false);
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK_EQUAL (i->underline, false);
- BOOST_CHECK_EQUAL (i->line, 0);
- ++i;
-
- BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->text, "bold italic");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- BOOST_CHECK_EQUAL (i->bold, true);
- BOOST_CHECK_EQUAL (i->italic, true);
- BOOST_CHECK_EQUAL (i->underline, false);
- BOOST_CHECK_EQUAL (i->line, 0);
- 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));
- ++i;
+ BOOST_CHECK_EQUAL (i->blocks.size(), 7);
+ BOOST_CHECK_EQUAL (i->vertical_position.line.get(), 0);
+ 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 (i != subs.end ());
- BOOST_CHECK_EQUAL (i->text, " and some ");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- BOOST_CHECK_EQUAL (i->bold, false);
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK_EQUAL (i->underline, false);
- 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));
- ++i;
-
- BOOST_CHECK (i != subs.end ());
- BOOST_CHECK_EQUAL (i->text, "underlined");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- BOOST_CHECK_EQUAL (i->bold, false);
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK_EQUAL (i->underline, true);
- BOOST_CHECK_EQUAL (i->line, 0);
- 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));
- ++i;
-
- BOOST_CHECK_EQUAL (i->text, ".");
- BOOST_CHECK_EQUAL (i->font, "Arial");
- BOOST_CHECK_EQUAL (i->font_size.points.get(), 42);
- BOOST_CHECK_EQUAL (i->bold, false);
- BOOST_CHECK_EQUAL (i->italic, false);
- BOOST_CHECK_EQUAL (i->underline, false);
- BOOST_CHECK_EQUAL (i->line, 0);
- 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));
- ++i;
+ list<sub::Block>::iterator j = i->blocks.begin ();
+
+ BOOST_CHECK (j != i->blocks.end ());
+ BOOST_CHECK_EQUAL (j->text, " This is some ");
+ BOOST_CHECK_EQUAL (j->font, "Arial");
+ BOOST_CHECK_EQUAL (j->font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (j->bold, false);
+ BOOST_CHECK_EQUAL (j->italic, false);
+ BOOST_CHECK_EQUAL (j->underline, false);
+ ++j;
+
+ BOOST_CHECK (j != i->blocks.end ());
+ BOOST_CHECK_EQUAL (j->text, "bold");
+ BOOST_CHECK_EQUAL (j->font, "Arial");
+ BOOST_CHECK_EQUAL (j->font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (j->bold, true);
+ BOOST_CHECK_EQUAL (j->italic, false);
+ BOOST_CHECK_EQUAL (j->underline, false);
+ ++j;
+
+ BOOST_CHECK (j != i->blocks.end ());
+ BOOST_CHECK_EQUAL (j->text, " and some ");
+ BOOST_CHECK_EQUAL (j->font, "Arial");
+ BOOST_CHECK_EQUAL (j->font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (j->bold, false);
+ BOOST_CHECK_EQUAL (j->italic, false);
+ BOOST_CHECK_EQUAL (j->underline, false);
+ ++j;
+
+ BOOST_CHECK (j != i->blocks.end ());
+ BOOST_CHECK_EQUAL (j->text, "bold italic");
+ BOOST_CHECK_EQUAL (j->font, "Arial");
+ BOOST_CHECK_EQUAL (j->font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (j->bold, true);
+ BOOST_CHECK_EQUAL (j->italic, true);
+ BOOST_CHECK_EQUAL (j->underline, false);
+ ++j;
+
+ BOOST_CHECK (j != i->blocks.end ());
+ BOOST_CHECK_EQUAL (j->text, " and some ");
+ BOOST_CHECK_EQUAL (j->font, "Arial");
+ BOOST_CHECK_EQUAL (j->font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (j->bold, false);
+ BOOST_CHECK_EQUAL (j->italic, false);
+ BOOST_CHECK_EQUAL (j->underline, false);
+ ++j;
+
+ BOOST_CHECK (j != i->blocks.end ());
+ BOOST_CHECK_EQUAL (j->text, "underlined");
+ BOOST_CHECK_EQUAL (j->font, "Arial");
+ BOOST_CHECK_EQUAL (j->font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (j->bold, false);
+ BOOST_CHECK_EQUAL (j->italic, false);
+ BOOST_CHECK_EQUAL (j->underline, true);
+ ++j;
+
+ BOOST_CHECK (j != i->blocks.end ());
+ BOOST_CHECK_EQUAL (j->text, ".");
+ BOOST_CHECK_EQUAL (j->font, "Arial");
+ BOOST_CHECK_EQUAL (j->font_size.points().get(), 42);
+ BOOST_CHECK_EQUAL (j->bold, false);
+ BOOST_CHECK_EQUAL (j->italic, false);
+ BOOST_CHECK_EQUAL (j->underline, false);
+ ++j;
- BOOST_CHECK (i == subs.end ());
+ BOOST_CHECK (j == i->blocks.end ());
}
diff --git a/test/stl_text_writer_test.cc b/test/stl_text_writer_test.cc
deleted file mode 100644
index 8706bf3..0000000
--- a/test/stl_text_writer_test.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- Copyright (C) 2014 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
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#include <boost/test/unit_test.hpp>
-#include <fstream>
-#include "stl_text_writer.h"
-#include "subtitle.h"
-#include "test.h"
-
-using std::list;
-using std::string;
-using std::ifstream;
-using std::ofstream;
-
-static sub::Subtitle
-make (string text, bool bold, bool italic, bool underline, int line, sub::FrameTime from, sub::FrameTime to)
-{
- sub::Subtitle s;
- s.text = text;
- s.font = "Arial";
- s.font_size.points = 42;
- s.bold = bold;
- s.italic = italic;
- s.underline = underline;
- s.line = line;
- s.from.frame = from;
- s.to.frame = to;
- return s;
-}
-
-/* Test writing of an textual STL file */
-BOOST_AUTO_TEST_CASE (stl_text_writer_test)
-{
- list<sub::Subtitle> subs;
- subs.push_back (make (" This is a subtitle ", false, false, false, 0, sub::FrameTime (0, 0, 41, 9), sub::FrameTime (0, 0, 42, 21)));
- subs.push_back (make (" and that's a line break", false, false, false, 1, sub::FrameTime (0, 0, 41, 9), sub::FrameTime (0, 0, 42, 21)));
- subs.push_back (make (" This is some ", false, false, false, 0, sub::FrameTime (0, 1, 1, 1), sub::FrameTime (0, 1, 2, 10)));
- subs.push_back (make ("bold", true, false, false, 0, sub::FrameTime (0, 1, 1, 1), sub::FrameTime (0, 1, 2, 10)));
- subs.push_back (make (" and some ", false, false, false, 0, sub::FrameTime (0, 1, 1, 1), sub::FrameTime (0, 1, 2, 10)));
- subs.push_back (make ("bold italic", true, true, false, 0, sub::FrameTime (0, 1, 1, 1), sub::FrameTime (0, 1, 2, 10)));
- subs.push_back (make (" and some ", false, false, false, 0, sub::FrameTime (0, 1, 1, 1), sub::FrameTime (0, 1, 2, 10)));
- subs.push_back (make ("underlined", false, false, true, 0, sub::FrameTime (0, 1, 1, 1), sub::FrameTime (0, 1, 2, 10)));
- subs.push_back (make (".", false, false, false, 0, sub::FrameTime (0, 1, 1, 1), sub::FrameTime (0, 1, 2, 10)));
-
- ofstream f ("build/test/test.stl");
- write_stl_text (subs, 24, 72 * 11, f);
- f.close ();
-
- check_text ("test/ref/test.stl", "build/test/test.stl");
-}
-
-
diff --git a/test/time_test.cc b/test/time_test.cc
index a244377..977ebd2 100644
--- a/test/time_test.cc
+++ b/test/time_test.cc
@@ -20,7 +20,7 @@
#include <boost/test/unit_test.hpp>
#include "metric_time.h"
#include "frame_time.h"
-#include "convert_time.h"
+#include "time_pair.h"
/* Check time construction */
BOOST_AUTO_TEST_CASE (time_construction_test)
@@ -45,12 +45,17 @@ BOOST_AUTO_TEST_CASE (time_construction_test)
/* Check time conversions */
BOOST_AUTO_TEST_CASE (time_conversion_test)
{
+ sub::TimePair p;
+
/* 40ms = 1 frame at 25fps */
- BOOST_CHECK_EQUAL (metric_to_frame (sub::MetricTime (3, 5, 7, 40), 25), sub::FrameTime (3, 5, 7, 1));
- BOOST_CHECK_EQUAL (frame_to_metric (sub::FrameTime (3, 5, 7, 1), 25), sub::MetricTime (3, 5, 7, 40));
+ 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));
/* 120ms = 3 frames at 25fps */
- BOOST_CHECK_EQUAL (metric_to_frame (sub::MetricTime (3, 5, 7, 120), 25), sub::FrameTime (3, 5, 7, 3));
- BOOST_CHECK_EQUAL (frame_to_metric (sub::FrameTime (3, 5, 7, 3), 25), sub::MetricTime (3, 5, 7, 120));
+ 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));
}
-
diff --git a/test/wscript b/test/wscript
index c3ee7f4..d9ea727 100644
--- a/test/wscript
+++ b/test/wscript
@@ -17,11 +17,9 @@ def build(bld):
obj.use = 'libsub'
obj.source = """
dcp_reader_test.cc
- dcp_to_stl_text_test.cc
iso6937_test.cc
stl_binary_reader_test.cc
stl_text_reader_test.cc
- stl_text_writer_test.cc
time_test.cc
test.cc
"""