inline void onFindDoubleIndex(LocalDataHolder<TMatch, TGlobalHolder, TScoreExtension> & lH, TFinder const & finder) { auto qryOccs = getOccurrences(back(finder.patternStack)); auto subjOccs = getOccurrences(back(finder.textStack)); lH.stats.hitsAfterSeeding += length(qryOccs) * length(subjOccs); for (unsigned i = 0; i < length(qryOccs); ++i) for (unsigned j = 0; j < length(subjOccs); ++j) onFindImpl(lH, getSeqNo(qryOccs[i]), subjOccs[j]); }
inline void onFindSingleIndex(LocalDataHolder<TMatch, TGlobalHolder, TScoreExtension> & lH, TSeedListIterator const & seedIt, TIndexIterator const & indexIt) { auto qryOcc = position(seedIt); auto subjOccs = getOccurrences(indexIt); lH.stats.hitsAfterSeeding += length(subjOccs); for (unsigned j = 0; j < length(subjOccs); ++j) onFindImpl(lH, qryOcc, subjOccs[j]); }
void TestRecurrentTransaction::testGetOccurrences() { QFETCH(int, occurrences); auto amount = .45; auto account = std::make_shared<PublicAccount>("Test account", .0, ""); auto category = std::make_shared<com::chancho::Category>("Sushi", com::chancho::Category::Type::EXPENSE); auto transactionPtr = std::make_shared<com::chancho::Transaction>(account, amount, category); auto recurrentPtr = std::make_shared<com::chancho::RecurrentTransaction>(transactionPtr, std::make_shared<com::chancho::RecurrentTransaction::Recurrence>( com::chancho::RecurrentTransaction::Recurrence::Defaults::DAILY, QDate::currentDate(), occurrences)); auto qmlTransaction = std::make_shared<com::chancho::tests::PublicRecurrentTransaction>(recurrentPtr); QCOMPARE(qmlTransaction->getOccurrences(), occurrences); }