summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-02-05 10:31:48 +0000
committerArne Juul <arnej@verizonmedia.com>2021-02-05 10:31:48 +0000
commit4e982b2a0a7b0652554ead03b7bf9d8ff85b5778 (patch)
treedff0b854bf46e3db94fab10392f3e8bf0d3ad89d /document
parent4bcef4ebd8133c5be2bb6062a4ae76bfec565dea (diff)
add unit testing of lazy deserialization
Diffstat (limited to 'document')
-rw-r--r--document/src/test/java/com/yahoo/document/datatypes/TensorFieldValueTestCase.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/document/src/test/java/com/yahoo/document/datatypes/TensorFieldValueTestCase.java b/document/src/test/java/com/yahoo/document/datatypes/TensorFieldValueTestCase.java
index 9a89da75cd0..56a4c6c9e94 100644
--- a/document/src/test/java/com/yahoo/document/datatypes/TensorFieldValueTestCase.java
+++ b/document/src/test/java/com/yahoo/document/datatypes/TensorFieldValueTestCase.java
@@ -4,6 +4,7 @@ package com.yahoo.document.datatypes;
import com.yahoo.tensor.Tensor;
import com.yahoo.tensor.TensorType;
import org.junit.Test;
+import java.util.Optional;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -56,4 +57,47 @@ public class TensorFieldValueTestCase {
TensorFieldValue field2 = new TensorFieldValue(TensorType.fromSpec("tensor(x{})"));
assertEquals("null", field2.toString());
}
+
+ @Test
+ public void requireThatSerializationHappens() {
+ TensorFieldValue orig = createFieldValue("{{x:0}:2.0}");
+ assertEquals("tensor(x{}):{0:2.0}", orig.toString());
+ assertTrue(orig.getWrappedValue() != null);
+ Optional<byte[]> serializedBytes = orig.getSerializedTensor();
+ assertTrue(serializedBytes.isPresent());
+ Optional<byte[]> otherSerialized = orig.getSerializedTensor();
+ assertTrue(otherSerialized.isPresent());
+ assertTrue(serializedBytes.get() == otherSerialized.get());
+
+ TensorFieldValue copy = new TensorFieldValue();
+ assertTrue(copy.getSerializedTensor().isEmpty());
+ copy.assignSerializedTensor(serializedBytes.get());
+ assertFalse(copy.getSerializedTensor().isEmpty());
+ otherSerialized = copy.getSerializedTensor();
+ assertTrue(serializedBytes.get() == otherSerialized.get());
+
+ copy = new TensorFieldValue();
+ assertTrue(copy.getTensorType().isEmpty());
+ copy.assignSerializedTensor(serializedBytes.get());
+ assertFalse(copy.getTensorType().isEmpty());
+ assertEquals(copy.getTensorType().get(), orig.getTensorType().get());
+
+ copy = new TensorFieldValue();
+ assertTrue(copy.getTensor().isEmpty());
+ copy.assignSerializedTensor(serializedBytes.get());
+ assertFalse(copy.getTensor().isEmpty());
+
+ copy = new TensorFieldValue();
+ assertTrue(copy.getTensor().isEmpty());
+ copy.assignSerializedTensor(serializedBytes.get());
+ assertFalse(copy.getTensor().isEmpty());
+ assertEquals(copy.getTensor().get(), orig.getTensor().get());
+
+ copy = new TensorFieldValue();
+ assertTrue(copy.getWrappedValue() == null);
+ copy.assignSerializedTensor(serializedBytes.get());
+ assertFalse(copy.getWrappedValue() == null);
+ assertEquals(copy.getWrappedValue(), orig.getWrappedValue());
+ }
+
}