summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/common
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-08-22 19:41:04 +0200
committerHenning Baldersheim <balder@oath.com>2018-08-22 19:41:04 +0200
commitf50549ea6d85de718634ead271ea30e5000b862e (patch)
treec1d4b8ef95d962fbf8d59e8773fb391a87897561 /searchlib/src/tests/common
parent8679e520ae91268f9fd5345cd647b7819df93d01 (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.cpp73
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(); }