diff options
Diffstat (limited to 'searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp')
-rw-r--r-- | searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp b/searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp index 3bbb6cd334e..05e40200167 100644 --- a/searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp +++ b/searchlib/src/tests/tensor/tensor_buffer_store/tensor_buffer_store_test.cpp @@ -1,14 +1,15 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include <vespa/searchlib/tensor/tensor_buffer_store.h> -#include <vespa/eval/eval/simple_value.h> +#include <vespa/eval/eval/fast_value.h> #include <vespa/eval/eval/tensor_spec.h> #include <vespa/eval/eval/value.h> +#include <vespa/eval/eval/value_codec.h> #include <vespa/vespalib/gtest/gtest.h> using search::tensor::TensorBufferStore; using vespalib::datastore::EntryRef; -using vespalib::eval::SimpleValue; +using vespalib::eval::FastValueBuilderFactory; using vespalib::eval::TensorSpec; using vespalib::eval::Value; using vespalib::eval::ValueType; @@ -52,7 +53,7 @@ TensorBufferStoreTest::store_tensor(const Value& tensor) EntryRef TensorBufferStoreTest::store_tensor(const TensorSpec& spec) { - auto tensor = SimpleValue::from_spec(spec); + auto tensor = value_from_spec(spec, FastValueBuilderFactory::get()); return store_tensor(*tensor); } @@ -161,4 +162,22 @@ TEST_F(TensorBufferStoreTest, stored_tensor_can_be_encoded_and_stored_as_encoded } } +TEST_F(TensorBufferStoreTest, get_typed_cells) +{ + auto ref = store_tensor(tensor_specs.back()); + std::vector<double> values; + for (uint32_t subspace = 0; subspace < 4; ++subspace) { + auto cells = _store.get_typed_cells(ref, subspace).typify<double>(); + EXPECT_EQ(1, cells.size()); + values.emplace_back(cells[0]); + } + EXPECT_EQ((std::vector<double>{4.5, 5.5, 6.5, 7.5}), values); + for (auto tref : { ref, EntryRef() }) { + auto subspace = tref.valid() ? 4 : 0; + auto cells = _store.get_typed_cells(tref, subspace).typify<double>(); + EXPECT_EQ(1, cells.size()); + EXPECT_EQ(0.0, cells[0]); + } +} + GTEST_MAIN_RUN_ALL_TESTS() |