diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-03 14:04:54 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-03 14:51:09 +0100 |
commit | 3f4b3a2dc8c64d16a1385e0ac0c88f1c6c33b476 (patch) | |
tree | a4a966e389edaa02e9ef6846b5746d6ffb2cce28 /searchlib | |
parent | b5bd5ab87541f18cd7e377e841557c84aaa15a5f (diff) |
Use the iterator verifier for parallell weak and too.
Diffstat (limited to 'searchlib')
3 files changed, 28 insertions, 32 deletions
diff --git a/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp b/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp index fd74cdeff49..e743677b38e 100644 --- a/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp +++ b/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp @@ -1,5 +1,4 @@ // 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/vespalib/testkit/test_kit.h> #include <vespa/searchlib/query/tree/simplequery.h> #include <vespa/searchlib/queryeval/fake_searchable.h> @@ -9,9 +8,8 @@ #include <vespa/searchlib/queryeval/simpleresult.h> #include <vespa/searchlib/queryeval/test/eagerchild.h> #include <vespa/searchlib/queryeval/test/leafspec.h> -#include <vespa/searchlib/queryeval/test/searchhistory.h> #include <vespa/searchlib/queryeval/test/wandspec.h> -#include <vespa/searchlib/test/initrange.h> +#include <vespa/searchlib/test/searchiteratorverifiers.h> #include <vespa/searchlib/test/document_weight_attribute_helper.h> #include <vespa/searchlib/queryeval/document_weight_search_iterator.h> #include <vespa/searchlib/fef/fef.h> @@ -24,7 +22,6 @@ typedef search::feature_t feature_t; typedef wand::score_t score_t; typedef ParallelWeakAndSearch::MatchParams MatchParams; typedef ParallelWeakAndSearch::RankParams RankParams; -using search::test::InitRangeVerifier; using search::test::DocumentWeightAttributeHelper; using search::IDocumentWeightAttribute; using search::fef::TermFieldMatchData; @@ -652,29 +649,26 @@ SearchIterator::UP create_wand(bool use_dwa, return SearchIterator::UP(ParallelWeakAndSearch::create(terms, matchParams, RankParams(tfmd, std::move(childrenMatchData)), strict)); } +class Verifier : public search::test::WeightIteratorChildrenVerifier { +public: + Verifier(bool use_dwa) : _use_dwa(use_dwa) { } +private: + SearchIterator::UP create(bool strict) const override { + MatchParams match_params(_dummy_heap, _dummy_heap.getMinScore(), 1.0, 1); + std::vector<IDocumentWeightAttribute::LookupResult> dict_entries; + for (size_t i = 0; i < _num_children; ++i) { + dict_entries.push_back(_helper.dwa().lookup(vespalib::make_string("%zu", i).c_str())); + } + return create_wand(_use_dwa, _tfmd, match_params, _weights, dict_entries, _helper.dwa(), strict); + } + bool _use_dwa; + mutable DummyHeap _dummy_heap; +}; + TEST("verify initRange") { - 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); - } - std::vector<int32_t> weights(num_children, 1); for (bool use_dwa: {false, true}) { - for (bool strict: {false, true}) { - DummyHeap dummy_heap; - TermFieldMatchData tfmd; - MatchParams match_params(dummy_heap, dummy_heap.getMinScore(), 1.0, 1); - match_params.setDocIdLimit(ir.getDocIdLimit()); - std::vector<IDocumentWeightAttribute::LookupResult> dict_entries; - for (size_t i = 0; i < num_children; ++i) { - dict_entries.push_back(helper.dwa().lookup(vespalib::make_string("%zu", i).c_str())); - } - auto search = create_wand(use_dwa, tfmd, match_params, weights, dict_entries, helper.dwa(), strict); - ir.verify(*search); - } + Verifier verifier(use_dwa); + verifier.verify(); } } diff --git a/searchlib/src/tests/queryeval/weak_and/weak_and_test.cpp b/searchlib/src/tests/queryeval/weak_and/weak_and_test.cpp index 42447c66a99..f7ab5aaf3d8 100644 --- a/searchlib/src/tests/queryeval/weak_and/weak_and_test.cpp +++ b/searchlib/src/tests/queryeval/weak_and/weak_and_test.cpp @@ -109,10 +109,6 @@ private: } return SearchIterator::UP(WeakAndSearch::create(terms, -1, strict)); } - - SearchIterator::UP create(const std::vector<SearchIterator*> &) const override { - return SearchIterator::UP(); - } }; TEST("verify initRange with search iterator children") { diff --git a/searchlib/src/vespa/searchlib/test/searchiteratorverifiers.h b/searchlib/src/vespa/searchlib/test/searchiteratorverifiers.h index 7b53deeb3f2..c2680e4a776 100644 --- a/searchlib/src/vespa/searchlib/test/searchiteratorverifiers.h +++ b/searchlib/src/vespa/searchlib/test/searchiteratorverifiers.h @@ -38,7 +38,10 @@ public: return create(children); } protected: - virtual SearchIterator::UP create(const std::vector<SearchIterator*> &children) const = 0; + virtual SearchIterator::UP create(const std::vector<SearchIterator*> &children) const { + (void) children; + return SearchIterator::UP(); + } std::vector<DocIds> _split_lists; }; @@ -63,8 +66,11 @@ public: } return create(std::move(children)); } -private: - virtual SearchIterator::UP create(std::vector<DocumentWeightIterator> && children) const = 0; +protected: + virtual SearchIterator::UP create(std::vector<DocumentWeightIterator> && children) const { + (void) children; + return SearchIterator::UP(); + } DocumentWeightAttributeHelper _helper; }; |