From 25e3f39f817d191ccdab412dd53bef18686a6378 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Sat, 13 Nov 2021 12:31:28 +0100 Subject: [PATCH] test drivers improvements --- src/testmains/trhldata.cpp | 3 +-- src/testmains/trplaintorich.cpp | 25 +++++++++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/testmains/trhldata.cpp b/src/testmains/trhldata.cpp index 80f2127e..a1ad4c21 100644 --- a/src/testmains/trhldata.cpp +++ b/src/testmains/trhldata.cpp @@ -72,8 +72,7 @@ public: } cout << "}, "; } - cout << "} slack: " << tgp.slack << " kind " << - valToString(kindflags, tgp.kind) << endl; + cout << "} slack: " << tgp.slack << " kind " << valToString(kindflags, tgp.kind) << endl; } }; diff --git a/src/testmains/trplaintorich.cpp b/src/testmains/trplaintorich.cpp index 2a68b6c8..7b6a098f 100644 --- a/src/testmains/trplaintorich.cpp +++ b/src/testmains/trplaintorich.cpp @@ -36,6 +36,7 @@ #include #include "readfile.h" +#include "smallut.h" #include "log.h" using namespace std; @@ -50,7 +51,8 @@ static string usage = " plaintorich [opts] [filename]\n" " -H : input is html\n" " -L : set log level 0-6\n" - " -t term : add term to match. Must in index form (lowercase/unac)\n"; + " -t term : add term or group to match. Must in index form (lowercase/unac)\n" + " Omit filename to read from stdin\n"; ; static void @@ -106,7 +108,23 @@ int main(int argc, char **argv) case 't': { if (argc < 2) Usage(); HighlightData::TermGroup tg; - tg.term = *(++argv); argc--; + string in = *(++argv); argc--; + // Note that this is not exactly how the query processor would split the group, but + // it should be enough for generating groups for testing. + vector vterms; + stringToTokens(in, vterms); + if (vterms.size() == 1) { + cerr << "SINGLE TERM\n"; + tg.term = in; + hldata.ugroups.push_back(vector{in}); + } else { + for (const auto& term : vterms) { + tg.orgroups.push_back(vector{term}); + } + tg.slack = 0; + tg.kind = HighlightData::TermGroup::TGK_NEAR; + hldata.ugroups.push_back(vterms); + } hldata.index_term_groups.push_back(tg); goto b1; } @@ -139,10 +157,9 @@ int main(int argc, char **argv) if (ishtml) { hiliter.set_inputhtml(true); } + std::cout << "Using hldata: " << hldata.toString() << "\n"; std::list result; hiliter.plaintorich(inputdata, result, hldata); std::cout << *result.begin() << "\n"; return 0; } - -