summaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java')
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java
index cf58dd3929b..33e8dbbbef1 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/RequestBuilderTestCase.java
@@ -40,6 +40,57 @@ public class RequestBuilderTestCase {
assertEquals(new AttributeNode("foo"), aggr.getExpression());
}
+ private List<Grouping> getRequestList(String selection) {
+ RequestBuilder builder = new RequestBuilder(0);
+ builder.setRootOperation(GroupingOperation.fromString(selection));
+ builder.build();
+ return builder.getRequestList();
+ }
+
+ @Test
+ public void requireThatTopNIsHonoured() {
+ List<Grouping> gl = getRequestList("all(max(3) all(group(product_id) max(5) each(output(sum(price)))))");
+ assertEquals(1, gl.size());
+ assertEquals(3, gl.get(0).getTopN());
+ }
+
+ @Test
+ public void requireThatTopNIsHonouredWhenNested() {
+ List<Grouping> gl = getRequestList("all( all(max(3) all(group(product_id) max(5) each(output(sum(price))))))");
+ assertEquals(1, gl.size());
+ assertEquals(3, gl.get(0).getTopN());
+ }
+
+ @Test
+ public void requireThatTopNIsInherited() {
+ List<Grouping> gl = getRequestList("all(max(7) all( all(group(product_id) max(5) each(output(sum(price))))))");
+ assertEquals(1, gl.size());
+ assertEquals(7, gl.get(0).getTopN());
+ }
+
+ @Test
+ public void requireThatTopNIsMinimum() {
+ List<Grouping> gl = getRequestList("all(max(7) all(max(3) all(group(product_id) max(5) each(output(sum(price))))))");
+ assertEquals(1, gl.size());
+ assertEquals(3, gl.get(0).getTopN());
+ gl = getRequestList("all(max(3) all(max(7) all(group(product_id) max(5) each(output(sum(price))))))");
+ assertEquals(1, gl.size());
+ assertEquals(3, gl.get(0).getTopN());
+ }
+
+ @Test
+ public void requireThatTopNIsIndividual() {
+ List<Grouping> gl = getRequestList("all( all(max(3) all(group(product_id) max(5) each(output(sum(price))))) all(group(filter_cluster3) order(count()) each(output(count()))))");
+ assertEquals(2, gl.size());
+ assertEquals(3, gl.get(0).getTopN());
+ assertEquals(-1, gl.get(1).getTopN());
+
+ gl = getRequestList("all( max(7) all(max(3) all(group(product_id) max(5) each(output(sum(price))))) all(group(filter_cluster3) order(count()) each(output(count()))))");
+ assertEquals(2, gl.size());
+ assertEquals(3, gl.get(0).getTopN());
+ assertEquals(7, gl.get(1).getTopN());
+ }
+
@Test
public void requireThatAllExpressionNodesAreSupported() {
assertLayout("all(group(add(a,b)) each(output(count())))", "[[{ Add, result = [Count] }]]");