summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-05-30 10:53:53 +0100
committerCarl Hetherington <cth@carlh.net>2014-05-30 10:53:53 +0100
commit38a5ff713757b9dc0cb67cb09613182c46dc9657 (patch)
treeef337ee8bcd315b85f3a50ce37f623f3b1c51d76 /test
parent97495d8cce58f0e5d9a43977698c60b8b66a83e3 (diff)
Split up into RawSubtitle and Subtitle, with collect(). Hopefully cleaner.
Diffstat (limited to 'test')
-rw-r--r--test/dcp_reader_test.cc837
-rw-r--r--test/stl_binary_writer_test.cc34
-rw-r--r--test/stl_text_reader_test.cc173
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 ());
}