summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorLester Solbakken <lesters@users.noreply.github.com>2016-12-16 15:03:35 +0100
committerGitHub <noreply@github.com>2016-12-16 15:03:35 +0100
commit7eec9171277f9e153cc2e0dc9be3e79ac8ab0512 (patch)
tree9b5c2e965a82e44af94e0e58cd18803602ee915a /searchlib
parentada85141a25350574a32c70dcd2d6430337c6726 (diff)
parentc22bb256aec0b7ca527e14a96a4bae8a8b61adad (diff)
Merge pull request #1342 from yahoo/bratseth/double-backed-indexed-tensor
Bratseth/double backed indexed tensor
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java6
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTester.java16
2 files changed, 13 insertions, 9 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 b994b3e768f..8fa9076993e 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
@@ -196,8 +196,8 @@ public class EvaluationTestCase {
"max(tensor0, tensor1)", "{ {x:0}:3, {x:1}:7 }", "{ {y:0}:5 }");
tester.assertEvaluates("{ {x:0,y:0}:3, {x:1,y:0}:5 }",
"min(tensor0, tensor1)", "{ {x:0}:3, {x:1}:7 }", "{ {y:0}:5 }");
- tester.assertEvaluates("{ {x:0,y:0,z:0}:7, {x:0,y:0,z:1}:13, {x:1,y:0,z:0}:21, {x:1,y:0,z:1}:39, {x:0,y:1,z:0}:55 }",
- "tensor0 * tensor1", "{ {x:0,y:0}:1, {x:1,y:0}:3, {x:0,y:1}:5 }", "{ {y:0,z:0}:7, {y:1,z:0}:11, {y:0,z:1}:13 }");
+ tester.assertEvaluates("{ {x:0,y:0,z:0}:7, {x:0,y:0,z:1}:13, {x:1,y:0,z:0}:21, {x:1,y:0,z:1}:39, {x:0,y:1,z:0}:55, {x:0,y:1,z:1}:0, {x:1,y:1,z:0}:0, {x:1,y:1,z:1}:0 }",
+ "tensor0 * tensor1", "{ {x:0,y:0}:1, {x:1,y:0}:3, {x:0,y:1}:5, {x:1,y:1}:0 }", "{ {y:0,z:0}:7, {y:1,z:0}:11, {y:0,z:1}:13, {y:1,z:1}:0 }");
tester.assertEvaluates("{ {x:0,y:1,z:0}:35, {x:0,y:1,z:1}:65 }",
"tensor0 * tensor1", "tensor(x{},y{}):{ {x:0,y:0}:1, {x:1,y:0}:3, {x:0,y:1}:5 }", "tensor(y{},z{}):{ {y:1,z:0}:7, {y:2,z:0}:11, {y:1,z:1}:13 })");
tester.assertEvaluates("{{x:0,y:0}:0.0}","tensor1 * tensor2 * tensor3", "{ {x:0}:1 }", "{ {x:1,y:0}:1, {x:0,y:0}:1 }", "{ {x:0,y:0}:1 }");
@@ -253,7 +253,7 @@ public class EvaluationTestCase {
" * tensor3" + // - model weights application
") + 1.7",
"{ {x:0}:1, {x:1}:2 }", "{ {y:0}:3, {y:1}:4 }", "{ {z:0}:5 }",
- "{ {x:0,y:0,z:0}:0.5, {x:1,y:0,z:0}:1.5, {x:0,y:0,z:1}:4.5 }");
+ "{ {x:0,y:0,z:0}:0.5, {x:1,y:0,z:0}:1.5, {x:0,y:0,z:1}:4.5, {x:0,y:1,z:0}:0, {x:1,y:0,z:1}:0, {x:0,y:1,z:1}:0, {x:1,y:1,z:0}:0, {x:1,y:1,z:1}:0 }");
tester.assertEvaluates("1.0", "sum(tensor0 * tensor1 + 0.5)", "{ {x:0}:0, {x:1}:0 }", "{ {x:0}:1, {x:1}:1 }");
tester.assertEvaluates("0.0", "sum(tensor0 * tensor1 + 0.5)", "{}", "{ {x:0}:1, {x:1}:1 }");
diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTester.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTester.java
index 3383a5f794d..2ce3d5b5eca 100644
--- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTester.java
+++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTester.java
@@ -33,6 +33,7 @@ public class EvaluationTester {
return assertEvaluates(expectedTensor, expressionString, true, tensorArguments);
}
+ // TODO: Test both bound and unbound indexed
public RankingExpression assertEvaluates(String expectedTensor, String expressionString, boolean mappedTensors,
String ... tensorArgumentStrings) {
MapContext context = defaultContext.thawedCopy();
@@ -45,11 +46,12 @@ public class EvaluationTester {
argument = Tensor.from(typeFrom(argumentString, mappedTensors), argumentString);
context.put("tensor" + (argumentIndex++), new TensorValue(argument));
}
- return assertEvaluates(new TensorValue(Tensor.from(expectedTensor)), expressionString, context);
+ return assertEvaluates(new TensorValue(Tensor.from(expectedTensor)), expressionString, context,
+ mappedTensors ? "Mapped tensors" : "Indexed tensors");
}
public RankingExpression assertEvaluates(Value value, String expressionString) {
- return assertEvaluates(value, expressionString, defaultContext);
+ return assertEvaluates(value, expressionString, defaultContext, "");
}
public RankingExpression assertEvaluates(double value, String expressionString) {
@@ -57,13 +59,15 @@ public class EvaluationTester {
}
public RankingExpression assertEvaluates(double value, String expressionString, Context context) {
- return assertEvaluates(new DoubleValue(value), expressionString, context);
+ return assertEvaluates(new DoubleValue(value), expressionString, context, "");
}
- public RankingExpression assertEvaluates(Value value, String expressionString, Context context) {
+ public RankingExpression assertEvaluates(Value value, String expressionString, Context context, String explanation) {
try {
RankingExpression expression = new RankingExpression(expressionString);
- assertEquals(expression.toString(), value, expression.evaluate(context));
+ if ( ! explanation.isEmpty())
+ explanation = explanation + ": ";
+ assertEquals(explanation + expression.toString(), value, expression.evaluate(context));
return expression;
}
catch (ParseException e) {
@@ -80,7 +84,7 @@ public class EvaluationTester {
else { // convert to indexed
TensorType.Builder builder = new TensorType.Builder();
for (TensorType.Dimension dimension : tensor.type().dimensions())
- builder.indexedUnbound(dimension.name());
+ builder.indexed(dimension.name());
return builder.build();
}
}