summaryrefslogtreecommitdiffstats
path: root/container-search/src/test
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-04-13 17:19:17 +0200
committerJon Bratseth <bratseth@gmail.com>2021-04-13 17:19:17 +0200
commitdcefd93bd296a9139d2fc41b86307c3041efd433 (patch)
treebbdd26b15dd444bdea7a019de923e0e5b0de6c63 /container-search/src/test
parenta5f88e456dd105f1c47d2c42329a1c7f97cdde72 (diff)
Collapse nesten compatible weakands
Diffstat (limited to 'container-search/src/test')
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java b/container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java
index d3b64100c1e..c10e2dcb3ad 100644
--- a/container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/query/test/QueryCanonicalizerTestCase.java
@@ -108,6 +108,47 @@ public class QueryCanonicalizerTestCase {
}
@Test
+ public void testMultilevelWeakAndCollapsing() {
+ CompositeItem root = new WeakAndItem();
+ CompositeItem l1 = new WeakAndItem();
+ CompositeItem l2 = new WeakAndItem();
+ CompositeItem l3 = new WeakAndItem();
+ CompositeItem l4 = new WeakAndItem();
+
+ root.addItem(l1);
+
+ l1.addItem(l2);
+ l1.addItem(new WordItem("l1"));
+
+ l2.addItem(l3);
+ l2.addItem(new WordItem("l2"));
+
+ l3.addItem(l4);
+ l3.addItem(new WordItem("l3"));
+
+ l4.addItem(new WordItem("l4"));
+
+ assertCanonicalized("WAND(100) l4 l3 l2 l1", null, root);
+ }
+
+ @Test
+ public void testWeakAndCollapsingRequireSameNAndIndex() {
+ CompositeItem root = new WeakAndItem(10);
+ CompositeItem l1 = new WeakAndItem(100);
+ CompositeItem l2 = new WeakAndItem(100);
+ l2.setIndexName("other");
+
+ root.addItem(l1);
+
+ l1.addItem(l2);
+ l1.addItem(new WordItem("l1"));
+
+ l2.addItem(new WordItem("l2"));
+
+ assertCanonicalized("WAND(10) (WAND(100) (WAND(100) l2) l1)", null, root);
+ }
+
+ @Test
public void testNullRoot() {
assertCanonicalized(null, "No query", new Query());
}