26 class QuickTest : 
public testing::Test {
 
   28   virtual void SetUp() { start_time_ = time(
nullptr); }
 
   29   virtual void TearDown() {
 
   30     const time_t end_time = time(
nullptr);
 
   31     EXPECT_TRUE(end_time - start_time_ <= 25)
 
   32         << 
"The test took too long - " 
   33         << ::testing::PrintToString(end_time - start_time_);
 
   38 void LangLoader(
const char* lang, 
const char* tessdatadir) {
 
   40   ASSERT_FALSE(api->Init(tessdatadir, lang))
 
   41       << 
"Could not initialize tesseract for $lang.";
 
   47 class LoadLanguage : 
public QuickTest,
 
   48                      public ::testing::WithParamInterface<const char*> {};
 
   50 TEST_P(LoadLanguage, afr) { LangLoader(
"afr", GetParam()); }
 
   51 TEST_P(LoadLanguage, amh) { LangLoader(
"amh", GetParam()); }
 
   52 TEST_P(LoadLanguage, ara) { LangLoader(
"ara", GetParam()); }
 
   53 TEST_P(LoadLanguage, 
asm) { LangLoader(
"asm", GetParam()); }
 
   54 TEST_P(LoadLanguage, aze) { LangLoader(
"aze", GetParam()); }
 
   55 TEST_P(LoadLanguage, aze_cyrl) { LangLoader(
"aze_cyrl", GetParam()); }
 
   56 TEST_P(LoadLanguage, bel) { LangLoader(
"bel", GetParam()); }
 
   57 TEST_P(LoadLanguage, ben) { LangLoader(
"ben", GetParam()); }
 
   58 TEST_P(LoadLanguage, bod) { LangLoader(
"bod", GetParam()); }
 
   59 TEST_P(LoadLanguage, bos) { LangLoader(
"bos", GetParam()); }
 
   60 TEST_P(LoadLanguage, bre) { LangLoader(
"bre", GetParam()); }
 
   61 TEST_P(LoadLanguage, bul) { LangLoader(
"bul", GetParam()); }
 
   62 TEST_P(LoadLanguage, cat) { LangLoader(
"cat", GetParam()); }
 
   63 TEST_P(LoadLanguage, ceb) { LangLoader(
"ceb", GetParam()); }
 
   64 TEST_P(LoadLanguage, ces) { LangLoader(
"ces", GetParam()); }
 
   65 TEST_P(LoadLanguage, chi_sim) { LangLoader(
"chi_sim", GetParam()); }
 
   66 TEST_P(LoadLanguage, chi_sim_vert) { LangLoader(
"chi_sim_vert", GetParam()); }
 
   67 TEST_P(LoadLanguage, chi_tra) { LangLoader(
"chi_tra", GetParam()); }
 
   68 TEST_P(LoadLanguage, chi_tra_vert) { LangLoader(
"chi_tra_vert", GetParam()); }
 
   69 TEST_P(LoadLanguage, chr) { LangLoader(
"chr", GetParam()); }
 
   70 TEST_P(LoadLanguage, cos) { LangLoader(
"cos", GetParam()); }
 
   71 TEST_P(LoadLanguage, cym) { LangLoader(
"cym", GetParam()); }
 
   72 TEST_P(LoadLanguage, dan) { LangLoader(
"dan", GetParam()); }
 
   73 TEST_P(LoadLanguage, deu) { LangLoader(
"deu", GetParam()); }
 
   74 TEST_P(LoadLanguage, div) { LangLoader(
"div", GetParam()); }
 
   75 TEST_P(LoadLanguage, dzo) { LangLoader(
"dzo", GetParam()); }
 
   76 TEST_P(LoadLanguage, ell) { LangLoader(
"ell", GetParam()); }
 
   77 TEST_P(LoadLanguage, eng) { LangLoader(
"eng", GetParam()); }
 
   78 TEST_P(LoadLanguage, enm) { LangLoader(
"enm", GetParam()); }
 
   79 TEST_P(LoadLanguage, epo) { LangLoader(
"epo", GetParam()); }
 
   80 TEST_P(LoadLanguage, est) { LangLoader(
"est", GetParam()); }
 
   81 TEST_P(LoadLanguage, eus) { LangLoader(
"eus", GetParam()); }
 
   82 TEST_P(LoadLanguage, fao) { LangLoader(
"fao", GetParam()); }
 
   83 TEST_P(LoadLanguage, fas) { LangLoader(
"fas", GetParam()); }
 
   84 TEST_P(LoadLanguage, fil) { LangLoader(
"fil", GetParam()); }
 
   85 TEST_P(LoadLanguage, fin) { LangLoader(
"fin", GetParam()); }
 
   86 TEST_P(LoadLanguage, fra) { LangLoader(
"fra", GetParam()); }
 
   87 TEST_P(LoadLanguage, frk) { LangLoader(
"frk", GetParam()); }
 
   88 TEST_P(LoadLanguage, frm) { LangLoader(
"frm", GetParam()); }
 
   89 TEST_P(LoadLanguage, fry) { LangLoader(
"fry", GetParam()); }
 
   90 TEST_P(LoadLanguage, gla) { LangLoader(
"gla", GetParam()); }
 
   91 TEST_P(LoadLanguage, gle) { LangLoader(
"gle", GetParam()); }
 
   92 TEST_P(LoadLanguage, glg) { LangLoader(
"glg", GetParam()); }
 
   93 TEST_P(LoadLanguage, grc) { LangLoader(
"grc", GetParam()); }
 
   94 TEST_P(LoadLanguage, guj) { LangLoader(
"guj", GetParam()); }
 
   95 TEST_P(LoadLanguage, hat) { LangLoader(
"hat", GetParam()); }
 
   96 TEST_P(LoadLanguage, heb) { LangLoader(
"heb", GetParam()); }
 
   97 TEST_P(LoadLanguage, hin) { LangLoader(
"hin", GetParam()); }
 
   98 TEST_P(LoadLanguage, hrv) { LangLoader(
"hrv", GetParam()); }
 
   99 TEST_P(LoadLanguage, hun) { LangLoader(
"hun", GetParam()); }
 
  100 TEST_P(LoadLanguage, hye) { LangLoader(
"hye", GetParam()); }
 
  101 TEST_P(LoadLanguage, iku) { LangLoader(
"iku", GetParam()); }
 
  102 TEST_P(LoadLanguage, ind) { LangLoader(
"ind", GetParam()); }
 
  103 TEST_P(LoadLanguage, isl) { LangLoader(
"isl", GetParam()); }
 
  104 TEST_P(LoadLanguage, ita) { LangLoader(
"ita", GetParam()); }
 
  105 TEST_P(LoadLanguage, ita_old) { LangLoader(
"ita_old", GetParam()); }
 
  106 TEST_P(LoadLanguage, jav) { LangLoader(
"jav", GetParam()); }
 
  107 TEST_P(LoadLanguage, jpn) { LangLoader(
"jpn", GetParam()); }
 
  108 TEST_P(LoadLanguage, jpn_vert) { LangLoader(
"jpn_vert", GetParam()); }
 
  109 TEST_P(LoadLanguage, kan) { LangLoader(
"kan", GetParam()); }
 
  110 TEST_P(LoadLanguage, kat) { LangLoader(
"kat", GetParam()); }
 
  111 TEST_P(LoadLanguage, kat_old) { LangLoader(
"kat_old", GetParam()); }
 
  112 TEST_P(LoadLanguage, kaz) { LangLoader(
"kaz", GetParam()); }
 
  113 TEST_P(LoadLanguage, khm) { LangLoader(
"khm", GetParam()); }
 
  114 TEST_P(LoadLanguage, kir) { LangLoader(
"kir", GetParam()); }
 
  116 TEST_P(LoadLanguage, kor) { LangLoader(
"kor", GetParam()); }
 
  117 TEST_P(LoadLanguage, kor_vert) { LangLoader(
"kor_vert", GetParam()); }
 
  118 TEST_P(LoadLanguage, lao) { LangLoader(
"lao", GetParam()); }
 
  119 TEST_P(LoadLanguage, lat) { LangLoader(
"lat", GetParam()); }
 
  120 TEST_P(LoadLanguage, lav) { LangLoader(
"lav", GetParam()); }
 
  121 TEST_P(LoadLanguage, lit) { LangLoader(
"lit", GetParam()); }
 
  122 TEST_P(LoadLanguage, ltz) { LangLoader(
"ltz", GetParam()); }
 
  123 TEST_P(LoadLanguage, mal) { LangLoader(
"mal", GetParam()); }
 
  124 TEST_P(LoadLanguage, mar) { LangLoader(
"mar", GetParam()); }
 
  125 TEST_P(LoadLanguage, mkd) { LangLoader(
"mkd", GetParam()); }
 
  126 TEST_P(LoadLanguage, mlt) { LangLoader(
"mlt", GetParam()); }
 
  127 TEST_P(LoadLanguage, mon) { LangLoader(
"mon", GetParam()); }
 
  128 TEST_P(LoadLanguage, mri) { LangLoader(
"mri", GetParam()); }
 
  129 TEST_P(LoadLanguage, msa) { LangLoader(
"msa", GetParam()); }
 
  130 TEST_P(LoadLanguage, mya) { LangLoader(
"mya", GetParam()); }
 
  131 TEST_P(LoadLanguage, nep) { LangLoader(
"nep", GetParam()); }
 
  132 TEST_P(LoadLanguage, nld) { LangLoader(
"nld", GetParam()); }
 
  133 TEST_P(LoadLanguage, nor) { LangLoader(
"nor", GetParam()); }
 
  134 TEST_P(LoadLanguage, oci) { LangLoader(
"oci", GetParam()); }
 
  135 TEST_P(LoadLanguage, ori) { LangLoader(
"ori", GetParam()); }
 
  136 TEST_P(LoadLanguage, osd) { LangLoader(
"osd", GetParam()); }
 
  137 TEST_P(LoadLanguage, pan) { LangLoader(
"pan", GetParam()); }
 
  138 TEST_P(LoadLanguage, pol) { LangLoader(
"pol", GetParam()); }
 
  139 TEST_P(LoadLanguage, por) { LangLoader(
"por", GetParam()); }
 
  140 TEST_P(LoadLanguage, pus) { LangLoader(
"pus", GetParam()); }
 
  141 TEST_P(LoadLanguage, que) { LangLoader(
"que", GetParam()); }
 
  142 TEST_P(LoadLanguage, ron) { LangLoader(
"ron", GetParam()); }
 
  143 TEST_P(LoadLanguage, rus) { LangLoader(
"rus", GetParam()); }
 
  144 TEST_P(LoadLanguage, san) { LangLoader(
"san", GetParam()); }
 
  145 TEST_P(LoadLanguage, sin) { LangLoader(
"sin", GetParam()); }
 
  146 TEST_P(LoadLanguage, slk) { LangLoader(
"slk", GetParam()); }
 
  147 TEST_P(LoadLanguage, slv) { LangLoader(
"slv", GetParam()); }
 
  148 TEST_P(LoadLanguage, snd) { LangLoader(
"snd", GetParam()); }
 
  149 TEST_P(LoadLanguage, spa) { LangLoader(
"spa", GetParam()); }
 
  150 TEST_P(LoadLanguage, spa_old) { LangLoader(
"spa_old", GetParam()); }
 
  151 TEST_P(LoadLanguage, sqi) { LangLoader(
"sqi", GetParam()); }
 
  152 TEST_P(LoadLanguage, srp) { LangLoader(
"srp", GetParam()); }
 
  153 TEST_P(LoadLanguage, srp_latn) { LangLoader(
"srp_latn", GetParam()); }
 
  154 TEST_P(LoadLanguage, sun) { LangLoader(
"sun", GetParam()); }
 
  155 TEST_P(LoadLanguage, swa) { LangLoader(
"swa", GetParam()); }
 
  156 TEST_P(LoadLanguage, swe) { LangLoader(
"swe", GetParam()); }
 
  157 TEST_P(LoadLanguage, syr) { LangLoader(
"syr", GetParam()); }
 
  158 TEST_P(LoadLanguage, tam) { LangLoader(
"tam", GetParam()); }
 
  159 TEST_P(LoadLanguage, tat) { LangLoader(
"tat", GetParam()); }
 
  160 TEST_P(LoadLanguage, tel) { LangLoader(
"tel", GetParam()); }
 
  161 TEST_P(LoadLanguage, tgk) { LangLoader(
"tgk", GetParam()); }
 
  162 TEST_P(LoadLanguage, tha) { LangLoader(
"tha", GetParam()); }
 
  163 TEST_P(LoadLanguage, tir) { LangLoader(
"tir", GetParam()); }
 
  164 TEST_P(LoadLanguage, ton) { LangLoader(
"ton", GetParam()); }
 
  165 TEST_P(LoadLanguage, tur) { LangLoader(
"tur", GetParam()); }
 
  166 TEST_P(LoadLanguage, uig) { LangLoader(
"uig", GetParam()); }
 
  167 TEST_P(LoadLanguage, ukr) { LangLoader(
"ukr", GetParam()); }
 
  168 TEST_P(LoadLanguage, urd) { LangLoader(
"urd", GetParam()); }
 
  169 TEST_P(LoadLanguage, uzb) { LangLoader(
"uzb", GetParam()); }
 
  170 TEST_P(LoadLanguage, uzb_cyrl) { LangLoader(
"uzb_cyrl", GetParam()); }
 
  171 TEST_P(LoadLanguage, vie) { LangLoader(
"vie", GetParam()); }
 
  172 TEST_P(LoadLanguage, yid) { LangLoader(
"yid", GetParam()); }
 
  173 TEST_P(LoadLanguage, yor) { LangLoader(
"yor", GetParam()); }
 
  175 INSTANTIATE_TEST_CASE_P(DISABLED_Tessdata_fast, LoadLanguage,
 
  176                         ::testing::Values(TESSDATA_DIR 
"_fast"));
 
  177 INSTANTIATE_TEST_CASE_P(DISABLED_Tessdata_best, LoadLanguage,
 
  178                         ::testing::Values(TESSDATA_DIR 
"_best"));
 
  179 INSTANTIATE_TEST_CASE_P(DISABLED_Tessdata, LoadLanguage,
 
  180                         ::testing::Values(TESSDATA_DIR));
 
  184 class LoadScript : 
public QuickTest,
 
  185                    public ::testing::WithParamInterface<const char*> {};
 
  187 TEST_P(LoadScript, Arabic) { LangLoader(
"script/Arabic", GetParam()); }
 
  188 TEST_P(LoadScript, Armenian) { LangLoader(
"script/Armenian", GetParam()); }
 
  189 TEST_P(LoadScript, Bengali) { LangLoader(
"script/Bengali", GetParam()); }
 
  190 TEST_P(LoadScript, Canadian_Aboriginal) {
 
  191   LangLoader(
"script/Canadian_Aboriginal", GetParam());
 
  193 TEST_P(LoadScript, Cherokee) { LangLoader(
"script/Cherokee", GetParam()); }
 
  194 TEST_P(LoadScript, Cyrillic) { LangLoader(
"script/Cyrillic", GetParam()); }
 
  195 TEST_P(LoadScript, Devanagari) { LangLoader(
"script/Devanagari", GetParam()); }
 
  196 TEST_P(LoadScript, Ethiopic) { LangLoader(
"script/Ethiopic", GetParam()); }
 
  197 TEST_P(LoadScript, Fraktur) { LangLoader(
"script/Fraktur", GetParam()); }
 
  198 TEST_P(LoadScript, Georgian) { LangLoader(
"script/Georgian", GetParam()); }
 
  199 TEST_P(LoadScript, Greek) { LangLoader(
"script/Greek", GetParam()); }
 
  200 TEST_P(LoadScript, Gujarati) { LangLoader(
"script/Gujarati", GetParam()); }
 
  201 TEST_P(LoadScript, Gurmukhi) { LangLoader(
"script/Gurmukhi", GetParam()); }
 
  202 TEST_P(LoadScript, HanS) { LangLoader(
"script/HanS", GetParam()); }
 
  203 TEST_P(LoadScript, HanS_vert) { LangLoader(
"script/HanS_vert", GetParam()); }
 
  204 TEST_P(LoadScript, HanT) { LangLoader(
"script/HanT", GetParam()); }
 
  205 TEST_P(LoadScript, HanT_vert) { LangLoader(
"script/HanT_vert", GetParam()); }
 
  206 TEST_P(LoadScript, Hangul) { LangLoader(
"script/Hangul", GetParam()); }
 
  207 TEST_P(LoadScript, Hangul_vert) {
 
  208   LangLoader(
"script/Hangul_vert", GetParam());
 
  210 TEST_P(LoadScript, Hebrew) { LangLoader(
"script/Hebrew", GetParam()); }
 
  211 TEST_P(LoadScript, Japanese) { LangLoader(
"script/Japanese", GetParam()); }
 
  212 TEST_P(LoadScript, Japanese_vert) {
 
  213   LangLoader(
"script/Japanese_vert", GetParam());
 
  215 TEST_P(LoadScript, Kannada) { LangLoader(
"script/Kannada", GetParam()); }
 
  216 TEST_P(LoadScript, Khmer) { LangLoader(
"script/Khmer", GetParam()); }
 
  217 TEST_P(LoadScript, Lao) { LangLoader(
"script/Lao", GetParam()); }
 
  218 TEST_P(LoadScript, Latin) { LangLoader(
"script/Latin", GetParam()); }
 
  219 TEST_P(LoadScript, Malayalam) { LangLoader(
"script/Malayalam", GetParam()); }
 
  220 TEST_P(LoadScript, Myanmar) { LangLoader(
"script/Myanmar", GetParam()); }
 
  221 TEST_P(LoadScript, Oriya) { LangLoader(
"script/Oriya", GetParam()); }
 
  222 TEST_P(LoadScript, Sinhala) { LangLoader(
"script/Sinhala", GetParam()); }
 
  223 TEST_P(LoadScript, Syriac) { LangLoader(
"script/Syriac", GetParam()); }
 
  224 TEST_P(LoadScript, Tamil) { LangLoader(
"script/Tamil", GetParam()); }
 
  225 TEST_P(LoadScript, Telugu) { LangLoader(
"script/Telugu", GetParam()); }
 
  226 TEST_P(LoadScript, Thaana) { LangLoader(
"script/Thaana", GetParam()); }
 
  227 TEST_P(LoadScript, Thai) { LangLoader(
"script/Thai", GetParam()); }
 
  228 TEST_P(LoadScript, Tibetan) { LangLoader(
"script/Tibetan", GetParam()); }
 
  229 TEST_P(LoadScript, Vietnamese) { LangLoader(
"script/Vietnamese", GetParam()); }
 
  231 INSTANTIATE_TEST_CASE_P(DISABLED_Tessdata_fast, LoadScript,
 
  232                         ::testing::Values(TESSDATA_DIR 
"_fast"));
 
  233 INSTANTIATE_TEST_CASE_P(DISABLED_Tessdata_best, LoadScript,
 
  234                         ::testing::Values(TESSDATA_DIR 
"_best"));
 
  235 INSTANTIATE_TEST_CASE_P(DISABLED_Tessdata, LoadScript,
 
  236                         ::testing::Values(TESSDATA_DIR));
 
  238 class LoadLang : 
public QuickTest {};
 
  242 TEST_F(LoadLang, engFast) { LangLoader(
"eng", TESSDATA_DIR 
"_fast"); }
 
  243 TEST_F(LoadLang, engBest) { LangLoader(
"eng", TESSDATA_DIR 
"_best"); }
 
  244 TEST_F(LoadLang, engBestInt) { LangLoader(
"eng", TESSDATA_DIR); }
 
  247 TEST_F(LoadLang, kmrFast) { LangLoader(
"kmr", TESSDATA_DIR 
"_fast"); }
 
  248 TEST_F(LoadLang, kmrBest) { LangLoader(
"kmr", TESSDATA_DIR 
"_best"); }