diff options
8 files changed, 85 insertions, 68 deletions
diff --git a/searchlib/src/tests/tensor/hnsw_index/CMakeLists.txt b/searchlib/src/tests/tensor/hnsw_index/CMakeLists.txt index a65d7071b5e..aec1d742700 100644 --- a/searchlib/src/tests/tensor/hnsw_index/CMakeLists.txt +++ b/searchlib/src/tests/tensor/hnsw_index/CMakeLists.txt @@ -3,6 +3,7 @@ vespa_add_executable(searchlib_hnsw_index_test_app TEST SOURCES hnsw_index_test.cpp DEPENDS + searchlib_test searchlib GTest::GTest ) 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 b86913caa16..13caad8b6d6 100644 --- a/searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp +++ b/searchlib/src/tests/tensor/hnsw_index/hnsw_index_test.cpp @@ -2,6 +2,8 @@ #include <vespa/eval/eval/value_type.h> #include <vespa/searchlib/common/bitvector.h> +#include <vespa/searchlib/test/vector_buffer_reader.h> +#include <vespa/searchlib/test/vector_buffer_writer.h> #include <vespa/searchlib/tensor/distance_functions.h> #include <vespa/searchlib/tensor/doc_vector_access.h> #include <vespa/searchlib/tensor/hnsw_index.h> @@ -11,7 +13,6 @@ #include <vespa/searchlib/tensor/inv_log_level_generator.h> #include <vespa/searchlib/tensor/subspace_type.h> #include <vespa/searchlib/tensor/vector_bundle.h> -#include <vespa/searchlib/util/bufferwriter.h> #include <vespa/searchlib/queryeval/global_filter.h> #include <vespa/vespalib/datastore/compaction_spec.h> #include <vespa/vespalib/datastore/compaction_strategy.h> @@ -36,39 +37,8 @@ using vespalib::eval::ValueType; using vespalib::datastore::CompactionSpec; using vespalib::datastore::CompactionStrategy; using search::queryeval::GlobalFilter; - -class VectorBufferWriter : public BufferWriter { -private: - char tmp[1024]; -public: - std::vector<char> output; - VectorBufferWriter() { - setup(tmp, 1024); - } - ~VectorBufferWriter() {} - void flush() override { - for (size_t i = 0; i < usedLen(); ++i) { - output.push_back(tmp[i]); - } - rewind(); - } -}; - -class VectorBufferReader { -private: - const std::vector<char>& _data; - size_t _pos; - -public: - VectorBufferReader(const std::vector<char>& data) : _data(data), _pos(0) {} - uint32_t readHostOrder() { - uint32_t result = 0; - assert(_pos + sizeof(uint32_t) <= _data.size()); - std::memcpy(&result, _data.data() + _pos, sizeof(uint32_t)); - _pos += sizeof(uint32_t); - return result; - } -}; +using search::test::VectorBufferReader; +using search::test::VectorBufferWriter; template <typename FloatType> class MyDocVectorAccess : public DocVectorAccess { diff --git a/searchlib/src/tests/tensor/hnsw_saver/CMakeLists.txt b/searchlib/src/tests/tensor/hnsw_saver/CMakeLists.txt index e603f890ac9..3e2be2dbb58 100644 --- a/searchlib/src/tests/tensor/hnsw_saver/CMakeLists.txt +++ b/searchlib/src/tests/tensor/hnsw_saver/CMakeLists.txt @@ -3,6 +3,7 @@ vespa_add_executable(searchlib_hnsw_save_load_test_app TEST SOURCES hnsw_save_load_test.cpp DEPENDS + searchlib_test searchlib GTest::GTest ) diff --git a/searchlib/src/tests/tensor/hnsw_saver/hnsw_save_load_test.cpp b/searchlib/src/tests/tensor/hnsw_saver/hnsw_save_load_test.cpp index e2a96ec059c..7495fa18c4d 100644 --- a/searchlib/src/tests/tensor/hnsw_saver/hnsw_save_load_test.cpp +++ b/searchlib/src/tests/tensor/hnsw_saver/hnsw_save_load_test.cpp @@ -3,7 +3,8 @@ #include <vespa/searchlib/tensor/hnsw_graph.h> #include <vespa/searchlib/tensor/hnsw_index_saver.h> #include <vespa/searchlib/tensor/hnsw_index_loader.hpp> -#include <vespa/searchlib/util/bufferwriter.h> +#include <vespa/searchlib/test/vector_buffer_reader.h> +#include <vespa/searchlib/test/vector_buffer_writer.h> #include <vespa/searchlib/util/fileutil.h> #include <vespa/vespalib/gtest/gtest.h> #include <vector> @@ -14,39 +15,8 @@ LOG_SETUP("hnsw_save_load_test"); using namespace search::tensor; using search::BufferWriter; using search::fileutil::LoadedBuffer; - -class VectorBufferWriter : public BufferWriter { -private: - char tmp[1024]; -public: - std::vector<char> output; - VectorBufferWriter() { - setup(tmp, 1024); - } - ~VectorBufferWriter() {} - void flush() override { - for (size_t i = 0; i < usedLen(); ++i) { - output.push_back(tmp[i]); - } - rewind(); - } -}; - -class VectorBufferReader { -private: - const std::vector<char>& _data; - size_t _pos; - -public: - VectorBufferReader(const std::vector<char>& data) : _data(data), _pos(0) {} - uint32_t readHostOrder() { - uint32_t result = 0; - assert(_pos + sizeof(uint32_t) <= _data.size()); - std::memcpy(&result, _data.data() + _pos, sizeof(uint32_t)); - _pos += sizeof(uint32_t); - return result; - } -}; +using search::test::VectorBufferReader; +using search::test::VectorBufferWriter; using V = std::vector<uint32_t>; diff --git a/searchlib/src/vespa/searchlib/test/CMakeLists.txt b/searchlib/src/vespa/searchlib/test/CMakeLists.txt index 7decdb992e6..ac8bcb240e0 100644 --- a/searchlib/src/vespa/searchlib/test/CMakeLists.txt +++ b/searchlib/src/vespa/searchlib/test/CMakeLists.txt @@ -12,6 +12,7 @@ vespa_add_library(searchlib_test searchiteratorverifier.cpp schema_builder.cpp string_field_builder.cpp + vector_buffer_writer.cpp $<TARGET_OBJECTS:searchlib_test_fakedata> $<TARGET_OBJECTS:searchlib_searchlib_test_diskindex> $<TARGET_OBJECTS:searchlib_test_gtest_migration> diff --git a/searchlib/src/vespa/searchlib/test/vector_buffer_reader.h b/searchlib/src/vespa/searchlib/test/vector_buffer_reader.h new file mode 100644 index 00000000000..b608e0c7259 --- /dev/null +++ b/searchlib/src/vespa/searchlib/test/vector_buffer_reader.h @@ -0,0 +1,29 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include <cassert> +#include <cstdint> +#include <cstring> +#include <vector> + +namespace search::test +{ + +class VectorBufferReader { +private: + const std::vector<char>& _data; + size_t _pos; + +public: + VectorBufferReader(const std::vector<char>& data) : _data(data), _pos(0) {} + uint32_t readHostOrder() { + uint32_t result = 0; + assert(_pos + sizeof(uint32_t) <= _data.size()); + std::memcpy(&result, _data.data() + _pos, sizeof(uint32_t)); + _pos += sizeof(uint32_t); + return result; + } +}; + +} diff --git a/searchlib/src/vespa/searchlib/test/vector_buffer_writer.cpp b/searchlib/src/vespa/searchlib/test/vector_buffer_writer.cpp new file mode 100644 index 00000000000..59c42840c37 --- /dev/null +++ b/searchlib/src/vespa/searchlib/test/vector_buffer_writer.cpp @@ -0,0 +1,24 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include "vector_buffer_writer.h" + +namespace search::test { + +VectorBufferWriter::VectorBufferWriter() + : BufferWriter() +{ + setup(tmp, 1024); +} + +VectorBufferWriter::~VectorBufferWriter() = default; + +void +VectorBufferWriter::flush() +{ + for (size_t i = 0; i < usedLen(); ++i) { + output.push_back(tmp[i]); + } + rewind(); +} + +} diff --git a/searchlib/src/vespa/searchlib/test/vector_buffer_writer.h b/searchlib/src/vespa/searchlib/test/vector_buffer_writer.h new file mode 100644 index 00000000000..22089e6d510 --- /dev/null +++ b/searchlib/src/vespa/searchlib/test/vector_buffer_writer.h @@ -0,0 +1,21 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include <vespa/searchlib/util/bufferwriter.h> +#include <vector> + +namespace search::test +{ + +class VectorBufferWriter : public BufferWriter { +private: + char tmp[1024]; +public: + std::vector<char> output; + VectorBufferWriter(); + ~VectorBufferWriter(); + void flush() override; +}; + +} |