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.cpp40
1 files changed, 19 insertions, 21 deletions
diff --git a/document/src/tests/serialization/vespadocumentserializer_test.cpp b/document/src/tests/serialization/vespadocumentserializer_test.cpp
index 02f170cd5f1..13d5e7d8405 100644
--- a/document/src/tests/serialization/vespadocumentserializer_test.cpp
+++ b/document/src/tests/serialization/vespadocumentserializer_test.cpp
@@ -36,8 +36,9 @@
#include <vespa/document/serialization/vespadocumentdeserializer.h>
#include <vespa/document/serialization/vespadocumentserializer.h>
#include <vespa/document/serialization/annotationserializer.h>
-#include <vespa/eval/tensor/tensor.h>
-#include <vespa/eval/tensor/default_tensor_engine.h>
+#include <vespa/eval/eval/engine_or_factory.h>
+#include <vespa/eval/eval/value.h>
+#include <vespa/eval/eval/test/value_compare.h>
#include <vespa/vespalib/io/fileutil.h>
#include <vespa/vespalib/objects/nbostream.h>
#include <vespa/vespalib/testkit/testapp.h>
@@ -50,8 +51,7 @@ using vespalib::nbostream;
using vespalib::nbostream_longlivedbuf;
using vespalib::slime::Cursor;
using vespalib::eval::TensorSpec;
-using vespalib::tensor::Tensor;
-using vespalib::tensor::DefaultTensorEngine;
+using vespalib::eval::EngineOrFactory;
using vespalib::compression::CompressionConfig;
using namespace document;
using std::string;
@@ -771,12 +771,10 @@ TEST("Require that predicate deserialization matches Java") {
namespace
{
-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);
+vespalib::eval::Value::UP createTensor(const TensorSpec &spec) {
+ auto value = EngineOrFactory::get().from_spec(spec);
+ ASSERT_TRUE(value->is_tensor());
+ return value;
}
}
@@ -836,13 +834,13 @@ void deserializeAndCheck(const string &file_name, TensorFieldValue &value) {
deserializeAndCheck(file_name, value, tensor_repo, tensor_field_name);
}
-void checkDeserialization(const string &name, std::unique_ptr<Tensor> tensor) {
+void checkDeserialization(const string &name, std::unique_ptr<vespalib::eval::Value> tensor) {
const string data_dir = TEST_PATH("../../test/resources/tensor/");
TensorDataType valueType(tensor ? tensor->type() : vespalib::eval::ValueType::error_type());
TensorFieldValue value(valueType);
if (tensor) {
- value = tensor->clone();
+ value = EngineOrFactory::get().copy(*tensor);
}
serializeToFile(value, data_dir + name + "__cpp");
deserializeAndCheck(data_dir + name + "__cpp", value);
@@ -851,7 +849,7 @@ void checkDeserialization(const string &name, std::unique_ptr<Tensor> tensor) {
TEST("Require that tensor deserialization matches Java") {
- checkDeserialization("non_existing_tensor", std::unique_ptr<Tensor>());
+ checkDeserialization("non_existing_tensor", std::unique_ptr<vespalib::eval::Value>());
checkDeserialization("empty_tensor", createTensor(TensorSpec("tensor(dimX{},dimY{})")));
checkDeserialization("multi_cell_tensor",
createTensor(TensorSpec("tensor(dimX{},dimY{})")
@@ -863,17 +861,17 @@ TEST("Require that tensor deserialization matches Java") {
struct TensorDocFixture {
const DocumentTypeRepo &_docTypeRepo;
const DocumentType *_docType;
- std::unique_ptr<Tensor> _tensor;
+ std::unique_ptr<vespalib::eval::Value> _tensor;
Document _doc;
vespalib::nbostream _blob;
TensorDocFixture(const DocumentTypeRepo &docTypeRepo,
- std::unique_ptr<Tensor> tensor);
+ std::unique_ptr<vespalib::eval::Value> tensor);
~TensorDocFixture();
};
TensorDocFixture::TensorDocFixture(const DocumentTypeRepo &docTypeRepo,
- std::unique_ptr<Tensor> tensor)
+ std::unique_ptr<vespalib::eval::Value> tensor)
: _docTypeRepo(docTypeRepo),
_docType(_docTypeRepo.getDocumentType(tensor_doc_type_id)),
_tensor(std::move(tensor)),
@@ -881,7 +879,7 @@ TensorDocFixture::TensorDocFixture(const DocumentTypeRepo &docTypeRepo,
_blob()
{
auto fv = _doc.getField(tensor_field_name).createValue();
- dynamic_cast<TensorFieldValue &>(*fv) = _tensor->clone();
+ dynamic_cast<TensorFieldValue &>(*fv) = EngineOrFactory::get().copy(*_tensor);
_doc.setValue(tensor_field_name, *fv);
_doc.serialize(_blob);
}
@@ -897,7 +895,7 @@ struct DeserializedTensorDoc
~DeserializedTensorDoc();
void setup(const DocumentTypeRepo &docTypeRepo, const vespalib::nbostream &blob);
- const Tensor *getTensor() const;
+ const vespalib::eval::Value *getTensor() const;
};
DeserializedTensorDoc::DeserializedTensorDoc()
@@ -916,7 +914,7 @@ DeserializedTensorDoc::setup(const DocumentTypeRepo &docTypeRepo, const vespalib
_fieldValue = _doc->getValue(tensor_field_name);
}
-const Tensor *
+const vespalib::eval::Value *
DeserializedTensorDoc::getTensor() const
{
return dynamic_cast<const TensorFieldValue &>(*_fieldValue).getAsTensorPtr();
@@ -936,14 +934,14 @@ TEST("Require that wrong tensor type hides tensor")
DeserializedTensorDoc doc;
doc.setup(tensor_doc_repo, f._blob);
EXPECT_TRUE(doc.getTensor() != nullptr);
- EXPECT_TRUE(doc.getTensor()->equals(*f._tensor));
+ EXPECT_TRUE((*doc.getTensor()) == (*f._tensor));
doc.setup(tensor_doc_repo, f1._blob);
EXPECT_TRUE(doc.getTensor() == nullptr);
doc.setup(tensor_doc_repo1, f._blob);
EXPECT_TRUE(doc.getTensor() == nullptr);
doc.setup(tensor_doc_repo1, f1._blob);
EXPECT_TRUE(doc.getTensor() != nullptr);
- EXPECT_TRUE(doc.getTensor()->equals(*f1._tensor));
+ EXPECT_TRUE((*doc.getTensor()) == (*f1._tensor));
}
struct RefFixture {