diff options
author | Henning Baldersheim <balder@oath.com> | 2018-08-22 19:41:04 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-08-22 19:41:04 +0200 |
commit | f50549ea6d85de718634ead271ea30e5000b862e (patch) | |
tree | c1d4b8ef95d962fbf8d59e8773fb391a87897561 /searchlib/src/tests/common | |
parent | 8679e520ae91268f9fd5345cd647b7819df93d01 (diff) |
Avoid depending of ResultSet. Use more simpler types. Also remove some unused code and hide some implementation details.
Diffstat (limited to 'searchlib/src/tests/common')
-rw-r--r-- | searchlib/src/tests/common/resultset/resultset_test.cpp | 73 |
1 files changed, 2 insertions, 71 deletions
diff --git a/searchlib/src/tests/common/resultset/resultset_test.cpp b/searchlib/src/tests/common/resultset/resultset_test.cpp index 21a54c96f40..d0513333ba6 100644 --- a/searchlib/src/tests/common/resultset/resultset_test.cpp +++ b/searchlib/src/tests/common/resultset/resultset_test.cpp @@ -14,44 +14,13 @@ using vespalib::arraysize; namespace { -void concatenate(const ResultSet *input_array[], size_t array_size, - ResultSet &output) -{ - size_t hit_count = 0; - for (size_t i = 0; i < array_size; ++i) { - hit_count += input_array[i]->getArrayUsed(); - } - output.allocArray(hit_count); - RankedHit *p = output.getArray(); - for (size_t i = 0; i < array_size; ++i) { - const ResultSet &set = *input_array[i]; - memcpy(p, set.getArray(), set.getArrayUsed() * sizeof(RankedHit)); - p += set.getArrayUsed(); - if (set.getBitOverflow()) { - if (output.getBitOverflow()) { - output.getBitOverflow()->orWith(*set.getBitOverflow()); - } else { - output.setBitOverflow(BitVector::create(*set.getBitOverflow())); - } - } - } - output.setArrayUsed(hit_count); -} - - void addHit(ResultSet &set, unsigned int doc_id, double rank) { - if (set.getArrayAllocated() == 0) { - set.allocArray(10); - } - ASSERT_LESS(set.getArrayUsed(), set.getArrayAllocated()); - RankedHit *hit_array = set.getArray(); - hit_array[set.getArrayUsed()]._docId = doc_id; - hit_array[set.getArrayUsed()]._rankValue = rank; - set.setArrayUsed(set.getArrayUsed() + 1); + set.push_back(RankedHit(doc_id, rank)); } TEST("require that mergeWithOverflow works") { ResultSet set1; + set1.allocArray(10); addHit(set1, 2, 4.2); addHit(set1, 4, 3.2); BitVector::UP bit_vector = BitVector::create(20); @@ -65,44 +34,6 @@ TEST("require that mergeWithOverflow works") { EXPECT_EQUAL(3u, set1.getNumHits()); } -TEST("require that resultsets can be concatenated") { - ResultSet set1; - addHit(set1, 2, 4.2); - addHit(set1, 4, 3.2); - BitVector::UP bit_vector = BitVector::create(20); - bit_vector->setBit(7); - set1.setBitOverflow(std::move(bit_vector)); - - ResultSet set2; - addHit(set2, 12, 4.2); - addHit(set2, 14, 3.2); - bit_vector = BitVector::create(20); - bit_vector->setBit(17); - set2.setBitOverflow(std::move(bit_vector)); - - const ResultSet *sets[] = { &set1, &set2 }; - ResultSet target; - concatenate(sets, arraysize(sets), target); - - EXPECT_EQUAL(4u, target.getArrayAllocated()); - ASSERT_EQUAL(4u, target.getArrayUsed()); - EXPECT_EQUAL(2u, target.getArray()[0]._docId); - EXPECT_EQUAL(4.2, target.getArray()[0]._rankValue); - EXPECT_EQUAL(4u, target.getArray()[1]._docId); - EXPECT_EQUAL(3.2, target.getArray()[1]._rankValue); - EXPECT_EQUAL(12u, target.getArray()[2]._docId); - EXPECT_EQUAL(4.2, target.getArray()[2]._rankValue); - EXPECT_EQUAL(14u, target.getArray()[3]._docId); - EXPECT_EQUAL(3.2, target.getArray()[3]._rankValue); - - BitVector * bv = target.getBitOverflow(); - ASSERT_TRUE(bv); - EXPECT_EQUAL(20u, bv->size()); - EXPECT_EQUAL(7u, bv->getNextTrueBit(0)); - EXPECT_EQUAL(17u, bv->getNextTrueBit(8)); - EXPECT_EQUAL(20u, bv->getNextTrueBit(18)); -} - } // namespace TEST_MAIN() { TEST_RUN_ALL(); } |