aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-02-13 12:06:27 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2024-02-13 12:06:27 +0000
commitf002c17001ef2cc9b7f89346cd52812c702af20a (patch)
tree8a8c75f22c48b807efbc0295cebbb35626a80666 /streamingvisitors
parent66744e0891dcc1681fe35b010503850977396ca5 (diff)
Test that all hits are kept.
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp17
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/hitcollector.h3
2 files changed, 20 insertions, 0 deletions
diff --git a/streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp b/streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp
index 56c8b93052b..cc192225b79 100644
--- a/streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp
+++ b/streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp
@@ -124,6 +124,8 @@ TEST_F(HitCollectorTest, simple)
for (uint32_t i = 0; i < 5; ++i) {
addHit(hc, i, 10 + i);
}
+ EXPECT_EQ(5, hc.numHits());
+ EXPECT_EQ(5, hc.numHitsOnHeap());
// merge from match data heap and fill search result
for (size_t i = 0; i < 2; ++i) { // try it twice
SearchResult sr;
@@ -135,6 +137,8 @@ TEST_F(HitCollectorTest, simple)
assertHit(13, 3, sr);
assertHit(14, 4, sr);
}
+ EXPECT_EQ(5, hc.numHits());
+ EXPECT_EQ(5, hc.numHitsOnHeap());
}
TEST_F(HitCollectorTest, gaps_in_docid)
@@ -267,6 +271,19 @@ TEST_F(HitCollectorTest, empty)
ASSERT_TRUE(rs.getHitCount() == 0);
}
+TEST_F(HitCollectorTest, all_hits_are_kept)
+{
+ HitCollector hc(0, false);
+ EXPECT_EQ(0, hc.numHits());
+ EXPECT_EQ(0, hc.numHitsOnHeap());
+ addHit(hc, 0, 0);
+ EXPECT_EQ(1, hc.numHits());
+ EXPECT_EQ(0, hc.numHitsOnHeap());
+ SearchResult rs;
+ hc.fillSearchResult(rs);
+ ASSERT_TRUE(rs.getHitCount() == 0);
+}
+
class MyRankProgram : public HitCollector::IRankProgram
{
private:
diff --git a/streamingvisitors/src/vespa/searchvisitor/hitcollector.h b/streamingvisitors/src/vespa/searchvisitor/hitcollector.h
index 43ffbbe30c6..0a3a3ce3062 100644
--- a/streamingvisitors/src/vespa/searchvisitor/hitcollector.h
+++ b/streamingvisitors/src/vespa/searchvisitor/hitcollector.h
@@ -103,6 +103,9 @@ public:
HitCollector(size_t wantedHits, bool use_sort_blob);
~HitCollector() override;
+ size_t numHits() const noexcept { return _hits.size(); }
+ size_t numHitsOnHeap() const noexcept { return _heap.size(); }
+
const vsm::Document & getDocSum(const search::DocumentIdT & docId) const override;
/**