diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-05-30 10:53:53 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-05-30 10:53:53 +0100 |
| commit | 38a5ff713757b9dc0cb67cb09613182c46dc9657 (patch) | |
| tree | ef337ee8bcd315b85f3a50ce37f623f3b1c51d76 /test | |
| parent | 97495d8cce58f0e5d9a43977698c60b8b66a83e3 (diff) | |
Split up into RawSubtitle and Subtitle, with collect(). Hopefully cleaner.
Diffstat (limited to 'test')
| -rw-r--r-- | test/dcp_reader_test.cc | 837 | ||||
| -rw-r--r-- | test/stl_binary_writer_test.cc | 34 | ||||
| -rw-r--r-- | test/stl_text_reader_test.cc | 173 |
3 files changed, 565 insertions, 479 deletions
diff --git a/test/dcp_reader_test.cc b/test/dcp_reader_test.cc index 0163108..c73207e 100644 --- a/test/dcp_reader_test.cc +++ b/test/dcp_reader_test.cc @@ -18,6 +18,7 @@ */ #include "dcp_reader.h" +#include "collect.h" #include <boost/test/unit_test.hpp> #include <fstream> @@ -31,98 +32,125 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) { ifstream file ("test/data/test1.xml"); sub::DCPReader reader (file); - list<sub::Subtitle> subs = reader.subtitles (); + list<sub::Subtitle> subs = sub::collect (reader.subtitles ()); list<sub::Subtitle>::iterator i = subs.begin (); - BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.15, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::BOTTOM); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } ++i; BOOST_CHECK (i != subs.end ()); - 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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.21, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::BOTTOM); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.15, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::BOTTOM); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } + ++i; BOOST_CHECK (i != subs.end ()); - 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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.15, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::BOTTOM); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } + ++i; BOOST_CHECK (i != subs.end ()); - 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 (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)); + + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.15, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::BOTTOM); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } } /* And another one */ @@ -130,402 +158,449 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) { ifstream file ("test/data/test2.xml"); sub::DCPReader reader (file); - list<sub::Subtitle> subs = reader.subtitles (); + list<sub::Subtitle> subs = collect (reader.subtitles ()); list<sub::Subtitle>::iterator i = subs.begin (); - BOOST_CHECK (i != subs.end ()); - 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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } + ++i; BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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->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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } ++i; BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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->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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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 (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } ++i; BOOST_CHECK (i != subs.end ()); - 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 (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)); + + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } ++i; BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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->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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } ++i; BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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)); + + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } ++i; BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } ++i; BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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)); + + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } ++i; BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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)); - + + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } + ++i; BOOST_CHECK (i != subs.end ()); - 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 (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)); + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + 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)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } + ++i; BOOST_CHECK (i != subs.end ()); - 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 (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->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 (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)); + + { + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); + BOOST_CHECK_EQUAL (b.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_CLOSE (j->vertical_position.proportional.get(), 0.89, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + BOOST_CHECK_EQUAL (b.text, "HELLO"); + BOOST_CHECK_EQUAL (b.effect, sub::BORDER); + BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); + + ++j; + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->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_CLOSE (j->vertical_position.proportional.get(), 0.95, 1); + BOOST_CHECK_EQUAL (j->vertical_position.reference.get(), sub::TOP); + BOOST_CHECK_EQUAL (b.text, "WORLD"); + BOOST_CHECK_EQUAL (b.effect, sub::BORDER); + BOOST_CHECK (b.effect_colour.get() == sub::Colour (0, 0, 0)); + + ++j; + BOOST_CHECK (j == i->lines.end ()); + } } diff --git a/test/stl_binary_writer_test.cc b/test/stl_binary_writer_test.cc index fafa14f..c29bc9b 100644 --- a/test/stl_binary_writer_test.cc +++ b/test/stl_binary_writer_test.cc @@ -30,61 +30,61 @@ BOOST_AUTO_TEST_CASE (stl_binary_writer_test) { sub::Subtitle s; - s.vertical_position.line = 0; s.from.set_frame (sub::FrameTime (0, 0, 41, 9)); s.to.set_frame (sub::FrameTime (0, 0, 42, 21)); + sub::Line l; + l.vertical_position.line = 0; + sub::Block b; b.text = "This is a subtitle "; b.font = "Arial"; b.font_size.set_points (42); - s.blocks.push_back (b); - } - - { - sub::Subtitle s; - s.vertical_position.line = 1; - s.from.set_frame (sub::FrameTime (0, 0, 41, 9)); - s.to.set_frame (sub::FrameTime (0, 0, 42, 21)); + l.blocks.push_back (b); - sub::Block b; b.text = " and that's a line break"; b.font = "Arial"; b.font_size.set_points (42); - s.blocks.push_back (b); + l.blocks.push_back (b); + + s.lines.push_back (l); + subs.push_back (s); } { sub::Subtitle s; - s.vertical_position.line = 0; s.from.set_frame (sub::FrameTime (0, 1, 1, 1)); s.to.set_frame (sub::FrameTime (0, 1, 2, 10)); + sub::Line l; + l.vertical_position.line = 0; + sub::Block b; b.text = "This is some "; b.font = "Arial"; b.font_size.set_points (42); - s.blocks.push_back (b); + l.blocks.push_back (b); b.text = "bold"; b.bold = true; - s.blocks.push_back (b); + l.blocks.push_back (b); b.text = " and some "; b.bold = false; - s.blocks.push_back (b); + l.blocks.push_back (b); b.text = "bold italic"; b.bold = true; b.italic = true; - s.blocks.push_back (b); + l.blocks.push_back (b); b.text = " and some "; b.bold = false; b.italic = false; b.underline = true; - s.blocks.push_back (b); + l.blocks.push_back (b); + s.lines.push_back (l); subs.push_back (s); } diff --git a/test/stl_text_reader_test.cc b/test/stl_text_reader_test.cc index ddf754e..be58472 100644 --- a/test/stl_text_reader_test.cc +++ b/test/stl_text_reader_test.cc @@ -17,10 +17,11 @@ */ -#include <boost/test/unit_test.hpp> -#include <fstream> #include "stl_text_reader.h" #include "subtitle.h" +#include "collect.h" +#include <boost/test/unit_test.hpp> +#include <fstream> using std::list; using std::ifstream; @@ -31,110 +32,120 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) { ifstream file ("test/data/test_text.stl"); sub::STLTextReader reader (file); - list<sub::Subtitle> subs = reader.subtitles (); + list<sub::Subtitle> subs = sub::collect (reader.subtitles ()); list<sub::Subtitle>::iterator i = subs.begin (); + + /* First subtitle */ + BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->blocks.size(), 1); - sub::Block b = i->blocks.front (); + 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)); + + list<sub::Line>::iterator j = i->lines.begin (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + sub::Block b = j->blocks.front (); BOOST_CHECK_EQUAL (b.text, " This is a subtitle "); BOOST_CHECK_EQUAL (b.font, "Arial"); BOOST_CHECK_EQUAL (b.font_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_EQUAL (j->vertical_position.line.get(), 0); + ++j; - BOOST_CHECK (i != subs.end ()); - BOOST_CHECK_EQUAL (i->blocks.size(), 1); - b = i->blocks.front (); + BOOST_CHECK (j != i->lines.end ()); + BOOST_CHECK_EQUAL (j->blocks.size(), 1); + b = j->blocks.front (); BOOST_CHECK_EQUAL (b.text, " and that's a line break"); BOOST_CHECK_EQUAL (b.font, "Arial"); BOOST_CHECK_EQUAL (b.font_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)); + BOOST_CHECK_EQUAL (j->vertical_position.line.get(), 1); ++i; + + /* Second subtitle */ + BOOST_CHECK (i != subs.end ()); - 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)); - - 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_EQUAL (i->lines.size(), 1); + sub::Line l = i->lines.front (); + BOOST_CHECK_EQUAL (l.blocks.size(), 7); + BOOST_CHECK_EQUAL (l.vertical_position.line.get(), 0); - 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; + list<sub::Block>::iterator k = l.blocks.begin (); + + BOOST_CHECK (k != l.blocks.end ()); + BOOST_CHECK_EQUAL (k->text, " This is some "); + BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); + BOOST_CHECK_EQUAL (k->bold, false); + BOOST_CHECK_EQUAL (k->italic, false); + BOOST_CHECK_EQUAL (k->underline, false); + ++k; + + BOOST_CHECK (k != l.blocks.end ()); + BOOST_CHECK_EQUAL (k->text, "bold"); + BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); + BOOST_CHECK_EQUAL (k->bold, true); + BOOST_CHECK_EQUAL (k->italic, false); + BOOST_CHECK_EQUAL (k->underline, false); + ++k; + + BOOST_CHECK (k != l.blocks.end ()); + BOOST_CHECK_EQUAL (k->text, " and some "); + BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); + BOOST_CHECK_EQUAL (k->bold, false); + BOOST_CHECK_EQUAL (k->italic, false); + BOOST_CHECK_EQUAL (k->underline, false); + ++k; + + BOOST_CHECK (k != l.blocks.end ()); + BOOST_CHECK_EQUAL (k->text, "bold italic"); + BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); + BOOST_CHECK_EQUAL (k->bold, true); + BOOST_CHECK_EQUAL (k->italic, true); + BOOST_CHECK_EQUAL (k->underline, false); + ++k; + + BOOST_CHECK (k != l.blocks.end ()); + BOOST_CHECK_EQUAL (k->text, " and some "); + BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); + BOOST_CHECK_EQUAL (k->bold, false); + BOOST_CHECK_EQUAL (k->italic, false); + BOOST_CHECK_EQUAL (k->underline, false); + ++k; + + BOOST_CHECK (k != l.blocks.end ()); + BOOST_CHECK_EQUAL (k->text, "underlined"); + BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); + BOOST_CHECK_EQUAL (k->bold, false); + BOOST_CHECK_EQUAL (k->italic, false); + BOOST_CHECK_EQUAL (k->underline, true); + ++k; + + BOOST_CHECK (k != l.blocks.end ()); + BOOST_CHECK_EQUAL (k->text, "."); + BOOST_CHECK_EQUAL (k->font, "Arial"); + BOOST_CHECK_EQUAL (k->font_size.points().get(), 42); + BOOST_CHECK_EQUAL (k->bold, false); + BOOST_CHECK_EQUAL (k->italic, false); + BOOST_CHECK_EQUAL (k->underline, false); + ++k; - BOOST_CHECK (j == i->blocks.end ()); + BOOST_CHECK (k == l.blocks.end ()); } |
