static int test_xprintf(struct test_printf_info *tpi, const char *expected, int expectedLen, const char *format, va_list ap) { char *resultString; int resultLen = vasprintf(&resultString, format, ap); int result = compareResult(tpi, expected, expectedLen, format, resultString, resultLen); free(resultString); return result; }
static bool compareResults( const std::vector<strus::analyzer::PatternMatcherResult>& results, const std::vector<strus::analyzer::PatternMatcherResult>& expectedResults) { if (results.size() != expectedResults.size()) return false; std::vector<strus::analyzer::PatternMatcherResult>::const_iterator ri = results.begin(), re = results.end(); std::vector<strus::analyzer::PatternMatcherResult>::const_iterator xi = expectedResults.begin(), xe = expectedResults.end(); for (; xi != xe && ri != re; ++ri,++xi) { if (!compareResult( *ri, *xi)) return false; } return true; }
static std::vector<strus::analyzer::PatternMatcherResult> eliminateDuplicates( const std::vector<strus::analyzer::PatternMatcherResult>& results) { std::vector<strus::analyzer::PatternMatcherResult> rt; std::vector<strus::analyzer::PatternMatcherResult>::const_iterator ri = results.begin(), re = results.end(); const strus::analyzer::PatternMatcherResult* prev = 0; for (; ri != re; ++ri) { if (!prev || !compareResult( *ri, *prev)) rt.push_back( *ri); prev = &*ri; } return rt; }