aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-12-18 21:34:13 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2018-12-18 21:34:13 +0000
commit267c8909dedff7dd4beb2b8cd5867f639582d6d1 (patch)
treec4a4659b7fe7c03447404f80b043b31bb5040185 /searchlib/src/tests/attribute/bitvector/bitvector_test.cpp
parentf3c9e8af1ef5086057f929342528ef4f793ecf31 (diff)
Add test for inverted bitvector iterator.
Diffstat (limited to 'searchlib/src/tests/attribute/bitvector/bitvector_test.cpp')
-rw-r--r--searchlib/src/tests/attribute/bitvector/bitvector_test.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp b/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp
index c00ab1270e3..abc9d3aa975 100644
--- a/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp
+++ b/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp
@@ -612,30 +612,47 @@ TEST_F("Test bitvectors with weighted set value string", BitVectorTest)
class Verifier : public search::test::SearchIteratorVerifier {
public:
- Verifier();
+ Verifier(bool inverted);
~Verifier();
SearchIterator::UP create(bool strict) const override {
- return BitVectorIterator::create(_bv.get(), getDocIdLimit(), _tfmd, strict);
+ return _inverted
+ ? BitVectorIterator::createInverse(_bv.get(), getDocIdLimit(), _tfmd, strict)
+ : BitVectorIterator::create(_bv.get(), getDocIdLimit(), _tfmd, strict);
}
private:
+ bool _inverted;
mutable TermFieldMatchData _tfmd;
BitVector::UP _bv;
};
-Verifier::Verifier()
- : _bv(BitVector::create(getDocIdLimit()))
+Verifier::Verifier(bool inverted)
+ : _inverted(inverted),
+ _bv(BitVector::create(getDocIdLimit()))
{
+ if (inverted) {
+ _bv->setInterval(0, getDocIdLimit());
+ }
for (uint32_t docId: getExpectedDocIds()) {
- _bv->setBit(docId);
+ if (inverted) {
+ _bv->clearBit(docId);
+ } else {
+ _bv->setBit(docId);
+ }
}
}
-Verifier::~Verifier() {}
+Verifier::~Verifier() = default;
TEST("Test that bitvector iterators adheres to SearchIterator requirements") {
- Verifier searchIteratorVerifier;
- searchIteratorVerifier.verify();
+ {
+ Verifier searchIteratorVerifier(false);
+ searchIteratorVerifier.verify();
+ }
+ {
+ Verifier searchIteratorVerifier(true);
+ searchIteratorVerifier.verify();
+ }
}