diff options
Diffstat (limited to 'searchlib/src/tests/attribute/raw_buffer_type_mapper/raw_buffer_type_mapper_test.cpp')
-rw-r--r-- | searchlib/src/tests/attribute/raw_buffer_type_mapper/raw_buffer_type_mapper_test.cpp | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/searchlib/src/tests/attribute/raw_buffer_type_mapper/raw_buffer_type_mapper_test.cpp b/searchlib/src/tests/attribute/raw_buffer_type_mapper/raw_buffer_type_mapper_test.cpp deleted file mode 100644 index 74ec839670e..00000000000 --- a/searchlib/src/tests/attribute/raw_buffer_type_mapper/raw_buffer_type_mapper_test.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include <vespa/searchlib/attribute/raw_buffer_type_mapper.h> -#include <vespa/vespalib/gtest/gtest.h> - -using search::attribute::RawBufferTypeMapper; - -constexpr double default_grow_factor = 1.03; - -class RawBufferTypeMapperTest : public testing::Test -{ -protected: - RawBufferTypeMapper _mapper; - RawBufferTypeMapperTest(); - ~RawBufferTypeMapperTest() override; - std::vector<size_t> get_array_sizes(uint32_t num_array_sizes); - std::vector<size_t> get_large_array_sizes(uint32_t num_large_arrays); - void select_type_ids(std::vector<size_t> array_sizes); - void setup_mapper(uint32_t max_small_buffer_type_id, double grow_factor); - static uint32_t calc_max_small_array_type_id(double grow_factor); -}; - -RawBufferTypeMapperTest::RawBufferTypeMapperTest() - : testing::Test(), - _mapper(5, default_grow_factor) -{ -} - -RawBufferTypeMapperTest::~RawBufferTypeMapperTest() = default; - -void -RawBufferTypeMapperTest::setup_mapper(uint32_t max_small_buffer_type_id, double grow_factor) -{ - _mapper = RawBufferTypeMapper(max_small_buffer_type_id, grow_factor); -} - -std::vector<size_t> -RawBufferTypeMapperTest::get_array_sizes(uint32_t num_array_sizes) -{ - std::vector<size_t> array_sizes; - for (uint32_t type_id = 1; type_id <= num_array_sizes; ++type_id) { - array_sizes.emplace_back(_mapper.get_array_size(type_id)); - } - return array_sizes; -} - -std::vector<size_t> -RawBufferTypeMapperTest::get_large_array_sizes(uint32_t num_large_array_sizes) -{ - setup_mapper(num_large_array_sizes * 100, default_grow_factor); - std::vector<size_t> result; - for (uint32_t i = 0; i < num_large_array_sizes; ++i) { - uint32_t type_id = (i + 1) * 100; - auto array_size = _mapper.get_array_size(type_id); - result.emplace_back(array_size); - EXPECT_EQ(type_id, _mapper.get_type_id(array_size)); - EXPECT_EQ(type_id, _mapper.get_type_id(array_size - 1)); - if (i + 1 == num_large_array_sizes) { - EXPECT_EQ(0u, _mapper.get_type_id(array_size + 1)); - } else { - EXPECT_EQ(type_id + 1, _mapper.get_type_id(array_size + 1)); - } - } - return result; -} - -void -RawBufferTypeMapperTest::select_type_ids(std::vector<size_t> array_sizes) -{ - uint32_t type_id = 0; - for (auto array_size : array_sizes) { - ++type_id; - EXPECT_EQ(type_id, _mapper.get_type_id(array_size)); - EXPECT_EQ(type_id, _mapper.get_type_id(array_size - 1)); - if (array_size == array_sizes.back()) { - // Fallback to indirect storage, using type id 0 - EXPECT_EQ(0u, _mapper.get_type_id(array_size + 1)); - } else { - EXPECT_EQ(type_id + 1, _mapper.get_type_id(array_size + 1)); - } - } -} - -uint32_t -RawBufferTypeMapperTest::calc_max_small_array_type_id(double grow_factor) -{ - RawBufferTypeMapper mapper(1000, grow_factor); - return mapper.get_max_small_array_type_id(1000); -} - -TEST_F(RawBufferTypeMapperTest, array_sizes_are_calculated) -{ - EXPECT_EQ((std::vector<size_t>{8, 12, 16, 20, 24}), get_array_sizes(5)); -} - -TEST_F(RawBufferTypeMapperTest, type_ids_are_selected) -{ - select_type_ids({8, 12, 16, 20, 24}); -} - -TEST_F(RawBufferTypeMapperTest, large_arrays_grows_exponentially) -{ - EXPECT_EQ((std::vector<size_t>{1148, 22796, 438572, 8429384}), get_large_array_sizes(4)); -} - -TEST_F(RawBufferTypeMapperTest, avoid_array_size_overflow) -{ - EXPECT_EQ(29, calc_max_small_array_type_id(2.0)); - EXPECT_EQ(379, calc_max_small_array_type_id(1.05)); - EXPECT_EQ(468, calc_max_small_array_type_id(1.04)); - EXPECT_EQ(610, calc_max_small_array_type_id(1.03)); - EXPECT_EQ(892, calc_max_small_array_type_id(1.02)); -} - -GTEST_MAIN_RUN_ALL_TESTS() |