aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2020-06-30 08:45:52 +0200
committerGitHub <noreply@github.com>2020-06-30 08:45:52 +0200
commite4900248df1a6c5d240c633704f71e098b41ef40 (patch)
treec12664b4bcab187892b285bc9a260a44ead03e96 /searchlib/src
parentbb7d188e04ff44318906dfa9ede5b532409ebf9f (diff)
parente202f5e4e674cc86966189241bfe27d558f4f0f4 (diff)
Merge pull request #13734 from vespa-engine/arnej/modernize-wrapper-tests
Arnej/modernize wrapper tests
Diffstat (limited to 'searchlib/src')
-rw-r--r--searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/.cvsignore3
-rw-r--r--searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/.gitignore4
-rw-r--r--searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/CMakeLists.txt9
-rw-r--r--searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp139
-rw-r--r--searchlib/src/tests/queryeval/filter_wrapper/CMakeLists.txt10
-rw-r--r--searchlib/src/tests/queryeval/filter_wrapper/filter_wrapper_test.cpp124
-rw-r--r--searchlib/src/tests/queryeval/wrappers/CMakeLists.txt11
-rw-r--r--searchlib/src/tests/queryeval/wrappers/wrappers_test.cpp197
8 files changed, 208 insertions, 289 deletions
diff --git a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/.cvsignore b/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/.cvsignore
deleted file mode 100644
index 9e6565f9d16..00000000000
--- a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.depend
-Makefile
-booleanmatchiteratorwrapper_test
diff --git a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/.gitignore b/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/.gitignore
deleted file mode 100644
index b568b87514a..00000000000
--- a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.depend
-Makefile
-booleanmatchiteratorwrapper_test
-searchlib_booleanmatchiteratorwrapper_test_app
diff --git a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/CMakeLists.txt b/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/CMakeLists.txt
deleted file mode 100644
index d97fe5b12d7..00000000000
--- a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_executable(searchlib_booleanmatchiteratorwrapper_test_app TEST
- SOURCES
- booleanmatchiteratorwrapper_test.cpp
- DEPENDS
- searchlib
- searchlib_test
-)
-vespa_add_test(NAME searchlib_booleanmatchiteratorwrapper_test_app COMMAND searchlib_booleanmatchiteratorwrapper_test_app)
diff --git a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp b/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp
deleted file mode 100644
index 7d4551a5c7d..00000000000
--- a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include <vespa/vespalib/testkit/testapp.h>
-#include <vespa/searchlib/queryeval/booleanmatchiteratorwrapper.h>
-#include <vespa/searchlib/fef/termfieldmatchdata.h>
-#include <vespa/searchlib/common/bitvectoriterator.h>
-#include <vespa/searchlib/test/searchiteratorverifier.h>
-
-using namespace search::fef;
-using namespace search::queryeval;
-using search::BitVector;
-using search::BitVectorIterator;
-
-struct DummyItr : public SearchIterator {
- static uint32_t seekCnt;
- static uint32_t unpackCnt;
- static uint32_t dtorCnt;
- static uint32_t _unpackedDocId;
- TermFieldMatchData *match;
-
- DummyItr(TermFieldMatchData *m) {
- match = m;
- }
-
- ~DummyItr() {
- ++dtorCnt;
- }
-
- void doSeek(uint32_t docid) override {
- ++seekCnt;
- if (docid <= 10) {
- setDocId(10);
- } else if (docid <= 20) {
- setDocId(20);
- } else {
- setAtEnd();
- }
- }
-
- void doUnpack(uint32_t docid) override {
- ++unpackCnt;
- if (match != 0) {
- _unpackedDocId = docid;
- }
- }
-};
-uint32_t DummyItr::seekCnt = 0;
-uint32_t DummyItr::unpackCnt = 0;
-uint32_t DummyItr::dtorCnt = 0;
-uint32_t DummyItr::_unpackedDocId = 0;
-
-
-TEST("mostly everything") {
- EXPECT_EQUAL(DummyItr::seekCnt, 0u);
- EXPECT_EQUAL(DummyItr::unpackCnt, 0u);
- EXPECT_EQUAL(DummyItr::dtorCnt, 0u);
- { // without wrapper
- TermFieldMatchData match;
- DummyItr::_unpackedDocId = 0;
- SearchIterator::UP search(new DummyItr(&match));
- search->initFullRange();
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 0u);
- EXPECT_TRUE(!search->seek(1u));
- EXPECT_EQUAL(search->getDocId(), 10u);
- EXPECT_TRUE(search->seek(10));
- search->unpack(10);
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 10u);
- EXPECT_TRUE(!search->seek(15));
- EXPECT_EQUAL(search->getDocId(), 20u);
- EXPECT_TRUE(search->seek(20));
- search->unpack(20);
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 20u);
- EXPECT_TRUE(!search->seek(25));
- EXPECT_TRUE(search->isAtEnd());
- }
- EXPECT_EQUAL(DummyItr::seekCnt, 3u);
- EXPECT_EQUAL(DummyItr::unpackCnt, 2u);
- EXPECT_EQUAL(DummyItr::dtorCnt, 1u);
- { // with wrapper
- TermFieldMatchData match;
- TermFieldMatchDataArray tfmda;
- tfmda.add(&match);
- DummyItr::_unpackedDocId = 0;
- SearchIterator::UP search(new BooleanMatchIteratorWrapper(SearchIterator::UP(new DummyItr(&match)), tfmda));
- search->initFullRange();
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 0u);
- EXPECT_TRUE(!search->seek(1u));
- EXPECT_EQUAL(search->getDocId(), 10u);
- EXPECT_TRUE(search->seek(10));
- search->unpack(10);
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 0u);
- EXPECT_TRUE(!search->seek(15));
- EXPECT_EQUAL(search->getDocId(), 20u);
- EXPECT_TRUE(search->seek(20));
- search->unpack(20);
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 0u);
- EXPECT_TRUE(!search->seek(25));
- EXPECT_TRUE(search->isAtEnd());
- }
- EXPECT_EQUAL(DummyItr::seekCnt, 6u);
- EXPECT_EQUAL(DummyItr::unpackCnt, 2u);
- EXPECT_EQUAL(DummyItr::dtorCnt, 2u);
- { // with wrapper, without match data
- SearchIterator::UP search(new BooleanMatchIteratorWrapper(SearchIterator::UP(new DummyItr(0)), TermFieldMatchDataArray()));
- search->initFullRange();
- EXPECT_TRUE(!search->seek(1u));
- EXPECT_EQUAL(search->getDocId(), 10u);
- EXPECT_TRUE(search->seek(10));
- search->unpack(10);
- EXPECT_TRUE(!search->seek(15));
- EXPECT_EQUAL(search->getDocId(), 20u);
- EXPECT_TRUE(search->seek(20));
- search->unpack(20);
- EXPECT_TRUE(!search->seek(25));
- EXPECT_TRUE(search->isAtEnd());
- }
- EXPECT_EQUAL(DummyItr::seekCnt, 9u);
- EXPECT_EQUAL(DummyItr::unpackCnt, 2u);
- EXPECT_EQUAL(DummyItr::dtorCnt, 3u);
-}
-
-class Verifier : public search::test::SearchIteratorVerifier {
-public:
- ~Verifier();
- SearchIterator::UP create(bool strict) const override {
- return std::make_unique<BooleanMatchIteratorWrapper>(createIterator(getExpectedDocIds(), strict), _tfmda);;
- }
-private:
- mutable TermFieldMatchDataArray _tfmda;
-};
-
-Verifier::~Verifier() {}
-
-TEST("Test that boolean wrapper iterators adheres to SearchIterator requirements") {
- Verifier searchIteratorVerifier;
- searchIteratorVerifier.verify();
-}
-
-TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/searchlib/src/tests/queryeval/filter_wrapper/CMakeLists.txt b/searchlib/src/tests/queryeval/filter_wrapper/CMakeLists.txt
deleted file mode 100644
index bab956e73bb..00000000000
--- a/searchlib/src/tests/queryeval/filter_wrapper/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-vespa_add_executable(searchlib_filter_wrapper_test_app TEST
- SOURCES
- filter_wrapper_test.cpp
- DEPENDS
- searchlib
- searchlib_test
-)
-vespa_add_test(NAME searchlib_filter_wrapper_test_app COMMAND searchlib_filter_wrapper_test_app)
diff --git a/searchlib/src/tests/queryeval/filter_wrapper/filter_wrapper_test.cpp b/searchlib/src/tests/queryeval/filter_wrapper/filter_wrapper_test.cpp
deleted file mode 100644
index 707f51c551a..00000000000
--- a/searchlib/src/tests/queryeval/filter_wrapper/filter_wrapper_test.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include <vespa/vespalib/testkit/testapp.h>
-#include <vespa/searchlib/queryeval/filter_wrapper.h>
-#include <vespa/searchlib/fef/termfieldmatchdata.h>
-#include <vespa/searchlib/common/bitvectoriterator.h>
-#include <vespa/searchlib/test/searchiteratorverifier.h>
-
-using namespace search::fef;
-using namespace search::queryeval;
-using search::BitVector;
-using search::BitVectorIterator;
-
-struct DummyItr : public SearchIterator {
- static uint32_t seekCnt;
- static uint32_t unpackCnt;
- static uint32_t dtorCnt;
- static uint32_t _unpackedDocId;
- TermFieldMatchData *match;
-
- DummyItr(TermFieldMatchData *m) {
- match = m;
- }
-
- ~DummyItr() {
- ++dtorCnt;
- }
-
- void doSeek(uint32_t docid) override {
- ++seekCnt;
- if (docid <= 10) {
- setDocId(10);
- } else if (docid <= 20) {
- setDocId(20);
- } else {
- setAtEnd();
- }
- }
-
- void doUnpack(uint32_t docid) override {
- ++unpackCnt;
- if (match != 0) {
- _unpackedDocId = docid;
- }
- }
-};
-uint32_t DummyItr::seekCnt = 0;
-uint32_t DummyItr::unpackCnt = 0;
-uint32_t DummyItr::dtorCnt = 0;
-uint32_t DummyItr::_unpackedDocId = 0;
-
-
-TEST("filter wrapper forwards as expected") {
- EXPECT_EQUAL(DummyItr::seekCnt, 0u);
- EXPECT_EQUAL(DummyItr::unpackCnt, 0u);
- EXPECT_EQUAL(DummyItr::dtorCnt, 0u);
- { // without wrapper
- TermFieldMatchData match;
- DummyItr::_unpackedDocId = 0;
- SearchIterator::UP search(new DummyItr(&match));
- search->initFullRange();
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 0u);
- EXPECT_TRUE(!search->seek(1u));
- EXPECT_EQUAL(search->getDocId(), 10u);
- EXPECT_TRUE(search->seek(10));
- search->unpack(10);
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 10u);
- EXPECT_TRUE(!search->seek(15));
- EXPECT_EQUAL(search->getDocId(), 20u);
- EXPECT_TRUE(search->seek(20));
- search->unpack(20);
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 20u);
- EXPECT_TRUE(!search->seek(25));
- EXPECT_TRUE(search->isAtEnd());
- }
- EXPECT_EQUAL(DummyItr::seekCnt, 3u);
- EXPECT_EQUAL(DummyItr::unpackCnt, 2u);
- EXPECT_EQUAL(DummyItr::dtorCnt, 1u);
- { // with wrapper
- TermFieldMatchData match;
- TermFieldMatchDataArray tfmda;
- tfmda.add(&match);
- DummyItr::_unpackedDocId = 0;
- auto search = std::make_unique<FilterWrapper>(1);
- auto to_wrap = std::make_unique<DummyItr>(search->tfmda()[0]);
- search->wrap(std::move(to_wrap));
- search->initFullRange();
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 0u);
- EXPECT_TRUE(!search->seek(1u));
- EXPECT_EQUAL(search->getDocId(), 10u);
- EXPECT_TRUE(search->seek(10));
- search->unpack(10);
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 0u);
- EXPECT_TRUE(!search->seek(15));
- EXPECT_EQUAL(search->getDocId(), 20u);
- EXPECT_TRUE(search->seek(20));
- search->unpack(20);
- EXPECT_EQUAL(DummyItr::_unpackedDocId, 0u);
- EXPECT_TRUE(!search->seek(25));
- EXPECT_TRUE(search->isAtEnd());
- }
- EXPECT_EQUAL(DummyItr::seekCnt, 6u);
- EXPECT_EQUAL(DummyItr::unpackCnt, 2u);
- EXPECT_EQUAL(DummyItr::dtorCnt, 2u);
-}
-
-class Verifier : public search::test::SearchIteratorVerifier {
-public:
- ~Verifier();
- SearchIterator::UP create(bool strict) const override {
- auto search = std::make_unique<FilterWrapper>(1);
- search->wrap(createIterator(getExpectedDocIds(), strict));
- return search;
- }
-};
-
-Verifier::~Verifier() {}
-
-TEST("Test that filter wrapper iterators adheres to SearchIterator requirements") {
- Verifier searchIteratorVerifier;
- searchIteratorVerifier.verify();
-}
-
-TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/searchlib/src/tests/queryeval/wrappers/CMakeLists.txt b/searchlib/src/tests/queryeval/wrappers/CMakeLists.txt
new file mode 100644
index 00000000000..d1d566b1cab
--- /dev/null
+++ b/searchlib/src/tests/queryeval/wrappers/CMakeLists.txt
@@ -0,0 +1,11 @@
+# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+vespa_add_executable(searchlib_wrappers_test_app TEST
+ SOURCES
+ wrappers_test.cpp
+ DEPENDS
+ searchlib
+ searchlib_test
+ gtest
+)
+vespa_add_test(NAME searchlib_wrappers_test_app COMMAND searchlib_wrappers_test_app)
diff --git a/searchlib/src/tests/queryeval/wrappers/wrappers_test.cpp b/searchlib/src/tests/queryeval/wrappers/wrappers_test.cpp
new file mode 100644
index 00000000000..62bff93ab0e
--- /dev/null
+++ b/searchlib/src/tests/queryeval/wrappers/wrappers_test.cpp
@@ -0,0 +1,197 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include <vespa/searchlib/queryeval/filter_wrapper.h>
+#include <vespa/searchlib/queryeval/booleanmatchiteratorwrapper.h>
+#include <vespa/searchlib/fef/termfieldmatchdata.h>
+#include <vespa/vespalib/gtest/gtest.h>
+
+#define ENABLE_GTEST_MIGRATION
+#include <vespa/searchlib/test/searchiteratorverifier.h>
+
+using namespace search::fef;
+using namespace search::queryeval;
+
+struct ObservedData {
+ uint32_t seekCnt;
+ uint32_t unpackCnt;
+ uint32_t dtorCnt;
+ uint32_t unpackedDocId;
+};
+
+class WrapperTest : public ::testing::Test {
+public:
+ class DummyItr : public SearchIterator {
+ private:
+ ObservedData &_data;
+ TermFieldMatchData *_match;
+ public:
+ DummyItr(ObservedData &data, TermFieldMatchData *m) : _data(data), _match(m) {}
+ ~DummyItr() {
+ ++_data.dtorCnt;
+ }
+ void doSeek(uint32_t docid) override {
+ ++_data.seekCnt;
+ if (docid <= 10) {
+ setDocId(10);
+ } else if (docid <= 20) {
+ setDocId(20);
+ } else {
+ setAtEnd();
+ }
+ }
+ void doUnpack(uint32_t docid) override {
+ ++_data.unpackCnt;
+ if (_match != 0) {
+ _data.unpackedDocId = docid;
+ }
+ }
+ };
+ WrapperTest() : _data{0,0,0,0} {}
+protected:
+ ObservedData _data;
+
+ void verify_unwrapped() {
+ EXPECT_EQ(_data.seekCnt, 0u);
+ EXPECT_EQ(_data.unpackCnt, 0u);
+ EXPECT_EQ(_data.dtorCnt, 0u);
+
+ // without wrapper
+ TermFieldMatchData match;
+ _data.unpackedDocId = 0;
+ auto search = std::make_unique<DummyItr>(_data, &match);
+ search->initFullRange();
+ EXPECT_EQ(_data.unpackedDocId, 0u);
+ EXPECT_TRUE(!search->seek(1u));
+ EXPECT_EQ(search->getDocId(), 10u);
+ EXPECT_TRUE(search->seek(10));
+ search->unpack(10);
+ EXPECT_EQ(_data.unpackedDocId, 10u);
+ EXPECT_TRUE(!search->seek(15));
+ EXPECT_EQ(search->getDocId(), 20u);
+ EXPECT_TRUE(search->seek(20));
+ search->unpack(20);
+ EXPECT_EQ(_data.unpackedDocId, 20u);
+ EXPECT_TRUE(!search->seek(25));
+ EXPECT_TRUE(search->isAtEnd());
+
+ search.reset(nullptr);
+ EXPECT_EQ(_data.seekCnt, 3u);
+ EXPECT_EQ(_data.unpackCnt, 2u);
+ EXPECT_EQ(_data.dtorCnt, 1u);
+ }
+};
+
+TEST_F(WrapperTest, filter_wrapper)
+{
+ verify_unwrapped();
+
+ // with FilterWrapper
+ TermFieldMatchData match;
+ TermFieldMatchDataArray tfmda;
+ tfmda.add(&match);
+ _data.unpackedDocId = 0;
+ auto search = std::make_unique<FilterWrapper>(1);
+search->wrap(std::make_unique<DummyItr>(_data, search->tfmda()[0]));
+ search->initFullRange();
+ EXPECT_EQ(_data.unpackedDocId, 0u);
+ EXPECT_TRUE(!search->seek(1u));
+ EXPECT_EQ(search->getDocId(), 10u);
+ EXPECT_TRUE(search->seek(10));
+ search->unpack(10);
+ EXPECT_EQ(_data.unpackedDocId, 0u);
+ EXPECT_TRUE(!search->seek(15));
+ EXPECT_EQ(search->getDocId(), 20u);
+ EXPECT_TRUE(search->seek(20));
+ search->unpack(20);
+ EXPECT_EQ(_data.unpackedDocId, 0u);
+ EXPECT_TRUE(!search->seek(25));
+ EXPECT_TRUE(search->isAtEnd());
+
+ search.reset(nullptr);
+ EXPECT_EQ(_data.seekCnt, 6u);
+ EXPECT_EQ(_data.unpackCnt, 2u);
+ EXPECT_EQ(_data.dtorCnt, 2u);
+}
+
+TEST_F(WrapperTest, boolean_match_iterator_wrapper)
+{
+ verify_unwrapped();
+ { // with wrapper
+ TermFieldMatchData match;
+ TermFieldMatchDataArray tfmda;
+ tfmda.add(&match);
+ _data.unpackedDocId = 0;
+ auto to_wrap = std::make_unique<DummyItr>(_data, &match);
+ auto search = std::make_unique<BooleanMatchIteratorWrapper>(std::move(to_wrap), tfmda);
+ search->initFullRange();
+ EXPECT_EQ(_data.unpackedDocId, 0u);
+ EXPECT_TRUE(!search->seek(1u));
+ EXPECT_EQ(search->getDocId(), 10u);
+ EXPECT_TRUE(search->seek(10));
+ search->unpack(10);
+ EXPECT_EQ(_data.unpackedDocId, 0u);
+ EXPECT_TRUE(!search->seek(15));
+ EXPECT_EQ(search->getDocId(), 20u);
+ EXPECT_TRUE(search->seek(20));
+ search->unpack(20);
+ EXPECT_EQ(_data.unpackedDocId, 0u);
+ EXPECT_TRUE(!search->seek(25));
+ EXPECT_TRUE(search->isAtEnd());
+ }
+ EXPECT_EQ(_data.seekCnt, 6u);
+ EXPECT_EQ(_data.unpackCnt, 2u);
+ EXPECT_EQ(_data.dtorCnt, 2u);
+ { // with wrapper, without match data
+
+ auto to_wrap = std::make_unique<DummyItr>(_data, nullptr);
+ auto search = std::make_unique<BooleanMatchIteratorWrapper>(std::move(to_wrap), TermFieldMatchDataArray());
+ search->initFullRange();
+ EXPECT_TRUE(!search->seek(1u));
+ EXPECT_EQ(search->getDocId(), 10u);
+ EXPECT_TRUE(search->seek(10));
+ search->unpack(10);
+ EXPECT_TRUE(!search->seek(15));
+ EXPECT_EQ(search->getDocId(), 20u);
+ EXPECT_TRUE(search->seek(20));
+ search->unpack(20);
+ EXPECT_TRUE(!search->seek(25));
+ EXPECT_TRUE(search->isAtEnd());
+ }
+ EXPECT_EQ(_data.seekCnt, 9u);
+ EXPECT_EQ(_data.unpackCnt, 2u);
+ EXPECT_EQ(_data.dtorCnt, 3u);
+}
+
+class FilterWrapperVerifier : public search::test::SearchIteratorVerifier {
+public:
+ ~FilterWrapperVerifier() {}
+ SearchIterator::UP create(bool strict) const override {
+ auto search = std::make_unique<FilterWrapper>(1);
+ search->wrap(createIterator(getExpectedDocIds(), strict));
+ return search;
+ }
+};
+
+TEST(FilterWrapperTest, adheres_to_search_iterator_requirements)
+{
+ FilterWrapperVerifier verifier;
+ verifier.verify();
+}
+
+class BooleanMatchIteratorWrapperVerifier : public search::test::SearchIteratorVerifier {
+public:
+ SearchIterator::UP create(bool strict) const override {
+ return std::make_unique<BooleanMatchIteratorWrapper>(createIterator(getExpectedDocIds(), strict), _tfmda);
+ }
+ ~BooleanMatchIteratorWrapperVerifier() {}
+private:
+ mutable TermFieldMatchDataArray _tfmda;
+};
+
+TEST(BooleanMatchIteratorWrapperWrapperTest, adheres_to_search_iterator_requirements)
+{
+ BooleanMatchIteratorWrapperVerifier verifier;
+ verifier.verify();
+}
+
+GTEST_MAIN_RUN_ALL_TESTS()