summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorLester Solbakken <lesters@users.noreply.github.com>2020-06-29 14:05:20 +0200
committerGitHub <noreply@github.com>2020-06-29 14:05:20 +0200
commite4f41ebced135748b3c399f1cb6b72df4b4ba176 (patch)
tree8b3d5641604737e72f69050d6955a2c555db4765 /searchlib
parentf094091789d5d7414f95cbea60e1fd883fac3057 (diff)
parent4289be15756bd05e880f41b1dd3e81cf054950f8 (diff)
Merge pull request #13730 from vespa-engine/bratseth/inspectable-generate
Make tensor generate inspectable
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/TensorFunctionNode.java11
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencerTestCase.java2
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());
+
}
}