diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-02-13 12:06:27 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-02-13 12:06:27 +0000 |
commit | f002c17001ef2cc9b7f89346cd52812c702af20a (patch) | |
tree | 8a8c75f22c48b807efbc0295cebbb35626a80666 /streamingvisitors | |
parent | 66744e0891dcc1681fe35b010503850977396ca5 (diff) |
Test that all hits are kept.
Diffstat (limited to 'streamingvisitors')
-rw-r--r-- | streamingvisitors/src/tests/hitcollector/hitcollector_test.cpp | 17 | ||||
-rw-r--r-- | streamingvisitors/src/vespa/searchvisitor/hitcollector.h | 3 |
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; /** |