diff options
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java | 18 |
1 files changed, 18 insertions, 0 deletions
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; @@ -393,6 +394,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(); |