summaryrefslogtreecommitdiffstats
path: root/document/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'document/src/tests')
-rw-r--r--document/src/tests/documentupdatetestcase.cpp18
-rw-r--r--document/src/tests/serialization/vespadocumentserializer_test.cpp40
-rw-r--r--document/src/tests/tensor_fieldvalue/tensor_fieldvalue_test.cpp23
3 files changed, 39 insertions, 42 deletions
diff --git a/document/src/tests/documentupdatetestcase.cpp b/document/src/tests/documentupdatetestcase.cpp
index 9d2567e93ed..ca519a2f7d0 100644
--- a/document/src/tests/documentupdatetestcase.cpp
+++ b/document/src/tests/documentupdatetestcase.cpp
@@ -21,8 +21,9 @@
#include <vespa/document/update/tensor_remove_update.h>
#include <vespa/document/update/valueupdate.h>
#include <vespa/document/util/bytebuffer.h>
-#include <vespa/eval/tensor/default_tensor_engine.h>
-#include <vespa/eval/tensor/tensor.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/objects/nbostream.h>
#include <vespa/vespalib/util/exception.h>
#include <vespa/vespalib/util/exceptions.h>
@@ -33,10 +34,10 @@
#include <unistd.h>
using namespace document::config_builder;
+
using vespalib::eval::TensorSpec;
using vespalib::eval::ValueType;
-using vespalib::tensor::DefaultTensorEngine;
-using vespalib::tensor::Tensor;
+using vespalib::eval::EngineOrFactory;
using vespalib::nbostream;
namespace document {
@@ -771,11 +772,12 @@ TEST(DocumentUpdateTest, testMapValueUpdate)
EXPECT_EQ(fv4->find(StringFieldValue("apple")), fv4->end());
}
-std::unique_ptr<Tensor>
+std::unique_ptr<vespalib::eval::Value>
makeTensor(const TensorSpec &spec)
{
- auto result = DefaultTensorEngine::ref().from_spec(spec);
- return std::unique_ptr<Tensor>(dynamic_cast<Tensor*>(result.release()));
+ auto result = EngineOrFactory::get().from_spec(spec);
+ EXPECT_TRUE(result->is_tensor());
+ return result;
}
std::unique_ptr<TensorFieldValue>
@@ -787,7 +789,7 @@ makeTensorFieldValue(const TensorSpec &spec, const TensorDataType &dataType)
return result;
}
-const Tensor &asTensor(const FieldValue &fieldValue) {
+const vespalib::eval::Value &asTensor(const FieldValue &fieldValue) {
auto &tensorFieldValue = dynamic_cast<const TensorFieldValue &>(fieldValue);
auto tensor = tensorFieldValue.getAsTensorPtr();
assert(tensor);
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 {
diff --git a/document/src/tests/tensor_fieldvalue/tensor_fieldvalue_test.cpp b/document/src/tests/tensor_fieldvalue/tensor_fieldvalue_test.cpp
index 9d2da9c983a..18afdb15bb8 100644
--- a/document/src/tests/tensor_fieldvalue/tensor_fieldvalue_test.cpp
+++ b/document/src/tests/tensor_fieldvalue/tensor_fieldvalue_test.cpp
@@ -7,9 +7,8 @@ LOG_SETUP("fieldvalue_test");
#include <vespa/document/base/exceptions.h>
#include <vespa/document/datatype/tensor_data_type.h>
#include <vespa/document/fieldvalue/tensorfieldvalue.h>
-#include <vespa/eval/tensor/tensor.h>
-#include <vespa/eval/tensor/types.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/tensor/test/test_utils.h>
#include <vespa/vespalib/testkit/testapp.h>
@@ -18,7 +17,7 @@ using namespace document;
using namespace vespalib::tensor;
using vespalib::eval::TensorSpec;
using vespalib::eval::ValueType;
-using vespalib::tensor::DefaultTensorEngine;
+using vespalib::eval::EngineOrFactory;
using vespalib::tensor::test::makeTensor;
namespace
@@ -27,19 +26,17 @@ namespace
TensorDataType xSparseTensorDataType(ValueType::from_spec("tensor(x{})"));
TensorDataType xySparseTensorDataType(ValueType::from_spec("tensor(x{},y{})"));
-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;
}
-std::unique_ptr<Tensor>
+std::unique_ptr<vespalib::eval::Value>
makeSimpleTensor()
{
- return makeTensor<Tensor>(TensorSpec("tensor(x{},y{})").
- add({{"x", "4"}, {"y", "5"}}, 7));
+ return makeTensor<vespalib::eval::Value>(TensorSpec("tensor(x{},y{})").
+ add({{"x", "4"}, {"y", "5"}}, 7));
}
FieldValue::UP clone(FieldValue &fv) {