From a7cbead3cd8e9f9a762e60aff9cafa7405242334 Mon Sep 17 00:00:00 2001 From: Arne Juul Date: Mon, 26 Apr 2021 14:11:25 +0000 Subject: test edge case with empty mixed tensor --- .../java/com/yahoo/tensor/functions/Concat.java | 4 ++-- .../com/yahoo/tensor/functions/ConcatTestCase.java | 25 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) (limited to 'vespajlib') 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 extends PrimitiveTensorFunction 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); } -- cgit v1.2.3