summaryrefslogtreecommitdiffstats
path: root/document/src/test
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-10-08 14:12:00 +0200
committerJon Bratseth <bratseth@verizonmedia.com>2019-10-08 14:12:00 +0200
commit4a720e1feb149158f5868b1739bc28821486a6e1 (patch)
treef303098d52047047e184c52ca54cad731af65ae8 /document/src/test
parentee1bf523a2cfb5e8d86a602323c337f6e55c202b (diff)
Support mixed tensor short form JSON
Diffstat (limited to 'document/src/test')
-rw-r--r--document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
index 6103dc5947f..91998dedbb8 100644
--- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
+++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java
@@ -50,6 +50,7 @@ import com.yahoo.document.update.ValueUpdate;
import com.yahoo.io.GrowableByteBuffer;
import com.yahoo.tensor.IndexedTensor;
import com.yahoo.tensor.MappedTensor;
+import com.yahoo.tensor.MixedTensor;
import com.yahoo.tensor.Tensor;
import com.yahoo.tensor.TensorType;
import com.yahoo.text.Utf8;
@@ -1314,6 +1315,26 @@ public class JsonReaderTestCase {
}
@Test
+ public void testParsingOfMixedTensorOnMixedForm() {
+ Tensor.Builder builder = Tensor.Builder.of(TensorType.fromSpec("tensor(x{},y[3])"));
+ builder.cell().label("x", 0).label("y", 0).value(2.0);
+ builder.cell().label("x", 0).label("y", 1).value(3.0);
+ builder.cell().label("x", 0).label("y", 2).value(4.0);
+ builder.cell().label("x", 1).label("y", 0).value(5.0);
+ builder.cell().label("x", 1).label("y", 1).value(6.0);
+ builder.cell().label("x", 1).label("y", 2).value(7.0);
+ Tensor expected = builder.build();
+
+ String mixedJson = "{\"blocks\":[" +
+ "{\"address\":{\"x\":\"0\"},\"values\":[2.0,3.0,4.0]}," +
+ "{\"address\":{\"x\":\"1\"},\"values\":[5.0,6.0,7.0]}" +
+ "]}";
+ Tensor tensor = assertTensorField(expected,
+ createPutWithTensor(inputJson(mixedJson), "mixed_tensor"), "mixed_tensor");
+ assertTrue(tensor instanceof MixedTensor); // this matters for performance
+ }
+
+ @Test
public void testParsingOfTensorWithSingleCellInDifferentJsonOrder() {
assertSparseTensorField("{{x:a,y:b}:2.0}",
createPutWithSparseTensor(inputJson("{",