From da3d03db65344e927b9682b30013a524cf914522 Mon Sep 17 00:00:00 2001 From: Arne Juul Date: Mon, 26 Apr 2021 10:05:29 +0000 Subject: add very generic concat algorithm --- .../com/yahoo/tensor/functions/ConcatTestCase.java | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) (limited to 'vespajlib/src/test/java') 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 0476fe1c757..fe7d3872d23 100644 --- a/vespajlib/src/test/java/com/yahoo/tensor/functions/ConcatTestCase.java +++ b/vespajlib/src/test/java/com/yahoo/tensor/functions/ConcatTestCase.java @@ -95,6 +95,128 @@ public class ConcatTestCase { assertConcat("tensor(x[],y[])", "tensor(x[2],y[4]):{{x:0,y:0}:1.0,{x:0,y:1}:3.0,{x:0,y:2}:5.0,{x:0,y:3}:6.0,{x:1,y:0}:2.0,{x:1,y:1}:4.0,{x:1,y:2}:5.0,{x:1,y:3}:6.0}", a, b, "y"); } + @Test + public void testAdvancedMixed() { + Tensor a = Tensor.from("tensor(a[2],b[2],c{},d[2],e{}):{"+ + "{a:0,b:0,c:17,d:0,e:42}:1.0,"+ + "{a:0,b:0,c:17,d:1,e:42}:2.0,"+ + "{a:0,b:1,c:17,d:0,e:42}:3.0,"+ + "{a:0,b:1,c:17,d:1,e:42}:4.0,"+ + "{a:1,b:0,c:17,d:0,e:42}:5.0,"+ + "{a:1,b:0,c:17,d:1,e:42}:6.0,"+ + "{a:1,b:1,c:17,d:0,e:42}:7.0,"+ + "{a:1,b:1,c:17,d:1,e:42}:8.0}"); + Tensor b = Tensor.from("tensor(a[2],b[2],c{},f[2],g{}):{"+ + "{a:0,b:0,c:17,f:0,g:666}:51.0,"+ + "{a:0,b:0,c:17,f:1,g:666}:52.0,"+ + "{a:0,b:1,c:17,f:0,g:666}:53.0,"+ + "{a:0,b:1,c:17,f:1,g:666}:54.0,"+ + "{a:1,b:0,c:17,f:0,g:666}:55.0,"+ + "{a:1,b:0,c:17,f:1,g:666}:56.0,"+ + "{a:1,b:1,c:17,f:0,g:666}:57.0,"+ + "{a:1,b:1,c:17,f:1,g:666}:58.0}"); + + assertConcat("tensor(a[4],b[2],c{},d[2],e{},f[2],g{})", + "tensor(a[4],b[2],c{},d[2],e{},f[2],g{}):{"+ + "{a:0,b:0,c:17,d:0,e:42,f:0,g:666}:1.0,"+ + "{a:0,b:0,c:17,d:0,e:42,f:1,g:666}:1.0,"+ + "{a:0,b:0,c:17,d:1,e:42,f:0,g:666}:2.0,"+ + "{a:0,b:0,c:17,d:1,e:42,f:1,g:666}:2.0,"+ + "{a:0,b:1,c:17,d:0,e:42,f:0,g:666}:3.0,"+ + "{a:0,b:1,c:17,d:0,e:42,f:1,g:666}:3.0,"+ + "{a:0,b:1,c:17,d:1,e:42,f:0,g:666}:4.0,"+ + "{a:0,b:1,c:17,d:1,e:42,f:1,g:666}:4.0,"+ + "{a:1,b:0,c:17,d:0,e:42,f:0,g:666}:5.0,"+ + "{a:1,b:0,c:17,d:0,e:42,f:1,g:666}:5.0,"+ + "{a:1,b:0,c:17,d:1,e:42,f:0,g:666}:6.0,"+ + "{a:1,b:0,c:17,d:1,e:42,f:1,g:666}:6.0,"+ + "{a:1,b:1,c:17,d:0,e:42,f:0,g:666}:7.0,"+ + "{a:1,b:1,c:17,d:0,e:42,f:1,g:666}:7.0,"+ + "{a:1,b:1,c:17,d:1,e:42,f:0,g:666}:8.0,"+ + "{a:1,b:1,c:17,d:1,e:42,f:1,g:666}:8.0,"+ + "{a:2,b:0,c:17,d:0,e:42,f:0,g:666}:51.0,"+ + "{a:2,b:0,c:17,d:0,e:42,f:1,g:666}:52.0,"+ + "{a:2,b:0,c:17,d:1,e:42,f:0,g:666}:51.0,"+ + "{a:2,b:0,c:17,d:1,e:42,f:1,g:666}:52.0,"+ + "{a:2,b:1,c:17,d:0,e:42,f:0,g:666}:53.0,"+ + "{a:2,b:1,c:17,d:0,e:42,f:1,g:666}:54.0,"+ + "{a:2,b:1,c:17,d:1,e:42,f:0,g:666}:53.0,"+ + "{a:2,b:1,c:17,d:1,e:42,f:1,g:666}:54.0,"+ + "{a:3,b:0,c:17,d:0,e:42,f:0,g:666}:55.0,"+ + "{a:3,b:0,c:17,d:0,e:42,f:1,g:666}:56.0,"+ + "{a:3,b:0,c:17,d:1,e:42,f:0,g:666}:55.0,"+ + "{a:3,b:0,c:17,d:1,e:42,f:1,g:666}:56.0,"+ + "{a:3,b:1,c:17,d:0,e:42,f:0,g:666}:57.0,"+ + "{a:3,b:1,c:17,d:0,e:42,f:1,g:666}:58.0,"+ + "{a:3,b:1,c:17,d:1,e:42,f:0,g:666}:57.0,"+ + "{a:3,b:1,c:17,d:1,e:42,f:1,g:666}:58.0}", + a, b, "a"); + + assertConcat("tensor(a[2],b[2],c{},d[2],e{},f[2],g{},x[2])", + "tensor(a[2],b[2],c{},d[2],e{},f[2],g{},x[2]):{"+ + "{a:0,b:0,c:17,d:0,e:42,f:0,g:666,x:0}:1.0,"+ + "{a:0,b:0,c:17,d:0,e:42,f:1,g:666,x:0}:1.0,"+ + "{a:0,b:0,c:17,d:1,e:42,f:0,g:666,x:0}:2.0,"+ + "{a:0,b:0,c:17,d:1,e:42,f:1,g:666,x:0}:2.0,"+ + "{a:0,b:1,c:17,d:0,e:42,f:0,g:666,x:0}:3.0,"+ + "{a:0,b:1,c:17,d:0,e:42,f:1,g:666,x:0}:3.0,"+ + "{a:0,b:1,c:17,d:1,e:42,f:0,g:666,x:0}:4.0,"+ + "{a:0,b:1,c:17,d:1,e:42,f:1,g:666,x:0}:4.0,"+ + "{a:1,b:0,c:17,d:0,e:42,f:0,g:666,x:0}:5.0,"+ + "{a:1,b:0,c:17,d:0,e:42,f:1,g:666,x:0}:5.0,"+ + "{a:1,b:0,c:17,d:1,e:42,f:0,g:666,x:0}:6.0,"+ + "{a:1,b:0,c:17,d:1,e:42,f:1,g:666,x:0}:6.0,"+ + "{a:1,b:1,c:17,d:0,e:42,f:0,g:666,x:0}:7.0,"+ + "{a:1,b:1,c:17,d:0,e:42,f:1,g:666,x:0}:7.0,"+ + "{a:1,b:1,c:17,d:1,e:42,f:0,g:666,x:0}:8.0,"+ + "{a:1,b:1,c:17,d:1,e:42,f:1,g:666,x:0}:8.0,"+ + "{a:0,b:0,c:17,d:0,e:42,f:0,g:666,x:1}:51.0,"+ + "{a:0,b:0,c:17,d:0,e:42,f:1,g:666,x:1}:52.0,"+ + "{a:0,b:0,c:17,d:1,e:42,f:0,g:666,x:1}:51.0,"+ + "{a:0,b:0,c:17,d:1,e:42,f:1,g:666,x:1}:52.0,"+ + "{a:0,b:1,c:17,d:0,e:42,f:0,g:666,x:1}:53.0,"+ + "{a:0,b:1,c:17,d:0,e:42,f:1,g:666,x:1}:54.0,"+ + "{a:0,b:1,c:17,d:1,e:42,f:0,g:666,x:1}:53.0,"+ + "{a:0,b:1,c:17,d:1,e:42,f:1,g:666,x:1}:54.0,"+ + "{a:1,b:0,c:17,d:0,e:42,f:0,g:666,x:1}:55.0,"+ + "{a:1,b:0,c:17,d:0,e:42,f:1,g:666,x:1}:56.0,"+ + "{a:1,b:0,c:17,d:1,e:42,f:0,g:666,x:1}:55.0,"+ + "{a:1,b:0,c:17,d:1,e:42,f:1,g:666,x:1}:56.0,"+ + "{a:1,b:1,c:17,d:0,e:42,f:0,g:666,x:1}:57.0,"+ + "{a:1,b:1,c:17,d:0,e:42,f:1,g:666,x:1}:58.0,"+ + "{a:1,b:1,c:17,d:1,e:42,f:0,g:666,x:1}:57.0,"+ + "{a:1,b:1,c:17,d:1,e:42,f:1,g:666,x:1}:58.0}", + a, b, "x"); + + assertConcat("tensor(a[2],b[2],c{},d[3],e{},f[2],g{})", + "tensor(a[2],b[2],c{},d[3],e{},f[2],g{}):{"+ + "{a:0,b:0,c:17,d:0,e:42,f:0,g:666}:1.0,"+ + "{a:0,b:0,c:17,d:0,e:42,f:1,g:666}:1.0,"+ + "{a:0,b:0,c:17,d:1,e:42,f:0,g:666}:2.0,"+ + "{a:0,b:0,c:17,d:1,e:42,f:1,g:666}:2.0,"+ + "{a:0,b:1,c:17,d:0,e:42,f:0,g:666}:3.0,"+ + "{a:0,b:1,c:17,d:0,e:42,f:1,g:666}:3.0,"+ + "{a:0,b:1,c:17,d:1,e:42,f:0,g:666}:4.0,"+ + "{a:0,b:1,c:17,d:1,e:42,f:1,g:666}:4.0,"+ + "{a:1,b:0,c:17,d:0,e:42,f:0,g:666}:5.0,"+ + "{a:1,b:0,c:17,d:0,e:42,f:1,g:666}:5.0,"+ + "{a:1,b:0,c:17,d:1,e:42,f:0,g:666}:6.0,"+ + "{a:1,b:0,c:17,d:1,e:42,f:1,g:666}:6.0,"+ + "{a:1,b:1,c:17,d:0,e:42,f:0,g:666}:7.0,"+ + "{a:1,b:1,c:17,d:0,e:42,f:1,g:666}:7.0,"+ + "{a:1,b:1,c:17,d:1,e:42,f:0,g:666}:8.0,"+ + "{a:1,b:1,c:17,d:1,e:42,f:1,g:666}:8.0,"+ + "{a:0,b:0,c:17,d:2,e:42,f:0,g:666}:51.0,"+ + "{a:0,b:0,c:17,d:2,e:42,f:1,g:666}:52.0,"+ + "{a:0,b:1,c:17,d:2,e:42,f:0,g:666}:53.0,"+ + "{a:0,b:1,c:17,d:2,e:42,f:1,g:666}:54.0,"+ + "{a:1,b:0,c:17,d:2,e:42,f:0,g:666}:55.0,"+ + "{a:1,b:0,c:17,d:2,e:42,f:1,g:666}:56.0,"+ + "{a:1,b:1,c:17,d:2,e:42,f:0,g:666}:57.0,"+ + "{a:1,b:1,c:17,d:2,e:42,f:1,g:666}:58.0}", + a, b, "d"); + } + private void assertConcat(String expected, Tensor a, Tensor b, String dimension) { assertConcat(null, expected, a, b, dimension); } -- cgit v1.2.3