blob: 498e5bcefea8264256ac539423d4c95f75777f72 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
#include <vector>
namespace search::tensor {
/**
* Represents a snapshot of a graph node with all its levels and links.
* Should only be used by unit tests.
*/
class HnswTestNode {
public:
using LinkArray = std::vector<uint32_t>;
using LevelArray = std::vector<LinkArray>;
private:
LevelArray _levels;
public:
HnswTestNode() : _levels() {}
HnswTestNode(const LinkArray& level_0) : _levels() { _levels.push_back(level_0); }
HnswTestNode(const LevelArray& levels_in) : _levels(levels_in) {}
bool empty() const { return _levels.empty(); }
size_t size() const { return _levels.size(); }
const LevelArray& levels() const { return _levels; }
const LinkArray& level(size_t idx) const { return _levels[idx]; }
bool operator==(const HnswTestNode& rhs) {
return _levels == rhs._levels;
}
};
}
|