diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-02 23:28:33 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-03 14:51:09 +0100 |
commit | cf2b1e1cc4e7729ed805388ef95794417eb74bfe (patch) | |
tree | f36f615dd2e8803799f87c4b1815956c058b0b45 /searchlib/src/tests/queryeval/weighted_set_term | |
parent | 3d9705732586af5cf9364b254566517d1aea5d77 (diff) |
Use the iterator verifier and factor out common code for dotproduct and weighted set.
Diffstat (limited to 'searchlib/src/tests/queryeval/weighted_set_term')
-rw-r--r-- | searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp | 64 |
1 files changed, 20 insertions, 44 deletions
diff --git a/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp b/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp index 7436913b642..1e432f89747 100644 --- a/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp +++ b/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp @@ -1,30 +1,22 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/fastos/fastos.h> -#include <vespa/log/log.h> -LOG_SETUP("weighted_set_term_test"); + #include <vespa/vespalib/testkit/testapp.h> #include <vespa/searchlib/queryeval/weighted_set_term_search.h> #include <vespa/searchlib/fef/fef.h> #include <vespa/searchlib/query/tree/simplequery.h> #include <vespa/searchlib/queryeval/field_spec.h> -#include <vespa/searchlib/queryeval/searchiterator.h> #include <vespa/searchlib/queryeval/blueprint.h> #include <vespa/searchlib/queryeval/fake_result.h> #include <vespa/searchlib/queryeval/fake_searchable.h> #include <vespa/searchlib/queryeval/fake_requestcontext.h> -#include <vespa/searchlib/queryeval/weighted_set_term_search.h> -#include <vespa/searchlib/test/initrange.h> -#include <vespa/searchlib/test/document_weight_attribute_helper.h> -#include <memory> -#include <string> -#include <map> +#include <vespa/searchlib/test/searchiteratorverifiers.h> using namespace search; using namespace search::query; using namespace search::fef; using namespace search::queryeval; -using search::test::InitRangeVerifier; +using search::test::SearchIteratorVerifier; using search::test::DocumentWeightAttributeHelper; namespace { @@ -197,44 +189,28 @@ TEST_F("test Eager Matching Child", MockFixture(5)) { EXPECT_EQUAL(1, mock->seekCnt); } -TEST("verify initRange with search iterator children") { - const size_t num_children = 7; - InitRangeVerifier ir; - using DocIds = InitRangeVerifier::DocIds; - std::vector<DocIds> split_lists(num_children); - auto full_list = ir.getExpectedDocIds(); - for (size_t i = 0; i < full_list.size(); ++i) { - split_lists[i % num_children].push_back(full_list[i]); +class IteratorChildrenVerifier : public search::test::IteratorChildrenVerifier { +private: + SearchIterator::UP create(const std::vector<SearchIterator*> &children) const override { + return SearchIterator::UP(WeightedSetTermSearch::create(children, _tfmd, _weights)); } - bool strict = true; - std::vector<SearchIterator*> children; - for (size_t i = 0; i < num_children; ++i) { - children.push_back(ir.createIterator(split_lists[i], strict).release()); +}; + +class WeightIteratorChildrenVerifier : public search::test::WeightIteratorChildrenVerifier { +private: + SearchIterator::UP create(std::vector<DocumentWeightIterator> && children) const override { + return SearchIterator::UP(WeightedSetTermSearch::create(_tfmd, _weights, std::move(children))); } - TermFieldMatchData tfmd; - std::vector<int32_t> weights(num_children, 1); - SearchIterator::UP itr(WeightedSetTermSearch::create(children, tfmd, weights)); - ir.verify(*itr); +}; + +TEST("verify initRange with search iterator children") { + IteratorChildrenVerifier verifier; + verifier.verify(); } TEST("verify initRange with document weight iterator children") { - const size_t num_children = 7; - InitRangeVerifier ir; - DocumentWeightAttributeHelper helper; - helper.add_docs(ir.getDocIdLimit()); - auto full_list = ir.getExpectedDocIds(); - for (size_t i = 0; i < full_list.size(); ++i) { - helper.set_doc(full_list[i], i % num_children, 1); - } - TermFieldMatchData tfmd; - std::vector<int32_t> weights(num_children, 1); - std::vector<DocumentWeightIterator> children; - for (size_t i = 0; i < num_children; ++i) { - auto dict_entry = helper.dwa().lookup(vespalib::make_string("%zu", i).c_str()); - helper.dwa().create(dict_entry.posting_idx, children); - } - SearchIterator::UP itr(WeightedSetTermSearch::create(tfmd, weights, std::move(children))); - ir.verify(*itr); + WeightIteratorChildrenVerifier verifier; + verifier.verify(); } TEST_MAIN() { TEST_RUN_ALL(); } |