diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-05-29 11:57:08 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-05-29 11:57:08 +0100 |
| commit | aebf2cb7812c8f593b85182611b587e6014aefc6 (patch) | |
| tree | c954ebc0cf39263b6c051e159f48e177cafae310 /test | |
| parent | 8b1958988ca234f51ec99385d81b95c1f0f092af (diff) | |
Re-work Subtitle class; remove STL text writer.
Diffstat (limited to 'test')
| -rw-r--r-- | test/dcp_reader_test.cc | 540 | ||||
| -rw-r--r-- | test/dcp_to_stl_text_test.cc | 47 | ||||
| -rw-r--r-- | test/stl_text_reader_test.cc | 189 | ||||
| -rw-r--r-- | test/stl_text_writer_test.cc | 68 | ||||
| -rw-r--r-- | test/time_test.cc | 17 | ||||
| -rw-r--r-- | test/wscript | 2 |
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 """ |
