diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-06-29 11:07:22 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-06-29 11:07:22 +0200 |
commit | 4289be15756bd05e880f41b1dd3e81cf054950f8 (patch) | |
tree | 82cc456ea30cb67604c32519c36079f86ca3d940 /searchlib | |
parent | 7dc5390309ccd905aec92e68d222c0b1783abcc5 (diff) |
Make tensor generate inspectable
Diffstat (limited to 'searchlib')
2 files changed, 13 insertions, 0 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java index befe2179dc1..86541343edb 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java @@ -25,6 +25,7 @@ import java.util.Deque; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; /** @@ -157,6 +158,11 @@ public class TensorFunctionNode extends CompositeNode { } @Override + public Optional<TensorFunction<Reference>> asTensorFunction() { + return Optional.of(new ExpressionTensorFunction(expression)); + } + + @Override public String toString() { return toString(ExpressionToStringContext.empty); } @@ -230,6 +236,11 @@ public class TensorFunctionNode extends CompositeNode { } @Override + public Optional<ScalarFunction<Reference>> asScalarFunction() { + return Optional.of(new ExpressionScalarFunction(expression)); + } + + @Override public Tensor evaluate(EvaluationContext<Reference> context) { return expression.evaluate((Context)context).asTensor(); } diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencerTestCase.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencerTestCase.java index a41fb02f784..bfaff0712ee 100644 --- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencerTestCase.java +++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencerTestCase.java @@ -29,6 +29,8 @@ public class ConstantDereferencerTestCase { assertEquals("1.0 + 2.0 + 3.5", c.transform(new RankingExpression("a + b + c"), context).toString()); assertEquals("myFunction(1.0,2.0)", c.transform(new RankingExpression("myFunction(a, b)"), context).toString()); + assertEquals("tensor(x[2],y[3])((x + y == 1.0))", c.transform(new RankingExpression("tensor(x[2],y[3])(x+y==a)"), context).toString()); + } } |