summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-04-26 14:11:25 +0000
committerArne Juul <arnej@verizonmedia.com>2021-04-26 14:11:25 +0000
commita7cbead3cd8e9f9a762e60aff9cafa7405242334 (patch)
tree360b724729456766a8522a545f42632c5ba7544c /vespajlib
parent3fbb4234ed3397188869d1446b1e6d6aaf93eb33 (diff)
test edge case with empty mixed tensor
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/functions/Concat.java4
-rw-r--r--vespajlib/src/test/java/com/yahoo/tensor/functions/ConcatTestCase.java25
2 files changed, 27 insertions, 2 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Concat.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Concat.java
index ad798b5c675..43fa14713a7 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Concat.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Concat.java
@@ -159,8 +159,8 @@ public class Concat<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMET
static int concatDimensionSize(CellVectorMapMap data) {
Set<Integer> sizes = new HashSet<>();
- data.map.forEach((m, cells) ->
- cells.map.forEach((e, vector) ->
+ data.map.forEach((m, cvmap) ->
+ cvmap.map.forEach((e, vector) ->
sizes.add(vector.values.size())));
if (sizes.isEmpty()) {
return 1;
diff --git a/vespajlib/src/test/java/com/yahoo/tensor/functions/ConcatTestCase.java b/vespajlib/src/test/java/com/yahoo/tensor/functions/ConcatTestCase.java
index fe7d3872d23..023beb6fb0d 100644
--- a/vespajlib/src/test/java/com/yahoo/tensor/functions/ConcatTestCase.java
+++ b/vespajlib/src/test/java/com/yahoo/tensor/functions/ConcatTestCase.java
@@ -217,6 +217,31 @@ public class ConcatTestCase {
a, b, "d");
}
+ @Test
+ public void testWithEmptyMixed() {
+ Tensor a = Tensor.from("tensor(a[2],c{},d[2]):{"+
+ "{a:0,c:17,d:0}:1.0,"+
+ "{a:0,c:17,d:1}:2.0,"+
+ "{a:1,c:17,d:0}:3.0,"+
+ "{a:1,c:17,d:1}:4.0}");
+ Tensor b = Tensor.from("tensor(b{}):{}");
+ Tensor c = Tensor.from("tensor(c{}):{}");
+ Tensor d = Tensor.from("tensor(c{},d[3]):{}");
+
+ assertConcat("tensor(a[3],b{},c{},d[2])", "tensor(a[3],b{},c{},d[2]):{}",
+ a, b, "a");
+ assertConcat("tensor(a[2],b{},c{},d[2],x[2])", "tensor(a[2],b{},c{},d[2],x[2]):{}",
+ a, b, "x");
+
+ assertConcat("tensor(a[3],c{},d[2])", "tensor(a[3],c{},d[2]):{}",
+ a, c, "a");
+ assertConcat("tensor(a[2],c{},d[2],x[2])", "tensor(a[2],c{},d[2],x[2]):{}",
+ a, c, "x");
+
+ assertConcat("tensor(a[2],c{},d[5])", "tensor(a[2],c{},d[5]):{}",
+ a, d, "d");
+ }
+
private void assertConcat(String expected, Tensor a, Tensor b, String dimension) {
assertConcat(null, expected, a, b, dimension);
}