2 Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 #include "dcp_reader.h"
21 #include <boost/test/unit_test.hpp>
27 using boost::shared_ptr;
29 /* Test reading of a DCP XML file */
30 BOOST_AUTO_TEST_CASE (dcp_reader_test1)
32 ifstream file ("test/data/test1.xml");
33 sub::DCPReader reader (file);
34 list<sub::Subtitle> subs = reader.subtitles ();
36 list<sub::Subtitle>::iterator i = subs.begin ();
38 BOOST_CHECK (i != subs.end ());
39 BOOST_CHECK_EQUAL (i->font, "Arial");
40 BOOST_CHECK_EQUAL (i->italic, false);
41 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
42 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
43 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 5, 198 * 4));
44 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 7, 115 * 4));
45 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.15, 1);
46 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
47 BOOST_CHECK_EQUAL (i->text, "My jacket was Idi Amin's");
48 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
49 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
50 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4));
51 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
54 BOOST_CHECK (i != subs.end ());
55 BOOST_CHECK_EQUAL (i->font, "Arial");
56 BOOST_CHECK_EQUAL (i->italic, true);
57 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
58 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
59 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 7, 177 * 4));
60 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 11, 31 * 4));
61 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.21, 1);
62 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
63 BOOST_CHECK_EQUAL (i->text, "My corset was H.M. The Queen's");
64 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
65 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
66 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4));
67 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
70 BOOST_CHECK (i != subs.end ());
71 BOOST_CHECK_EQUAL (i->font, "Arial");
72 BOOST_CHECK_EQUAL (i->italic, false);
73 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
74 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
75 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 7, 177 * 4));
76 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 11, 31 * 4));
77 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.15, 1);
78 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
79 BOOST_CHECK_EQUAL (i->text, "My large wonderbra");
80 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
81 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
82 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4));
83 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
86 BOOST_CHECK (i != subs.end ());
87 BOOST_CHECK_EQUAL (i->font, "Arial");
88 BOOST_CHECK_EQUAL (i->italic, false);
89 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
90 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
91 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 11, 94 * 4));
92 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 13, 63 * 4));
93 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.15, 1);
94 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
95 BOOST_CHECK_EQUAL (i->text, "Once belonged to the Shah");
96 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
97 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
98 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4));
99 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
102 BOOST_CHECK (i != subs.end ());
103 BOOST_CHECK_EQUAL (i->font, "Arial");
104 BOOST_CHECK_EQUAL (i->italic, false);
105 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
106 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (39) / (72 * 11));
107 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 13, 104 * 4));
108 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 15, 177 * 4));
109 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.15, 1);
110 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::BOTTOM);
111 BOOST_CHECK_EQUAL (i->text, "And these are Roy Hattersley's jeans");
112 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
113 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
114 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 4));
115 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 4));
118 /* And another one */
119 BOOST_AUTO_TEST_CASE (dcp_reader_test2)
121 ifstream file ("test/data/test2.xml");
122 sub::DCPReader reader (file);
123 list<sub::Subtitle> subs = reader.subtitles ();
125 list<sub::Subtitle>::iterator i = subs.begin ();
127 BOOST_CHECK (i != subs.end ());
128 BOOST_CHECK_EQUAL (i->font, "Arial");
129 BOOST_CHECK_EQUAL (i->italic, true);
130 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
131 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
132 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 41, 62 * 4));
133 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 43, 52 * 4));
134 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
135 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
136 BOOST_CHECK_EQUAL (i->text, "At afternoon tea with John Peel");
137 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
138 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
139 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
140 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
143 BOOST_CHECK (i != subs.end ());
144 BOOST_CHECK_EQUAL (i->font, "Arial");
145 BOOST_CHECK_EQUAL (i->italic, true);
146 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
147 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
148 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 41, 62 * 4));
149 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 43, 52 * 4));
150 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
151 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
152 BOOST_CHECK_EQUAL (i->text, "I enquired if his accent was real");
153 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
154 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
155 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
156 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
159 BOOST_CHECK (i != subs.end ());
160 BOOST_CHECK_EQUAL (i->font, "Arial");
161 BOOST_CHECK_EQUAL (i->italic, true);
162 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
163 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
164 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 50, 42 * 4));
165 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 52, 21 * 4));
166 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
167 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
168 BOOST_CHECK_EQUAL (i->text, "He said \"out of the house");
169 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
170 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
171 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
172 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
175 BOOST_CHECK (i != subs.end ());
176 BOOST_CHECK_EQUAL (i->font, "Arial");
177 BOOST_CHECK_EQUAL (i->italic, true);
178 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
179 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
180 BOOST_CHECK_EQUAL (i->from.metric, sub::MetricTime (0, 0, 50, 42 * 4));
181 BOOST_CHECK_EQUAL (i->to.metric, sub::MetricTime (0, 0, 52, 21 * 4));
182 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
183 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
184 BOOST_CHECK_EQUAL (i->text, "I'm incredibly scouse");
185 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
186 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
187 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
188 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
191 BOOST_CHECK (i != subs.end ());
192 BOOST_CHECK_EQUAL (i->font, "Arial");
193 BOOST_CHECK_EQUAL (i->italic, true);
194 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
195 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
196 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 2, 208 * 4));
197 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 04, 10 * 4));
198 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
199 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
200 BOOST_CHECK_EQUAL (i->text, "At home it depends how I feel.\"");
201 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
202 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
203 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
204 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
207 BOOST_CHECK (i != subs.end ());
208 BOOST_CHECK_EQUAL (i->font, "Arial");
209 BOOST_CHECK_EQUAL (i->italic, true);
210 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
211 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
212 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 2, 208 * 4));
213 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 4, 10 * 4));
214 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
215 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
216 BOOST_CHECK_EQUAL (i->text, "I spent a long weekend in Brighton");
217 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
218 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
219 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
220 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
223 BOOST_CHECK (i != subs.end ());
224 BOOST_CHECK_EQUAL (i->font, "Arial");
225 BOOST_CHECK_EQUAL (i->italic, true);
226 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
227 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
228 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 15, 42 * 4));
229 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 16, 42 * 4));
230 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
231 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
232 BOOST_CHECK_EQUAL (i->text, "With the legendary Miss Enid Blyton");
233 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
234 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
235 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
236 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
239 BOOST_CHECK (i != subs.end ());
240 BOOST_CHECK_EQUAL (i->font, "Arial");
241 BOOST_CHECK_EQUAL (i->italic, true);
242 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
243 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
244 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 15, 42 * 4));
245 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 16, 42 * 4));
246 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
247 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
248 BOOST_CHECK_EQUAL (i->text, "She said \"you be Noddy");
249 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
250 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
251 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
252 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
255 BOOST_CHECK (i != subs.end ());
256 BOOST_CHECK_EQUAL (i->font, "Arial");
257 BOOST_CHECK_EQUAL (i->italic, true);
258 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
259 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
260 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 20, 219 * 4));
261 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 22, 73 * 4));
262 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
263 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
264 BOOST_CHECK_EQUAL (i->text, "and I'll show you my body\"");
265 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
266 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
267 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
268 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
271 BOOST_CHECK (i != subs.end ());
272 BOOST_CHECK_EQUAL (i->font, "Arial");
273 BOOST_CHECK_EQUAL (i->italic, true);
274 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
275 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
276 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 20, 219 * 4));
277 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 22, 73 * 4));
278 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
279 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
280 BOOST_CHECK_EQUAL (i->text, "But Big Ears kept turning the light on.");
281 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
282 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
283 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
284 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
287 BOOST_CHECK (i != subs.end ());
288 BOOST_CHECK_EQUAL (i->font, "Arial");
289 BOOST_CHECK_EQUAL (i->italic, true);
290 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
291 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
292 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 27, 115 * 4));
293 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 28, 208 * 4));
294 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
295 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
296 BOOST_CHECK_EQUAL (i->text, "That curious creature the Sphinx");
297 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
298 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
299 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
300 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
303 BOOST_CHECK (i != subs.end ());
304 BOOST_CHECK_EQUAL (i->font, "Arial");
305 BOOST_CHECK_EQUAL (i->italic, true);
306 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
307 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
308 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 27, 115 * 4));
309 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 28, 208 * 4));
310 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
311 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
312 BOOST_CHECK_EQUAL (i->text, "Is smarter than anyone thinks");
313 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
314 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
315 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
316 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
319 BOOST_CHECK (i != subs.end ());
320 BOOST_CHECK_EQUAL (i->font, "Arial");
321 BOOST_CHECK_EQUAL (i->italic, false);
322 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
323 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
324 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 42, 229 * 4));
325 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 45, 62 * 4));
326 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
327 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
328 BOOST_CHECK_EQUAL (i->text, "It sits there and smirks");
329 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
330 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
331 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
332 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
335 BOOST_CHECK (i != subs.end ());
336 BOOST_CHECK_EQUAL (i->font, "Arial");
337 BOOST_CHECK_EQUAL (i->italic, false);
338 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
339 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
340 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 42, 229 * 4));
341 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 45, 62 * 4));
342 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
343 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
344 BOOST_CHECK_EQUAL (i->text, "And you don't think it works");
345 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
346 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
347 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
348 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
351 BOOST_CHECK (i != subs.end ());
352 BOOST_CHECK_EQUAL (i->font, "Arial");
353 BOOST_CHECK_EQUAL (i->italic, false);
354 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
355 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
356 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 45, 146 * 4));
357 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 47, 94 * 4));
358 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
359 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
360 BOOST_CHECK_EQUAL (i->text, "Then when you're not looking, it winks.");
361 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
362 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
363 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
364 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
367 BOOST_CHECK (i != subs.end ());
368 BOOST_CHECK_EQUAL (i->font, "Arial");
369 BOOST_CHECK_EQUAL (i->italic, false);
370 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
371 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
372 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 45, 146 * 4));
373 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 47, 94 * 4));
374 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
375 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
376 BOOST_CHECK_EQUAL (i->text, "When it snows you will find Sister Sledge");
377 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
378 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
379 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
380 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
383 BOOST_CHECK (i != subs.end ());
384 BOOST_CHECK_EQUAL (i->font, "Arial");
385 BOOST_CHECK_EQUAL (i->italic, false);
386 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
387 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
388 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 47, 146 * 4));
389 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 48, 167 * 4));
390 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
391 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
392 BOOST_CHECK_EQUAL (i->text, "Out mooning, at night, on the ledge");
393 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
394 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
395 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
396 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
399 BOOST_CHECK (i != subs.end ());
400 BOOST_CHECK_EQUAL (i->font, "Arial");
401 BOOST_CHECK_EQUAL (i->italic, false);
402 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
403 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
404 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 47, 146 * 4));
405 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 48, 167 * 4));
406 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
407 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
408 BOOST_CHECK_EQUAL (i->text, "One storey down");
409 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
410 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
411 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
412 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
415 BOOST_CHECK (i != subs.end ());
416 BOOST_CHECK_EQUAL (i->font, "Arial");
417 BOOST_CHECK_EQUAL (i->italic, false);
418 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
419 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
420 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 53, 21 * 4));
421 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 56, 10 * 4));
422 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
423 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
424 BOOST_CHECK_EQUAL (i->text, "Is the maestro, James Brown");
425 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
426 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
427 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
428 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
431 BOOST_CHECK (i != subs.end ());
432 BOOST_CHECK_EQUAL (i->font, "Arial");
433 BOOST_CHECK_EQUAL (i->italic, false);
434 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
435 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
436 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 1, 53, 21 * 4));
437 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 1, 56, 10 * 4));
438 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
439 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
440 BOOST_CHECK_EQUAL (i->text, "Displaying his meat and two veg.");
441 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
442 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
443 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
444 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
447 BOOST_CHECK (i != subs.end ());
448 BOOST_CHECK_EQUAL (i->font, "Arial");
449 BOOST_CHECK_EQUAL (i->italic, true);
450 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
451 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
452 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 2, 5, 208 * 4));
453 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 2, 7, 31 * 4));
454 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.89, 1);
455 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
456 BOOST_CHECK_EQUAL (i->text, "HELLO");
457 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
458 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
459 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
460 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));
463 BOOST_CHECK (i != subs.end ());
464 BOOST_CHECK_EQUAL (i->font, "Arial");
465 BOOST_CHECK_EQUAL (i->italic, true);
466 BOOST_CHECK (i->colour == sub::Colour (1, 1, 1));
467 BOOST_CHECK_EQUAL (i->font_size.proportional.get(), float (42) / (72 * 11));
468 BOOST_CHECK_EQUAL (i->from.metric.get(), sub::MetricTime (0, 2, 5, 208 * 4));
469 BOOST_CHECK_EQUAL (i->to.metric.get(), sub::MetricTime (0, 2, 7, 31 * 4));
470 BOOST_CHECK_CLOSE (i->vertical_position.proportional.get(), 0.95, 1);
471 BOOST_CHECK_EQUAL (i->vertical_position.reference.get(), sub::TOP);
472 BOOST_CHECK_EQUAL (i->text, "WORLD");
473 BOOST_CHECK_EQUAL (i->effect, sub::BORDER);
474 BOOST_CHECK (i->effect_colour.get() == sub::Colour (0, 0, 0));
475 BOOST_CHECK_EQUAL (i->fade_up.get(), sub::MetricTime (0, 0, 0, 0));
476 BOOST_CHECK_EQUAL (i->fade_down.get(), sub::MetricTime (0, 0, 0, 0));