summaryrefslogtreecommitdiffstats
path: root/document/src/tests/serialization/vespadocumentserializer_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'document/src/tests/serialization/vespadocumentserializer_test.cpp')
-rw-r--r--document/src/tests/serialization/vespadocumentserializer_test.cpp54
1 files changed, 27 insertions, 27 deletions
diff --git a/document/src/tests/serialization/vespadocumentserializer_test.cpp b/document/src/tests/serialization/vespadocumentserializer_test.cpp
index c573eef6147..4b5c3e6f195 100644
--- a/document/src/tests/serialization/vespadocumentserializer_test.cpp
+++ b/document/src/tests/serialization/vespadocumentserializer_test.cpp
@@ -40,8 +40,7 @@
#include <vespa/eval/tensor/types.h>
#include <vespa/eval/tensor/tensor_builder.h>
#include <vespa/eval/tensor/tensor.h>
-#include <vespa/eval/tensor/default_tensor.h>
-#include <vespa/eval/tensor/tensor_factory.h>
+#include <vespa/eval/tensor/default_tensor_engine.h>
#include <vespa/vespalib/io/fileutil.h>
#include <vespa/vespalib/objects/nbostream.h>
#include <vespa/vespalib/testkit/testapp.h>
@@ -53,10 +52,9 @@ using vespalib::Slime;
using vespalib::nbostream;
using vespalib::nbostream_longlivedbuf;
using vespalib::slime::Cursor;
+using vespalib::eval::TensorSpec;
using vespalib::tensor::Tensor;
-using vespalib::tensor::TensorBuilder;
-using vespalib::tensor::TensorCells;
-using vespalib::tensor::TensorDimensions;
+using vespalib::tensor::DefaultTensorEngine;
using vespalib::compression::CompressionConfig;
using namespace document;
using std::string;
@@ -828,13 +826,14 @@ TEST("Require that predicate deserialization matches Java") {
namespace
{
-Tensor::UP
-createTensor(const TensorCells &cells, const TensorDimensions &dimensions) {
- vespalib::tensor::DefaultTensor::builder builder;
- return vespalib::tensor::TensorFactory::create(cells, dimensions, builder);
+Tensor::UP createTensor(const TensorSpec &spec) {
+ auto value = DefaultTensorEngine::ref().from_spec(spec);
+ Tensor *tensor = dynamic_cast<Tensor*>(value.get());
+ ASSERT_TRUE(tensor != nullptr);
+ value.release();
+ return Tensor::UP(tensor);
}
-
}
TEST("Require that tensors can be serialized")
@@ -846,12 +845,12 @@ TEST("Require that tensors can be serialized")
nbostream stream;
serializeAndDeserialize(noTensorValue, stream);
stream.clear();
- emptyTensorValue = createTensor({}, {"x", "y"});
+ emptyTensorValue = createTensor(TensorSpec("tensor(x{},y{})"));
serializeAndDeserialize(emptyTensorValue, stream);
stream.clear();
- twoCellsTwoDimsValue = createTensor({ {{{"y", "3"}}, 3},
- {{{"x", "4"}, {"y", "5"}}, 7} },
- {"x", "y"});
+ twoCellsTwoDimsValue = createTensor(TensorSpec("tensor(x{},y{})")
+ .add({{"x", ""}, {"y", "3"}}, 3)
+ .add({{"x", "4"}, {"y", "5"}}, 7));
serializeAndDeserialize(twoCellsTwoDimsValue, stream);
EXPECT_NOT_EQUAL(noTensorValue, emptyTensorValue);
EXPECT_NOT_EQUAL(noTensorValue, twoCellsTwoDimsValue);
@@ -859,6 +858,7 @@ TEST("Require that tensors can be serialized")
}
+
const int tensor_doc_type_id = 321;
const string tensor_field_name = "my_tensor";
@@ -904,15 +904,15 @@ void checkDeserialization(const string &name, std::unique_ptr<Tensor> tensor) {
deserializeAndCheck(data_dir + name + "__java", value);
}
+
TEST("Require that tensor deserialization matches Java") {
checkDeserialization("non_existing_tensor", std::unique_ptr<Tensor>());
- checkDeserialization("empty_tensor", createTensor({}, {"dimX", "dimY"}));
+ checkDeserialization("empty_tensor", createTensor(TensorSpec("tensor(dimX{},dimY{})")));
checkDeserialization("multi_cell_tensor",
- createTensor({ {{{"dimX", "a"}, {"dimY", "bb"}}, 2.0 },
- {{{"dimX", "ccc"},
- {"dimY", "dddd"}}, 3.0},
- {{{"dimX", "e"},{"dimY","ff"}}, 5.0} },
- { "dimX", "dimY" }));
+ createTensor(TensorSpec("tensor(dimX{},dimY{})")
+ .add({{"dimX", "a"}, {"dimY", "bb"}}, 2.0)
+ .add({{"dimX", "ccc"}, {"dimY", "dddd"}}, 3.0)
+ .add({{"dimX", "e"}, {"dimY", "ff"}}, 5.0)));
}
struct TensorDocFixture {
@@ -980,14 +980,14 @@ DeserializedTensorDoc::getTensor() const
TEST("Require that wrong tensor type hides tensor")
{
TensorDocFixture f(tensor_doc_repo,
- createTensor({ {{{"dimX", "a"},{"dimY", "bb"}}, 2.0 },
- {{{"dimX", "ccc"},{"dimY", "dddd"}}, 3.0},
- {{{"dimX", "e"},{"dimY","ff"}}, 5.0} },
- { "dimX", "dimY" }));
+ createTensor(TensorSpec("tensor(dimX{},dimY{})")
+ .add({{"dimX", "a"}, {"dimY", "bb"}}, 2.0)
+ .add({{"dimX", "ccc"}, {"dimY", "dddd"}}, 3.0)
+ .add({{"dimX", "e"}, {"dimY", "ff"}}, 5.0)));
TensorDocFixture f1(tensor_doc_repo1,
- createTensor({ {{{"dimX", "a"}}, 20.0 },
- {{{"dimX", "ccc"}}, 30.0} },
- { "dimX" }));
+ createTensor(TensorSpec("tensor(dimX{})")
+ .add({{"dimX", "a"}}, 20.0)
+ .add({{"dimX", "ccc"}}, 30.0)));
DeserializedTensorDoc doc;
doc.setup(tensor_doc_repo, f._blob);
EXPECT_TRUE(doc.getTensor() != nullptr);