diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-02 19:19:51 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-02 19:19:51 +0200 |
commit | 17820ffb1aa852d864423f5edffc1e6b48909fc5 (patch) | |
tree | 072dea86bc1fd65772f50b30889f4b8ed9408c5b /searchlib | |
parent | 13abb216a0cb5de33a5bd6fafb3a1a0d5395d70a (diff) |
Add conformance tests for get_hits and or_hits_into too.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp | 26 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/test/searchiteratorverifier.h | 2 |
2 files changed, 28 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp b/searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp index d0072978b2a..59b4e2ab64c 100644 --- a/searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp +++ b/searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp @@ -126,6 +126,10 @@ void SearchIteratorVerifier::verifyTermwise() const { TEST_DO(verify_and_hits_into(*create(false), _docIds)); TEST_DO(verify_and_hits_into(*create(true), _docIds)); + TEST_DO(verify_or_hits_into(*create(false), _docIds)); + TEST_DO(verify_or_hits_into(*create(true), _docIds)); + TEST_DO(verify_get_hits(*create(false), _docIds)); + TEST_DO(verify_get_hits(*create(true), _docIds)); TEST_DO(verify(false)); TEST_DO(verify(true)); } @@ -229,6 +233,28 @@ SearchIteratorVerifier::verify_and_hits_into(SearchIterator & iterator, const Do } void +SearchIteratorVerifier::verify_or_hits_into(SearchIterator & iterator, const DocIds & docIds) { + BitVector::UP noneSet = BitVector::create(1, getDocIdLimit()); + EXPECT_EQUAL(noneSet->countTrueBits(), 0u); + iterator.initRange(1, getDocIdLimit()); + iterator.or_hits_into(*noneSet, 1); + for (size_t i(0); i < docIds.size(); i++) { + EXPECT_TRUE(noneSet->testBit(docIds[i])); + } + EXPECT_EQUAL(noneSet->countTrueBits(), docIds.size()); +} + +void +SearchIteratorVerifier::verify_get_hits(SearchIterator & iterator, const DocIds & docIds) { + iterator.initRange(1, getDocIdLimit()); + BitVector::UP result = iterator.get_hits(1); + for (size_t i(0); i < docIds.size(); i++) { + EXPECT_TRUE(result->testBit(docIds[i])); + } + EXPECT_EQUAL(result->countTrueBits(), docIds.size()); +} + +void SearchIteratorVerifier::verify(SearchIterator & iterator, bool strict, const DocIds & docIds) { TEST_DO(verify(iterator, Ranges({{1, getDocIdLimit()}}), strict, docIds)); diff --git a/searchlib/src/vespa/searchlib/test/searchiteratorverifier.h b/searchlib/src/vespa/searchlib/test/searchiteratorverifier.h index f4ba6d798bd..3d35731dab1 100644 --- a/searchlib/src/vespa/searchlib/test/searchiteratorverifier.h +++ b/searchlib/src/vespa/searchlib/test/searchiteratorverifier.h @@ -37,6 +37,8 @@ private: static void verify(SearchIterator & iterator, bool strict, const DocIds & docIds); static void verify(SearchIterator & iterator, const Ranges & ranges, bool strict, const DocIds & docIds); static void verify_and_hits_into(SearchIterator & iterator, const DocIds & docIds); + static void verify_or_hits_into(SearchIterator & iterator, const DocIds & docIds); + static void verify_get_hits(SearchIterator & iterator, const DocIds & docIds); static DocIds search(SearchIterator & iterator, const Ranges & ranges, bool strict); static DocIds searchRelaxed(SearchIterator & search, Range range); static DocIds searchStrict(SearchIterator & search, Range range); |