summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/test/java/com/yahoo/tensor/serialization/JsonFormatTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/test/java/com/yahoo/tensor/serialization/JsonFormatTestCase.java')
-rw-r--r--vespajlib/src/test/java/com/yahoo/tensor/serialization/JsonFormatTestCase.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/vespajlib/src/test/java/com/yahoo/tensor/serialization/JsonFormatTestCase.java b/vespajlib/src/test/java/com/yahoo/tensor/serialization/JsonFormatTestCase.java
index 011c4b1fe12..2f1e3be9299 100644
--- a/vespajlib/src/test/java/com/yahoo/tensor/serialization/JsonFormatTestCase.java
+++ b/vespajlib/src/test/java/com/yahoo/tensor/serialization/JsonFormatTestCase.java
@@ -1,6 +1,7 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.tensor.serialization;
+import com.yahoo.tensor.IndexedTensor;
import com.yahoo.tensor.Tensor;
import com.yahoo.tensor.TensorType;
import org.junit.Test;
@@ -82,6 +83,30 @@ public class JsonFormatTestCase {
}
@Test
+ public void testDenseTensorShortForm() {
+ assertEncodeShortForm("tensor(x[]):[1.0, 2.0]",
+ "{\"type\":\"tensor(x[])\",\"value\":[1.0,2.0]}");
+ assertEncodeShortForm("tensor<float>(x[]):[1.0, 2.0]",
+ "{\"type\":\"tensor<float>(x[])\",\"value\":[1.0,2.0]}");
+ assertEncodeShortForm("tensor(x[],y[]):[[1,2,3,4]]",
+ "{\"type\":\"tensor(x[],y[])\",\"value\":[[1.0,2.0,3.0,4.0]]}");
+ assertEncodeShortForm("tensor(x[],y[]):[[1,2],[3,4]]",
+ "{\"type\":\"tensor(x[],y[])\",\"value\":[[1.0,2.0],[3.0,4.0]]}");
+ assertEncodeShortForm("tensor(x[],y[]):[[1],[2],[3],[4]]",
+ "{\"type\":\"tensor(x[],y[])\",\"value\":[[1.0],[2.0],[3.0],[4.0]]}");
+ assertEncodeShortForm("tensor(x[],y[],z[]):[[[1,2],[3,4]]]",
+ "{\"type\":\"tensor(x[],y[],z[])\",\"value\":[[[1.0,2.0],[3.0,4.0]]]}");
+ assertEncodeShortForm("tensor(x[],y[],z[]):[[[1],[2],[3],[4]]]",
+ "{\"type\":\"tensor(x[],y[],z[])\",\"value\":[[[1.0],[2.0],[3.0],[4.0]]]}");
+ assertEncodeShortForm("tensor(x[],y[],z[]):[[[1,2,3,4]]]",
+ "{\"type\":\"tensor(x[],y[],z[])\",\"value\":[[[1.0,2.0,3.0,4.0]]]}");
+ assertEncodeShortForm("tensor(x[],y[],z[]):[[[1]],[[2]],[[3]],[[4]]]",
+ "{\"type\":\"tensor(x[],y[],z[])\",\"value\":[[[1.0]],[[2.0]],[[3.0]],[[4.0]]]}");
+ assertEncodeShortForm("tensor(x[],y[],z[2]):[[[1, 2]],[[3, 4]]]",
+ "{\"type\":\"tensor(x[],y[],z[2])\",\"value\":[[[1.0,2.0]],[[3.0,4.0]]]}");
+ }
+
+ @Test
public void testInt8VectorInHexForm() {
Tensor.Builder builder = Tensor.Builder.of(TensorType.fromSpec("tensor<int8>(x[2],y[3])"));
builder.cell().label("x", 0).label("y", 0).value(2.0);
@@ -274,4 +299,9 @@ public class JsonFormatTestCase {
assertEncodeDecode(Tensor.from("tensor<int8>(x[2],y[2]):[2,3,5,8]"));
}
+ private void assertEncodeShortForm(String tensor, String expected) {
+ byte[] json = JsonFormat.encodeShortForm((IndexedTensor) Tensor.from(tensor));
+ assertEquals(expected, new String(json, StandardCharsets.UTF_8));
+ }
+
}