From 288ef3a1fbc3b1db5c54ab55b5d76d1feedeab0c Mon Sep 17 00:00:00 2001 From: Lester Solbakken Date: Sun, 15 Nov 2020 12:56:50 +0100 Subject: Support mixed tensor type in Java evaluation --- .../evaluation/EvaluationTestCase.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'searchlib') diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java index 1bf4dc5698d..123fa5ac43b 100644 --- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java +++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java @@ -10,6 +10,7 @@ import com.yahoo.searchlib.rankingexpression.rule.ArithmeticOperator; import com.yahoo.searchlib.rankingexpression.rule.ConstantNode; import com.yahoo.searchlib.rankingexpression.rule.ExpressionNode; import com.yahoo.searchlib.rankingexpression.rule.IfNode; +import com.yahoo.tensor.Tensor; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -392,6 +393,23 @@ public class EvaluationTestCase { } + @Test + public void testMixedTensorType() throws ParseException { + String expected = "tensor(x[1],y{},z[2]):{{x:0,y:a,z:0}:4.0,{x:0,y:a,z:1}:5.0,{x:0,y:b,z:0}:7.0,{x:0,y:b,z:1}:8.0}"; + String a = "tensor(x[1],y{}):{ {x:0,y:a}:1, {x:0,y:b}:2 }"; + String b = "tensor(y{},z[2]):{ {y:a,z:0}:3, {y:a,z:1}:4, {y:b,z:0}:5, {y:b,z:1}:6 }"; + String expression = "a + b"; + + MapContext context = new MapContext(); + context.put("a", new TensorValue(Tensor.from(a))); + context.put("b", new TensorValue(Tensor.from(b))); + + Tensor expectedResult = Tensor.from(expected); + Tensor result = new RankingExpression(expression).evaluate(context).asTensor(); + assertEquals(expectedResult, result); + assertEquals(expectedResult.type(), result.type()); + } + @Test public void testTile() { EvaluationTester tester = new EvaluationTester(); -- cgit v1.2.3