summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-02-03 14:04:54 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-02-03 14:51:09 +0100
commit3f4b3a2dc8c64d16a1385e0ac0c88f1c6c33b476 (patch)
treea4a966e389edaa02e9ef6846b5746d6ffb2cce28 /searchlib
parentb5bd5ab87541f18cd7e377e841557c84aaa15a5f (diff)
Use the iterator verifier for parallell weak and too.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp44
-rw-r--r--searchlib/src/tests/queryeval/weak_and/weak_and_test.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/test/searchiteratorverifiers.h12
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;
};