aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/test')
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java2
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java18
2 files changed, 19 insertions, 1 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 13e19ff4d35..efa98fba2eb 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
@@ -815,7 +815,7 @@ public class EvaluationTestCase {
try {
ExpressionNode e = arguments.expressions().get(index);
if (e instanceof ConstantNode) {
- return new DoubleValue(new RankingExpression(UnicodeUtilities.unquote(((ConstantNode)e).sourceString())).evaluate(this).asDouble());
+ return new DoubleValue(new RankingExpression(UnicodeUtilities.unquote(e.toString())).evaluate(this).asDouble());
}
return e.evaluate(this);
}
diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java
index f7735b4f5ca..c93830abda9 100644
--- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java
+++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/transform/SimplifierTestCase.java
@@ -5,8 +5,11 @@ import com.yahoo.searchlib.rankingexpression.RankingExpression;
import com.yahoo.searchlib.rankingexpression.evaluation.Context;
import com.yahoo.searchlib.rankingexpression.evaluation.MapContext;
import com.yahoo.searchlib.rankingexpression.evaluation.MapTypeContext;
+import com.yahoo.searchlib.rankingexpression.evaluation.Value;
import com.yahoo.searchlib.rankingexpression.parser.ParseException;
import com.yahoo.searchlib.rankingexpression.rule.CompositeNode;
+import com.yahoo.searchlib.rankingexpression.rule.ConstantNode;
+import com.yahoo.searchlib.rankingexpression.rule.NegativeNode;
import org.junit.Test;
import java.util.Collections;
@@ -83,4 +86,19 @@ public class SimplifierTestCase {
assertEquals("a + (b + c) / 1.0E8", transformed.toString());
}
+ @Test
+ public void testOptimizingNegativeConstants() throws ParseException {
+ Simplifier s = new Simplifier();
+ TransformContext c = new TransformContext(Collections.emptyMap(), new MapTypeContext());
+ assertEquals("-3", s.transform(new RankingExpression("-3"), c).toString());
+ assertEquals("-9.0", s.transform(new RankingExpression("-3 + -6"), c).toString());
+ assertEquals("-a", s.transform(new RankingExpression("-a"), c).toString());
+ assertEquals("-\"a\"", s.transform(new RankingExpression("-'a'"), c).toString());
+
+ RankingExpression r = new RankingExpression(new NegativeNode(new ConstantNode(Value.parse("3"))));
+ assertTrue(r.getRoot() instanceof NegativeNode);
+ r = s.transform(r, c);
+ assertTrue(r.getRoot() instanceof ConstantNode);
+ }
+
}