summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2020-02-05 12:40:11 +0000
committerGeir Storli <geirst@verizonmedia.com>2020-02-05 14:45:40 +0000
commit6ccedd9cf7116e4b5b652bb72a9466ff3641d76a (patch)
tree4f43a88f064658cc9508ae26061307deacce77e4 /searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp
parentdafacc957b8809d7b003a5909a76c99c83e88cc0 (diff)
Add interface used to randomly draw the max level a new hnsw node should exist in.
Diffstat (limited to 'searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp')
-rw-r--r--searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp b/searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp
index 0fc5d7ca94f..4ff1aa95862 100644
--- a/searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp
+++ b/searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp
@@ -3,6 +3,7 @@
#include <vespa/eval/tensor/dense/typed_cells.h>
#include <vespa/searchlib/tensor/doc_vector_access.h>
#include <vespa/searchlib/tensor/hnsw_index.h>
+#include <vespa/searchlib/tensor/random_level_generator.h>
#include <vespa/vespalib/gtest/gtest.h>
#include <vector>
@@ -33,6 +34,10 @@ public:
}
};
+class LevelZeroGenerator : public RandomLevelGenerator {
+ uint32_t max_level() override { return 0; }
+};
+
using FloatVectors = MyDocVectorAccess<float>;
using FloatIndex = HnswIndex<float>;
using FloatIndexUP = std::unique_ptr<FloatIndex>;
@@ -40,10 +45,12 @@ using FloatIndexUP = std::unique_ptr<FloatIndex>;
class HnswIndexTest : public ::testing::Test {
public:
FloatVectors vectors;
+ LevelZeroGenerator level_generator;
FloatIndexUP index;
HnswIndexTest()
: vectors(),
+ level_generator(),
index()
{
vectors.set(1, {2, 2}).set(2, {3, 2}).set(3, {2, 3})
@@ -51,7 +58,8 @@ public:
.set(7, {3, 5});
}
void init(bool heuristic_select_neighbors) {
- index = std::make_unique<FloatIndex>(vectors, HnswIndexBase::Config(2, 0, 10, heuristic_select_neighbors));
+ index = std::make_unique<FloatIndex>(vectors, level_generator,
+ HnswIndexBase::Config(2, 0, 10, heuristic_select_neighbors));
}
void expect_level_0(uint32_t docid, const HnswNode::LinkArray& exp_links) {
auto node = index->get_node(docid);