diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-14 10:54:44 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-14 10:54:44 +0100 |
commit | 759a6e8a3405d5e0c4808b659895336318ef01c0 (patch) | |
tree | ab00616fd0db5ffdd0c7c24310d6b4166d458eb9 /searchlib | |
parent | ba105abb62d920b61b0e2a8394f9eef21491c418 (diff) |
Fork into single/multiple tests.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp | 46 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/fef/matchdata.cpp | 1 |
2 files changed, 40 insertions, 7 deletions
diff --git a/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp b/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp index b3989065f07..0abe6b4d457 100644 --- a/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp +++ b/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp @@ -6,6 +6,7 @@ #include <vespa/searchlib/query/tree/simplequery.h> #include <vespa/searchlib/queryeval/field_spec.h> #include <vespa/searchlib/queryeval/blueprint.h> +#include <vespa/searchlib/queryeval/emptysearch.h> #include <vespa/searchlib/queryeval/fake_result.h> #include <vespa/searchlib/queryeval/fake_searchable.h> #include <vespa/searchlib/queryeval/fake_requestcontext.h> @@ -94,14 +95,21 @@ struct MockFixture { MockSearch *mock; TermFieldMatchData tfmd; std::unique_ptr<SearchIterator> search; - MockFixture(uint32_t initial) : mock(0), tfmd(), search() { - std::vector<SearchIterator*> children; + MockFixture(uint32_t initial) : + MockFixture(initial, {new EmptySearch()}) + { } + MockFixture(uint32_t initial, std::vector<SearchIterator *> children) : mock(0), tfmd(), search() { std::vector<TermFieldMatchData*> childMatch; std::vector<int32_t> weights; - MatchData::UP md(MatchData::makeTestInstance(1, 1)); + const size_t numChildren(children.size()+1); + MatchData::UP md(MatchData::makeTestInstance(numChildren, numChildren)); + for (size_t i(0); i < children.size(); i++) { + childMatch.push_back(md->resolveTermField(i)); + weights.push_back(1); + } mock = new MockSearch(initial); + childMatch.push_back(md->resolveTermField(children.size())); children.push_back(mock); - childMatch.push_back(md->resolveTermField(0)); weights.push_back(1); search = DotProductSearch::create(children, tfmd, childMatch, weights, std::move(md)); } @@ -139,15 +147,25 @@ TEST("test Multi") { EXPECT_EQUAL(expect, ws.search(index, "multi-field", false)); } -TEST_F("test Eager Empty Child", MockFixture(search::endDocId)) { +TEST_F("test Eager Single Empty Child", MockFixture(search::endDocId, {})) { + MockSearch *mock = f1.mock; + SearchIterator &search = *f1.search; + search.initFullRange(); + EXPECT_TRUE(search.isAtEnd()); + EXPECT_EQUAL(0, mock->seekCnt); +} + +TEST_F("test Multiple Eager Empty Children", MockFixture(search::endDocId)) { MockSearch *mock = f1.mock; SearchIterator &search = *f1.search; search.initFullRange(); + EXPECT_EQUAL(search.beginId(), search.getDocId()); + EXPECT_TRUE(!search.seek(1)); EXPECT_TRUE(search.isAtEnd()); EXPECT_EQUAL(0, mock->seekCnt); } -TEST_F("test Eager Matching Child", MockFixture(5)) { +TEST_F("test Eager Single Matching Child", MockFixture(5, {})) { MockSearch *mock = f1.mock; SearchIterator &search = *f1.search; search.initFullRange(); @@ -163,6 +181,22 @@ TEST_F("test Eager Matching Child", MockFixture(5)) { EXPECT_EQUAL(1, mock->seekCnt); } +TEST_F("test Eager Matching Children", MockFixture(5)) { + MockSearch *mock = f1.mock; + SearchIterator &search = *f1.search; + search.initFullRange(); + EXPECT_EQUAL(search.beginId(), search.getDocId()); + EXPECT_TRUE(!search.seek(3)); + EXPECT_EQUAL(5u, search.getDocId()); + EXPECT_EQUAL(0, mock->seekCnt); + EXPECT_TRUE(search.seek(5)); + EXPECT_EQUAL(5u, search.getDocId()); + EXPECT_EQUAL(0, mock->seekCnt); + EXPECT_TRUE(!search.seek(7)); + EXPECT_TRUE(search.isAtEnd()); + EXPECT_EQUAL(1, mock->seekCnt); +} + class IteratorChildrenVerifier : public search::test::IteratorChildrenVerifier { private: SearchIterator::UP create(const std::vector<SearchIterator*> &children) const override { diff --git a/searchlib/src/vespa/searchlib/fef/matchdata.cpp b/searchlib/src/vespa/searchlib/fef/matchdata.cpp index eeff402547b..618babaf90f 100644 --- a/searchlib/src/vespa/searchlib/fef/matchdata.cpp +++ b/searchlib/src/vespa/searchlib/fef/matchdata.cpp @@ -1,6 +1,5 @@ // 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 "matchdata.h" namespace search { |