#include <iostream>
#include <cstdio>
-using std::list;
using std::cerr;
using std::vector;
using std::fabs;
FILE* f = fopen ("test/data/test.srt", "r");
sub::SubripReader reader (f);
fclose (f);
- list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ());
+ auto subs = sub::collect<std::vector<sub::Subtitle>> (reader.subtitles());
- list<sub::Subtitle>::iterator i = subs.begin ();
+ auto i = subs.begin ();
/* First subtitle */
BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 41, 90));
BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 42, 210));
- list<sub::Line>::iterator j = i->lines.begin ();
+ auto j = i->lines.begin();
BOOST_CHECK (j != i->lines.end ());
BOOST_CHECK_EQUAL (j->blocks.size(), 1);
- sub::Block b = j->blocks.front ();
+ auto b = j->blocks.front();
BOOST_CHECK_EQUAL (b.text, "This is a subtitle");
/* No font is specified by subrip, so none should be seen here */
BOOST_CHECK (!b.font);
BOOST_CHECK_EQUAL (l.vertical_position.line.get(), 0);
BOOST_CHECK_EQUAL (l.vertical_position.reference.get(), sub::TOP_OF_SUBTITLE);
- list<sub::Block>::iterator k = l.blocks.begin ();
+ auto k = l.blocks.begin();
BOOST_CHECK (k != l.blocks.end ());
BOOST_CHECK_EQUAL (k->text, "This is some ");
FILE* f = fopen ("test/data/test2.srt", "r");
sub::SubripReader reader (f);
fclose (f);
- list<sub::Subtitle> subs = sub::collect<list<sub::Subtitle> > (reader.subtitles ());
+ auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles());
- list<sub::Subtitle>::const_iterator i = subs.begin();
+ auto i = subs.begin();
BOOST_CHECK (i != subs.end ());
BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 49, 200));
rs = sub::RawSubtitle();
r.convert_line ("<b>This is <i>nesting</i> of subtitles</b>", rs);
BOOST_CHECK_EQUAL (r._subs.size(), 3);
- list<sub::RawSubtitle>::iterator i = r._subs.begin ();
+ auto i = r._subs.begin();
+ BOOST_CHECK_EQUAL (i->text, "This is ");
+ BOOST_CHECK_EQUAL (i->bold, true);
+ BOOST_CHECK_EQUAL (i->italic, false);
+ ++i;
+ BOOST_CHECK_EQUAL (i->text, "nesting");
+ BOOST_CHECK_EQUAL (i->bold, true);
+ BOOST_CHECK_EQUAL (i->italic, true);
+ ++i;
+ BOOST_CHECK_EQUAL (i->text, " of subtitles");
+ BOOST_CHECK_EQUAL (i->bold, true);
+ BOOST_CHECK_EQUAL (i->italic, false);
+ ++i;
+ r._subs.clear ();
+
+ rs = sub::RawSubtitle();
+ r.convert_line ("<B>This is <I>nesting</I> of subtitles</B>", rs);
+ BOOST_CHECK_EQUAL (r._subs.size(), 3);
+ i = r._subs.begin();
BOOST_CHECK_EQUAL (i->text, "This is ");
BOOST_CHECK_EQUAL (i->bold, true);
BOOST_CHECK_EQUAL (i->italic, false);
BOOST_CHECK (fabs (i->colour.g) < 0.01);
BOOST_CHECK_CLOSE (i->colour.b, 1, 0.1);
r._subs.clear ();
+
+ rs = sub::RawSubtitle();
+ r.convert_line ("<< angle brackets but no HTML >>", rs);
+ BOOST_CHECK_EQUAL (r._subs.size(), 1);
+ i = r._subs.begin ();
+ BOOST_CHECK_EQUAL (i->text, "<< angle brackets but no HTML >>");
+ r._subs.clear();
}
/** Test SubripReader::convert_time */
{
test ("sintel_en.srt");
test ("sintel_fr.srt");
- test ("Fight.Club.1999.720p.BRRip.x264-x0r.srt");
+ test ("FC.srt");
test ("EU13.srt");
- test ("Subtitulos_HURTO_eng.srt");
- test ("SWING_PARA_SORDOS_CASTELLANO_24.srt");
+ test ("Subtitulos_H_eng.srt");
+ test ("SWING.srt");
test_throw ("subtitulo1.srt");
}
FILE* f = fopen (p.string().c_str(), "r");
sub::SubripReader reader (f);
fclose (f);
- list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ());
+ auto subs = sub::collect<std::vector<sub::Subtitle>> (reader.subtitles());
- list<sub::Subtitle>::iterator i = subs.begin ();
- list<sub::Line>::iterator j;
- list<sub::Block>::iterator k;
+ auto i = subs.begin ();
+ vector<sub::Line>::iterator j;
+ vector<sub::Block>::iterator k;
BOOST_REQUIRE (i != subs.end ());
FILE* f = fopen (p.string().c_str(), "r");
sub::SubripReader reader (f);
fclose (f);
- list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> >(reader.subtitles());
+ auto subs = sub::collect<std::vector<sub::Subtitle>>(reader.subtitles());
- list<sub::Subtitle>::iterator i = subs.begin ();
+ auto i = subs.begin();
std::cout << i->lines.front().blocks.front().text << "\n";
std::string const t = i->lines.front().blocks.front().text;