aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-01 16:27:19 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-04-01 16:27:19 +0200
commitc18de31348936a234a6096740e018ffeb92e6df9 (patch)
tree8096c81ed514fc089a40f58a08109dc4d38ede1b /vespajlib
parent06b999904e735420ad5d1a74ae551f88573d2657 (diff)
Verify serialization of various cell value types.
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/abi-spec.json1
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/TensorType.java8
-rw-r--r--vespajlib/src/test/java/com/yahoo/tensor/serialization/DenseBinaryFormatTestCase.java26
3 files changed, 31 insertions, 4 deletions
diff --git a/vespajlib/abi-spec.json b/vespajlib/abi-spec.json
index ccfe99119ee..239efa0f89c 100644
--- a/vespajlib/abi-spec.json
+++ b/vespajlib/abi-spec.json
@@ -1295,6 +1295,7 @@
],
"methods": [
"public final com.yahoo.tensor.TensorType$ValueType valueType()",
+ "public final com.yahoo.tensor.TensorType valueType(com.yahoo.tensor.TensorType$ValueType)",
"public static com.yahoo.tensor.TensorType fromSpec(java.lang.String)",
"public int rank()",
"public java.util.List dimensions()",
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/TensorType.java b/vespajlib/src/main/java/com/yahoo/tensor/TensorType.java
index d548b13601f..036f5e3ee5d 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/TensorType.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/TensorType.java
@@ -29,10 +29,16 @@ public class TensorType {
/** The empty tensor type - which is the same as a double */
public static final TensorType empty = new TensorType(ValueType.DOUBLE, Collections.emptyList());
- private final ValueType valueType;
+ private ValueType valueType;
public final ValueType valueType() { return valueType; }
+ //TODO Remove once value type is wired in were it should.
+ public final TensorType valueType(ValueType valueType) {
+ this.valueType = valueType;
+ return this;
+ }
+
/** Sorted list of the dimensions of this */
private final ImmutableList<Dimension> dimensions;
diff --git a/vespajlib/src/test/java/com/yahoo/tensor/serialization/DenseBinaryFormatTestCase.java b/vespajlib/src/test/java/com/yahoo/tensor/serialization/DenseBinaryFormatTestCase.java
index 4a975b83ec0..b248603082f 100644
--- a/vespajlib/src/test/java/com/yahoo/tensor/serialization/DenseBinaryFormatTestCase.java
+++ b/vespajlib/src/test/java/com/yahoo/tensor/serialization/DenseBinaryFormatTestCase.java
@@ -41,7 +41,7 @@ public class DenseBinaryFormatTestCase {
}
@Test
- public void requireThatSerializationFormatDoNotChange() {
+ public void requireThatDefaultSerializationFormatDoNotChange() {
byte[] encodedTensor = new byte[]{2, // binary format type
2, // dimension count
2, (byte) 'x', (byte) 'y', 2, // dimension xy with size
@@ -53,11 +53,31 @@ public class DenseBinaryFormatTestCase {
Arrays.toString(TypedBinaryFormat.encode(Tensor.from("tensor(xy[],z[]):{{xy:0,z:0}:2.0,{xy:1,z:0}:3.0}"))));
}
+ @Test
+ public void requireThatFloatSerializationFormatDoNotChange() {
+ byte[] encodedTensor = new byte[]{4, // binary format type
+ 1, // float type
+ 2, // dimension count
+ 2, (byte) 'x', (byte) 'y', 2, // dimension xy with size
+ 1, (byte) 'z', 1, // dimension z with size
+ 64, 0, 0, 0, // value 1
+ 64, 64, 0, 0, // value 2
+ };
+ Tensor tensor = Tensor.from("tensor(xy[],z[]):{{xy:0,z:0}:2.0,{xy:1,z:0}:3.0}");
+ tensor.type().valueType(TensorType.ValueType.FLOAT);
+ assertEquals(Arrays.toString(encodedTensor),
+ Arrays.toString(TypedBinaryFormat.encode(tensor)));
+ }
+
private void assertSerialization(String tensorString) {
- assertSerialization(Tensor.from(tensorString));
+ assertSerialization(TensorType.ValueType.DOUBLE, Tensor.from(tensorString));
+ }
+ private void assertSerialization(TensorType.ValueType valueType, String tensorString) {
+ assertSerialization(valueType, Tensor.from(tensorString));
}
- private void assertSerialization(Tensor tensor) {
+ private void assertSerialization(TensorType.ValueType valueType, Tensor tensor) {
+ tensor.type().valueType(valueType);
assertSerialization(tensor, tensor.type());
}