blob: 3fab91f6f5cdd1c6b4e1ca15960b355833a42844 [file] [log] [blame]
Joachim Bingel53333e62013-12-09 19:25:52 +00001import static org.junit.Assert.*;
2
3import org.junit.Test;
4
5import de.ids_mannheim.korap.query.serialize.PoliqarpPlusTree;
Joachim Bingel16da4e12013-12-17 09:48:12 +00006import de.ids_mannheim.korap.util.QueryException;
Joachim Bingel53333e62013-12-09 19:25:52 +00007
8public class PoliqarpPlusTreeTest {
9
10 PoliqarpPlusTree ppt;
11 String map;
12
Joachim Bingel53333e62013-12-09 19:25:52 +000013
Joachim Bingel16da4e12013-12-17 09:48:12 +000014 private boolean equalsQueryContent(String res, String query) throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +000015 res = res.replaceAll(" ", "");
16 ppt = new PoliqarpPlusTree(query);
17 String queryMap = ppt.getRequestMap().get("query").toString().replaceAll(" ", "");
18 return res.equals(queryMap);
19 }
20
Joachim Bingel81812632014-02-18 08:55:22 +000021 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +000022 public void testContext() throws QueryException {
Joachim Bingel81812632014-02-18 08:55:22 +000023 String contextString = "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld";
Joachim Bingel2daf9862014-02-12 10:18:54 +000024 ppt = new PoliqarpPlusTree("Test");
25 assertEquals(contextString.replaceAll(" ", ""), ppt.getRequestMap().get("@context").toString().replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +000026 }
27
28 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +000029 public void testSingleTokens() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +000030 // [base=Mann]
Joachim Bingelee3b21d2014-02-12 12:34:59 +000031 String token1 = "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}";
Joachim Bingel53333e62013-12-09 19:25:52 +000032 assertTrue(equalsQueryContent(token1, "[base=Mann]"));
33
34 // [orth!=Frau]
Joachim Bingelee3b21d2014-02-12 12:34:59 +000035 String token2 = "{@type=korap:token, wrap={@type=korap:term, key=Frau, layer=orth, match=match:ne}}";
Joachim Bingel53333e62013-12-09 19:25:52 +000036 assertTrue(equalsQueryContent(token2, "[orth!=Frau]"));
37
38 // [!p=NN]
Joachim Bingelee3b21d2014-02-12 12:34:59 +000039 String token3 = "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, match=match:ne}}";
Joachim Bingel53333e62013-12-09 19:25:52 +000040 assertTrue(equalsQueryContent(token3, "[!p=NN]"));
41
42 // [!p!=NN]
Joachim Bingelee3b21d2014-02-12 12:34:59 +000043 String token4 = "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, match=match:eq}}";
Joachim Bingel53333e62013-12-09 19:25:52 +000044 assertTrue(equalsQueryContent(token4, "[!p!=NN]"));
45 }
46
47 @Test
Joachim Bingel41e112e2014-02-12 10:46:18 +000048 public void testRegex() throws QueryException {
49 String query = "[orth=\"M(a|ä)nn(er)?\"]";
Joachim Bingelbc537b62014-02-12 12:47:45 +000050 String re1 = "{@type=korap:token, wrap={@type=korap:term, type=type:regex, key=M(a|ä)nn(er)?, layer=orth, match=match:eq}}";
Joachim Bingel41e112e2014-02-12 10:46:18 +000051 ppt = new PoliqarpPlusTree(query);
52 map = ppt.getRequestMap().get("query").toString();
53 assertEquals(re1.replaceAll(" ", ""), map.replaceAll(" ", ""));
54 }
55
56 @Test
Joachim Bingel0207d5e2014-02-12 14:18:41 +000057 public void testCaseSensitivityFlag() throws QueryException {
58 String query="[orth=deutscher/i]";
59 String cs1 =
60 "{@type=korap:token, wrap={@type=korap:term, key=deutscher, layer=orth, match=match:eq, caseInsensitive=true}}";
61 ppt = new PoliqarpPlusTree(query);
62 map = ppt.getRequestMap().get("query").toString();
63 assertEquals(cs1.replaceAll(" ", ""), map.replaceAll(" ", ""));
64
65 query="[orth=deutscher/i][orth=Bundestag]";
66 String cs2 =
67 "{@type=korap:group, operation=operation:sequence, operands=[" +
68 "{@type=korap:token, wrap={@type=korap:term, key=deutscher, layer=orth, match=match:eq, caseInsensitive=true}}," +
69 "{@type=korap:token, wrap={@type=korap:term, key=Bundestag, layer=orth, match=match:eq}}" +
70 "]}";
71 ppt = new PoliqarpPlusTree(query);
72 map = ppt.getRequestMap().get("query").toString();
73 assertEquals(cs2.replaceAll(" ", ""), map.replaceAll(" ", ""));
74 }
75
76 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +000077 public void testElements() throws QueryException {
Joachim Bingelfc1fb352014-02-26 14:40:27 +000078 String query;
Joachim Bingel53333e62013-12-09 19:25:52 +000079 // <s>
Joachim Bingel2daf9862014-02-12 10:18:54 +000080 String elem1 = "{@type=korap:span, key=s}";
Joachim Bingel53333e62013-12-09 19:25:52 +000081 assertTrue(equalsQueryContent(elem1, "<s>"));
82
83 // <vp>
Joachim Bingel2daf9862014-02-12 10:18:54 +000084 String elem2 = "{@type=korap:span, key=vp}";
Joachim Bingel53333e62013-12-09 19:25:52 +000085 assertTrue(equalsQueryContent(elem2, "<vp>"));
Joachim Bingelfc1fb352014-02-26 14:40:27 +000086
87 // <cnx/c=vp>
88 query = "<c=vp>";
89 String span3 = "{@type=korap:span, layer=c, key=vp}";
90 ppt = new PoliqarpPlusTree(query);
91 map = ppt.getRequestMap().get("query").toString();
92 assertEquals(span3.replaceAll(" ", ""), map.replaceAll(" ", ""));
93
94 // <cnx/c=vp>
95 query = "<cnx/c=vp>";
96 String span4 = "{@type=korap:span, foundry=cnx, layer=c, key=vp}";
97 ppt = new PoliqarpPlusTree(query);
98 map = ppt.getRequestMap().get("query").toString();
99 assertEquals(span4.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +0000100 }
Joachim Bingel87480d02014-01-17 14:07:46 +0000101
102 @Test
103 public void testEmptyTokens() throws QueryException {
104 // [base=der][][base=Mann]
105 String et1 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000106 "{@type=korap:group, operation=operation:sequence, inOrder=true, distances=[" +
Joachim Bingelb8a44a12014-04-17 09:35:30 +0000107 "{@type=korap:distance, key=w, min=2, max=2}" +
Joachim Bingel87480d02014-01-17 14:07:46 +0000108 "], " +
Joachim Bingel11d5b152014-02-11 21:33:47 +0000109 "operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000110 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
111 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}" +
Joachim Bingel87480d02014-01-17 14:07:46 +0000112 "]}";
113 ppt = new PoliqarpPlusTree("[base=der][][base=Mann]");
114 map = ppt.getRequestMap().get("query").toString();
115 assertEquals(et1.replaceAll(" ", ""), map.replaceAll(" ", ""));
116
117 // [base=der][][][base=Mann]
118 String et2 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000119 "{@type=korap:group, operation=operation:sequence, inOrder=true, distances=[" +
Joachim Bingelb8a44a12014-04-17 09:35:30 +0000120 "{@type=korap:distance, key=w, min=3, max=3}" +
Joachim Bingel87480d02014-01-17 14:07:46 +0000121 "], " +
Joachim Bingel11d5b152014-02-11 21:33:47 +0000122 "operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000123 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
124 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}" +
Joachim Bingel87480d02014-01-17 14:07:46 +0000125 "]}";
Joachim Bingelffd65e32014-01-22 14:22:57 +0000126 ppt = new PoliqarpPlusTree("[base=der][][][base=Mann]");
Joachim Bingel87480d02014-01-17 14:07:46 +0000127 map = ppt.getRequestMap().get("query").toString();
128 assertEquals(et2.replaceAll(" ", ""), map.replaceAll(" ", ""));
129
130 // [base=der][][]?[base=Mann]
131 String et3 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000132 "{@type=korap:group, operation=operation:sequence, inOrder=true, distances=[" +
Joachim Bingelb8a44a12014-04-17 09:35:30 +0000133 "{@type=korap:distance, key=w, min=2, max=3}" +
Joachim Bingel87480d02014-01-17 14:07:46 +0000134 "], " +
Joachim Bingel11d5b152014-02-11 21:33:47 +0000135 "operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000136 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
137 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}" +
Joachim Bingel87480d02014-01-17 14:07:46 +0000138 "]}";
139 ppt = new PoliqarpPlusTree("[base=der][][]?[base=Mann]");
140 map = ppt.getRequestMap().get("query").toString();
141 assertEquals(et3.replaceAll(" ", ""), map.replaceAll(" ", ""));
142
Joachim Bingel87480d02014-01-17 14:07:46 +0000143
144 // startswith(<s>, [][base=Mann]
Joachim Bingelffd65e32014-01-22 14:22:57 +0000145 String et4 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000146 "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
147 "{@type=korap:span, key=s}," +
148 "{@type=korap:group, operation=operation:sequence, offset-min=1, offset-max=1, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000149 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}" +
Joachim Bingel87480d02014-01-17 14:07:46 +0000150 "]}" +
151 "]}";
Joachim Bingelffd65e32014-01-22 14:22:57 +0000152 ppt = new PoliqarpPlusTree("startswith(<s>, [][base=Mann])");
153 map = ppt.getRequestMap().get("query").toString();
154 assertEquals(et4.replaceAll(" ", ""), map.replaceAll(" ", ""));
155
Joachim Bingel11d5b152014-02-11 21:33:47 +0000156 // [base=der][]{2,5}[base=Mann][]?[][base=Frau] nested distances=
Joachim Bingelffd65e32014-01-22 14:22:57 +0000157 String et5 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000158 "{@type=korap:group, operation=operation:sequence, inOrder=true, distances=[" +
Joachim Bingelb8a44a12014-04-17 09:35:30 +0000159 "{@type=korap:distance, key=w, min=3, max=6}" +
Joachim Bingelffd65e32014-01-22 14:22:57 +0000160 "], " +
Joachim Bingel11d5b152014-02-11 21:33:47 +0000161 "operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000162 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000163 "{@type=korap:group, operation=operation:sequence, inOrder=true, distances=[" +
Joachim Bingelb8a44a12014-04-17 09:35:30 +0000164 "{@type=korap:distance, key=w, min=2, max=3}" +
Joachim Bingelffd65e32014-01-22 14:22:57 +0000165 "], " +
Joachim Bingel11d5b152014-02-11 21:33:47 +0000166 "operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000167 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}," +
168 "{@type=korap:token, wrap={@type=korap:term, key=Frau, layer=lemma, match=match:eq}}" +
Joachim Bingelffd65e32014-01-22 14:22:57 +0000169 "]}" +
170 "]}";
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000171 ppt = new PoliqarpPlusTree("[base=der][]{2,5}[base=Mann][]?[][base=Frau]");
Joachim Bingel87480d02014-01-17 14:07:46 +0000172 map = ppt.getRequestMap().get("query").toString();
173 assertEquals(et5.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel87480d02014-01-17 14:07:46 +0000174
175 }
Joachim Bingel53333e62013-12-09 19:25:52 +0000176
177 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000178 public void testCoordinatedFields() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +0000179 // [base=Mann&(cas=N|cas=A)]
180 String cof1 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000181 "{@type=korap:token, wrap=" +
Joachim Bingel2980bda2014-04-04 12:09:46 +0000182 "{@type=korap:termGroup, relation=relation:and, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000183 "{@type=korap:term, key=Mann, layer=lemma, match=match:eq}," +
Joachim Bingel2980bda2014-04-04 12:09:46 +0000184 "{@type=korap:termGroup, relation=relation:or, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000185 "{@type=korap:term, key=N, layer=cas, match=match:eq}," +
186 "{@type=korap:term, key=A, layer=cas, match=match:eq}" +
187 "]}" +
188 "]}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000189 "}";
190 ppt = new PoliqarpPlusTree("[base=Mann&(cas=N|cas=A)]");
191 map = ppt.getRequestMap().get("query").toString();
192 assertEquals(cof1.replaceAll(" ", ""), map.replaceAll(" ", ""));
Nils Diewald7d486c22013-12-13 16:32:18 +0000193
194
195 assertEquals(
196 new PoliqarpPlusTree(" [ base=Mann & ( cas=N | cas=A)] ").getRequestMap().get("query").toString(),
197 new PoliqarpPlusTree("[base=Mann &(cas=N|cas=A)]").getRequestMap().get("query").toString()
198 );
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000199
200 // [base=Mann&cas=N&gen=m]
201 String cof2 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000202 "{@type=korap:token, wrap=" +
Joachim Bingel2980bda2014-04-04 12:09:46 +0000203 "{@type=korap:termGroup, relation=relation:and, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000204 "{@type=korap:term, key=Mann, layer=lemma, match=match:eq}," +
205 "{@type=korap:term, key=N, layer=cas, match=match:eq}," +
206 "{@type=korap:term, key=m, layer=gen, match=match:eq}" +
207 "]}" +
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000208 "}";
209 ppt = new PoliqarpPlusTree("[base=Mann&cas=N&gen=m]");
210 map = ppt.getRequestMap().get("query").toString();
211 assertEquals(cof2.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +0000212 }
213
214 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000215 public void testOccurrence() throws QueryException {
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000216 // [base=foo]*
Joachim Bingel2daf9862014-02-12 10:18:54 +0000217 String occ1 = "{@type=korap:group, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000218 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000219 "], operation=operation:repetition, min=0, max=100}";
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000220 ppt = new PoliqarpPlusTree("[base=foo]*");
221 map = ppt.getRequestMap().get("query").toString();
222 assertEquals(occ1.replaceAll(" ", ""), map.replaceAll(" ", ""));
223
224 // [base=foo]*[base=bar]
225 String occ2 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000226 "{@type=korap:group, operation=operation:sequence, operands=[" +
227 "{@type=korap:group, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000228 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000229 "], operation=operation:repetition, min=0, max=100 }," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000230 "{@type=korap:token, wrap={@type=korap:term, key=bar, layer=lemma, match=match:eq}}" +
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000231 "]}";
232 ppt = new PoliqarpPlusTree("[base=foo]*[base=bar]");
233 map = ppt.getRequestMap().get("query").toString();
234 assertEquals(occ2.replaceAll(" ", ""), map.replaceAll(" ", ""));
235
236 // [base=bar][base=foo]*
237 String occ3 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000238 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000239 "{@type=korap:token, wrap={@type=korap:term, key=bar, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000240 "{@type=korap:group, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000241 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000242 "], operation=operation:repetition, min=0, max=100 }" +
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000243 "]}";
244 ppt = new PoliqarpPlusTree("[base=bar][base=foo]*");
245 map = ppt.getRequestMap().get("query").toString();
246 assertEquals(occ3.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingelb4da7022013-12-09 23:17:24 +0000247
248 // ([base=bar][base=foo])*
249 String occ4 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000250 "{@type=korap:group, operands=[" +
251 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000252 "{@type=korap:token, wrap={@type=korap:term, key=bar, layer=lemma, match=match:eq}}," +
253 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000254 "]}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000255 "], operation=operation:repetition, min=0, max=100 }" ;
Joachim Bingelb4da7022013-12-09 23:17:24 +0000256 ppt = new PoliqarpPlusTree("([base=bar][base=foo])*");
257 map = ppt.getRequestMap().get("query").toString();
258 assertEquals(occ4.replaceAll(" ", ""), map.replaceAll(" ", ""));
259
260 // <s>([base=bar][base=foo])*
261 String occ5 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000262 "{@type=korap:group, operation=operation:sequence, operands=[" +
263 "{@type=korap:span, key=s}," +
264 "{@type=korap:group, operands=[" +
265 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000266 "{@type=korap:token, wrap={@type=korap:term, key=bar, layer=lemma, match=match:eq}}," +
267 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000268 "]}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000269 "], operation=operation:repetition, min=0, max=100 }" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000270 "]}" ;
271 ppt = new PoliqarpPlusTree("<s>([base=bar][base=foo])*");
272 map = ppt.getRequestMap().get("query").toString();
273 assertEquals(occ5.replaceAll(" ", ""), map.replaceAll(" ", ""));
274
275 // <s><np>([base=bar][base=foo])*
Joachim Bingelb4da7022013-12-09 23:17:24 +0000276 String occ6 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000277 "{@type=korap:group, operation=operation:sequence, operands=[" +
278 "{@type=korap:span, key=s}," +
279 "{@type=korap:span, key=np}," +
280 "{@type=korap:group, operands=[" +
281 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000282 "{@type=korap:token, wrap={@type=korap:term, key=bar, layer=lemma, match=match:eq}}," +
283 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000284 "]}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000285 "], operation=operation:repetition, min=0, max=100 }" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000286 "]}" ;
287 ppt = new PoliqarpPlusTree("<s><np>([base=bar][base=foo])*");
288 map = ppt.getRequestMap().get("query").toString();
289 assertEquals(occ6.replaceAll(" ", ""), map.replaceAll(" ", ""));
290
291 // <s><np>([base=bar][base=foo])*[p=NN]
292 // comment: embedded sequence shouldn't really be here, but does not really hurt, either. (?)
293 // really hard to get this behaviour out of the PQPlus grammar...
294 String occ7 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000295 "{@type=korap:group, operation=operation:sequence, operands=[" +
296 "{@type=korap:span, key=s}," +
297 "{@type=korap:span, key=np}," +
298 "{@type=korap:group, operands=[" +
299 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000300 "{@type=korap:token, wrap={@type=korap:term, key=bar, layer=lemma, match=match:eq}}," +
301 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000302 "]}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000303 "], operation=operation:repetition, min=0, max=100 }," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000304 "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, match=match:eq}}" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000305 "]}" ;
306 ppt = new PoliqarpPlusTree("<s><np>([base=bar][base=foo])*[p=NN]");
307 map = ppt.getRequestMap().get("query").toString();
308 assertEquals(occ7.replaceAll(" ", ""), map.replaceAll(" ", ""));
309
310 // ([base=bar][base=foo])*[p=NN]
Joachim Bingelb4da7022013-12-09 23:17:24 +0000311 String occ8 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000312 "{@type=korap:group, operation=operation:sequence, operands=[" +
313 "{@type=korap:group, operands=[" +
314 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000315 "{@type=korap:token, wrap={@type=korap:term, key=bar, layer=lemma, match=match:eq}}," +
316 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000317 "]}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000318 "], operation=operation:repetition, min=0, max=100 }," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000319 "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, match=match:eq}}" +
Joachim Bingelb4da7022013-12-09 23:17:24 +0000320 "]}" ;
321 ppt = new PoliqarpPlusTree("([base=bar][base=foo])*[p=NN]");
322 map = ppt.getRequestMap().get("query").toString();
323 assertEquals(occ8.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000324
325 // [base=foo]+
Joachim Bingel2daf9862014-02-12 10:18:54 +0000326 String occ9 = "{@type=korap:group, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000327 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000328 "], operation=operation:repetition, min=1, max=100}";
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000329 ppt = new PoliqarpPlusTree("[base=foo]+");
330 map = ppt.getRequestMap().get("query").toString();
331 assertEquals(occ9.replaceAll(" ", ""), map.replaceAll(" ", ""));
332
333 // [base=foo]?
Joachim Bingel2daf9862014-02-12 10:18:54 +0000334 String occ10 = "{@type=korap:group, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000335 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000336 "], operation=operation:repetition, min=0, max=1}";
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000337 ppt = new PoliqarpPlusTree("[base=foo]?");
338 map = ppt.getRequestMap().get("query").toString();
339 assertEquals(occ10.replaceAll(" ", ""), map.replaceAll(" ", ""));
340
341 // [base=foo]{2,5}
Joachim Bingel2daf9862014-02-12 10:18:54 +0000342 String occ11 = "{@type=korap:group, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000343 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000344 "], operation=operation:repetition, min=2, max=5}";
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000345 ppt = new PoliqarpPlusTree("[base=foo]{2,5}");
346 map = ppt.getRequestMap().get("query").toString();
347 assertEquals(occ11.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel2980bda2014-04-04 12:09:46 +0000348
349 // [base=foo]{2}
350 String occ12 = "{@type=korap:group, operands=[" +
351 "{@type=korap:token, wrap={@type=korap:term, key=foo, layer=lemma, match=match:eq}}" +
352 "], operation=operation:repetition, min=2, max=2}";
353 ppt = new PoliqarpPlusTree("[base=foo]{2}");
354 map = ppt.getRequestMap().get("query").toString();
355 assertEquals(occ12.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +0000356 }
357
358 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000359 public void testTokenSequence() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +0000360 // [base=Mann][orth=Frau]
Joachim Bingel2daf9862014-02-12 10:18:54 +0000361 String seq1 = "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000362 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}, " +
363 "{@type=korap:token, wrap={@type=korap:term, key=Frau, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000364 "]}";
365 assertTrue(equalsQueryContent(seq1, "[base=Mann][orth=Frau]"));
366
367 // [base=Mann][orth=Frau][p=NN]
Joachim Bingel2daf9862014-02-12 10:18:54 +0000368 String seq2 = "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000369 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}, " +
370 "{@type=korap:token, wrap={@type=korap:term, key=Frau, layer=orth, match=match:eq}}, " +
371 "{@type=korap:token, wrap={@type=korap:term, key=NN,layer=p, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000372 "]}";
373 assertTrue(equalsQueryContent(seq2, "[base=Mann][orth=Frau][p=NN]"));
374 }
375
376 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000377 public void testDisjSegments() throws QueryException {
Joachim Bingel94a1ccd2013-12-10 10:37:29 +0000378 // ([base=der]|[base=das])[base=Schild]
379 String disj1 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000380 "{@type=korap:group, operation=operation:sequence, operands=[" +
381 "{@type=korap:group, operation=operation:or, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000382 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
383 "{@type=korap:token, wrap={@type=korap:term, key=das, layer=lemma, match=match:eq}}" +
Joachim Bingel94a1ccd2013-12-10 10:37:29 +0000384 "]}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000385 "{@type=korap:token, wrap={@type=korap:term, key=Schild, layer=lemma, match=match:eq}}" +
Joachim Bingel94a1ccd2013-12-10 10:37:29 +0000386 "]}";
387 ppt = new PoliqarpPlusTree("([base=der]|[base=das])[base=Schild]");
388 map = ppt.getRequestMap().get("query").toString();
389 assertEquals(disj1.replaceAll(" ", ""), map.replaceAll(" ", ""));
390
391 // [base=Schild]([base=der]|[base=das])
392 String disj2 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000393 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000394 "{@type=korap:token, wrap={@type=korap:term, key=Schild, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000395 "{@type=korap:group, operation=operation:or, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000396 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
397 "{@type=korap:token, wrap={@type=korap:term, key=das, layer=lemma, match=match:eq}}" +
Joachim Bingel94a1ccd2013-12-10 10:37:29 +0000398 "]}" +
399 "]}";
400 ppt = new PoliqarpPlusTree("[base=Schild]([base=der]|[base=das])");
401 map = ppt.getRequestMap().get("query").toString();
402 assertEquals(disj2.replaceAll(" ", ""), map.replaceAll(" ", ""));
403 }
404
405 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000406 public void testTokenElemSequence() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +0000407 // [base=Mann]<vp>
Joachim Bingel2daf9862014-02-12 10:18:54 +0000408 String seq1 = "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000409 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}, " +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000410 "{@type=korap:span, key=vp}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000411 "]}";
412 assertTrue(equalsQueryContent(seq1, "[base=Mann]<vp>"));
413
414 // <vp>[base=Mann]
Joachim Bingel2daf9862014-02-12 10:18:54 +0000415 String seq2 = "{@type=korap:group, operation=operation:sequence, operands=[" +
416 "{@type=korap:span, key=vp}, "+
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000417 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}} " +
Joachim Bingel53333e62013-12-09 19:25:52 +0000418 "]}";
419 assertTrue(equalsQueryContent(seq2, "<vp>[base=Mann]"));
420
421 // <vp>[base=Mann]<pp>
Joachim Bingel2daf9862014-02-12 10:18:54 +0000422 String seq3 = "{@type=korap:group, operation=operation:sequence, operands=[" +
423 "{@type=korap:span, key=vp}, "+
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000424 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}, " +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000425 "{@type=korap:span, key=pp} "+
Joachim Bingel53333e62013-12-09 19:25:52 +0000426 "]}";
427 assertTrue(equalsQueryContent(seq3, "<vp>[base=Mann]<pp>"));
428 }
429
430 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000431 public void testElemSequence() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +0000432 // <np><vp>
Joachim Bingel2daf9862014-02-12 10:18:54 +0000433 String seq1 = "{@type=korap:group, operation=operation:sequence, operands=[" +
434 "{@type=korap:span, key=np}," +
435 "{@type=korap:span, key=vp}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000436 "]}";
437 assertTrue(equalsQueryContent(seq1, "<np><vp>"));
438
439 // <np><vp><pp>
Joachim Bingel2daf9862014-02-12 10:18:54 +0000440 String seq2 = "{@type=korap:group, operation=operation:sequence, operands=[" +
441 "{@type=korap:span, key=np}," +
442 "{@type=korap:span, key=vp}," +
443 "{@type=korap:span, key=pp}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000444 "]}";
445 assertTrue(equalsQueryContent(seq2, "<np><vp><pp>"));
446 }
447
448 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000449 public void testClasses() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +0000450 // {[base=Mann]}
Joachim Bingel2daf9862014-02-12 10:18:54 +0000451 String cls1 = "{@type=korap:group, operation=operation:class, class=0, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000452 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000453 "]}";
Joachim Bingel8c640e42014-02-07 16:20:47 +0000454 ppt = new PoliqarpPlusTree("{[base=Mann]}");
455 map = ppt.getRequestMap().get("query").toString();
456 assertEquals(cls1.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +0000457
458 // {[base=Mann][orth=Frau]}
Joachim Bingel2daf9862014-02-12 10:18:54 +0000459 String cls2 = "{@type=korap:group, operation=operation:class, class=0, operands=[" +
460 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000461 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}," +
462 "{@type=korap:token, wrap={@type=korap:term, key=Frau, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000463 "]}" +
464 "]}";
465 assertTrue(equalsQueryContent(cls2, "{[base=Mann][orth=Frau]}"));
466
467 // [p=NN]{[base=Mann][orth=Frau]}
Joachim Bingel2daf9862014-02-12 10:18:54 +0000468 String cls3 = "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000469 "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000470 "{@type=korap:group, operation=operation:class, class=0, operands=[" +
471 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000472 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}," +
473 "{@type=korap:token, wrap={@type=korap:term, key=Frau, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000474 "]}" +
475 "]}" +
476 "]}";
477 assertTrue(equalsQueryContent(cls3, "[p=NN]{[base=Mann][orth=Frau]}"));
478
479 // {[base=Mann][orth=Frau]}[p=NN]
Joachim Bingel2daf9862014-02-12 10:18:54 +0000480 String cls4 = "{@type=korap:group, operation=operation:sequence, operands=[" +
481 "{@type=korap:group, operation=operation:class, class=0, operands=[" +
482 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000483 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}," +
484 "{@type=korap:token, wrap={@type=korap:term, key=Frau, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000485 "]}" +
486 "]}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000487 "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000488 "]}";
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000489 ppt = new PoliqarpPlusTree("{[base=Mann][orth=Frau]}[p=NN]");
490 map = ppt.getRequestMap().get("query").toString();
491 assertEquals(cls4.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000492
493 // {2:{1:[tt/p=ADJA]}[mate/p=NN]}"
Joachim Bingel2daf9862014-02-12 10:18:54 +0000494 String cls5 = "{@type=korap:group, operation=operation:class, class=2, operands=[" +
495 "{@type=korap:group, operation=operation:sequence, operands=[" +
496 "{@type=korap:group, operation=operation:class, class=1, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000497 "{@type=korap:token, wrap={@type=korap:term, key=ADJA, layer=p, foundry=tt, match=match:eq}}" +
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000498 "]}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000499 "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, foundry=mate, match=match:eq}}" +
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000500 "]}" +
501 "]}";
502 ppt = new PoliqarpPlusTree("{2: {1:[tt/p=ADJA]}[mate/p=NN]}");
503 map = ppt.getRequestMap().get("query").toString();
504 assertEquals(cls5.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +0000505 }
506
507 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000508 public void testPositions() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +0000509 // contains(<s>,<np>)
Joachim Bingel2daf9862014-02-12 10:18:54 +0000510 String pos1 = "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
511 "{@type=korap:span, key=s}," +
512 "{@type=korap:span, key=np}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000513 "]}";
514 assertTrue(equalsQueryContent(pos1, "contains(<s>,<np>)"));
515
516 // contains(<s>,[base=Mann])
Joachim Bingel2daf9862014-02-12 10:18:54 +0000517 String pos2 = "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
518 "{@type=korap:span, key=s}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000519 "{@type=korap:token, wrap= {@type=korap:term, key=Mann, layer=lemma, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000520 "]}";
521 assertTrue(equalsQueryContent(pos2, "contains(<s>,[base=Mann])"));
522
523 // contains(<s>,[orth=der][orth=Mann])
Joachim Bingel2daf9862014-02-12 10:18:54 +0000524 String pos3 = "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
525 "{@type=korap:span, key=s}," +
526 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000527 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=orth, match=match:eq}}," +
528 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000529 "]}" +
530 "]}";
531 ppt = new PoliqarpPlusTree("contains(<s>,[orth=der][orth=Mann])");
532 map = ppt.getRequestMap().get("query").toString();
533 assertEquals(pos3.replaceAll(" ", ""), map.replaceAll(" ", ""));
534
535 // [base=Auto]contains(<s>,[base=Mann])
536 String pos4 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000537 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000538 "{@type=korap:token, wrap={@type=korap:term, key=Auto, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000539 "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
540 "{@type=korap:span, key=s}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000541 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000542 "]}" +
543 "]}";
544 ppt = new PoliqarpPlusTree("[base=Auto]contains(<s>,[base=Mann])");
545 map = ppt.getRequestMap().get("query").toString();
546 assertEquals(pos4.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingelef7059b2014-04-22 13:44:19 +0000547
548 // contains(<s>,[pos=N]*)
549 String pos5 =
550 "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
551 "{@type=korap:span, key=s}," +
552 "{@type=korap:group, " +
553 "operands=[{@type=korap:token, wrap={@type=korap:term, key=N, layer=pos, match=match:eq}}" +
554 "], operation=operation:repetition, min=0, max=100" +
555 "}" +
556 "]}";
557 ppt = new PoliqarpPlusTree("contains(<s>,[pos=N]*)");
558 map = ppt.getRequestMap().get("query").toString();
559 assertEquals(pos5.replaceAll(" ", ""), map.replaceAll(" ", ""));
560
561 // [base=Auto]contains(<s>,[pos=N]*)
562 String pos6 =
563 "{@type=korap:group, operation=operation:sequence, operands=[" +
564 "{@type=korap:token, wrap={@type=korap:term, key=Auto, layer=lemma, match=match:eq}}," +
565 "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
566 "{@type=korap:span, key=s}," +
567 "{@type=korap:group, " +
568 "operands=[{@type=korap:token, wrap={@type=korap:term, key=N, layer=pos, match=match:eq}}" +
569 "], operation=operation:repetition, min=0, max=100" +
570 "}" +
571 "]}" +
572 "]}";
573 ppt = new PoliqarpPlusTree("[base=Auto]contains(<s>,[pos=N]*)");
574 map = ppt.getRequestMap().get("query").toString();
575 assertEquals(pos6.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +0000576 }
577
578 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000579 public void testNestedPositions() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +0000580 // contains(<s>,startswith(<np>,[orth=Der]))
581 String npos1 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000582 "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
583 "{@type=korap:span, key=s}," +
584 "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
585 "{@type=korap:span, key=np}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000586 "{@type=korap:token, wrap={@type=korap:term, key=Der, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000587 "]}" +
588 "]}";
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000589 ppt = new PoliqarpPlusTree("contains(<s>, startswith(<np>,[orth=Der]))");
Joachim Bingel53333e62013-12-09 19:25:52 +0000590 map = ppt.getRequestMap().get("query").toString();
591 assertEquals(npos1.replaceAll(" ", ""), map.replaceAll(" ", ""));
592 }
593
594 @Test
Joachim Bingel16da4e12013-12-17 09:48:12 +0000595 public void testShrinkSplit() throws QueryException {
Joachim Bingel53333e62013-12-09 19:25:52 +0000596 // shrink([orth=Der]{[orth=Mann]})
597 String shr1 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000598 "{@type=korap:group, operation=operation:submatch, classRef=[0], operands=[" +
599 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000600 "{@type=korap:token, wrap={@type=korap:term, key=Der, layer=orth, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000601 "{@type=korap:group, operation=operation:class, class=0, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000602 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000603 "]}" +
604 "]}" +
605 "]}";
606 ppt = new PoliqarpPlusTree("shrink([orth=Der]{[orth=Mann]})");
607 map = ppt.getRequestMap().get("query").toString();
608 assertEquals(shr1.replaceAll(" ", ""), map.replaceAll(" ", ""));
609
610 // shrink([orth=Der]{[orth=Mann][orth=geht]})
611 String shr2 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000612 "{@type=korap:group, operation=operation:submatch, classRef=[0], operands=[" +
613 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000614 "{@type=korap:token, wrap={@type=korap:term, key=Der, layer=orth, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000615 "{@type=korap:group, operation=operation:class, class=0, operands=[" +
616 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000617 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}," +
618 "{@type=korap:token, wrap={@type=korap:term, key=geht, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000619 "]}" +
620 "]}" +
621 "]}" +
622 "]}";
623 ppt = new PoliqarpPlusTree("shrink([orth=Der]{[orth=Mann][orth=geht]})");
624 map = ppt.getRequestMap().get("query").toString();
625 assertEquals(shr2.replaceAll(" ", ""), map.replaceAll(" ", ""));
626
627 // shrink(1:[orth=Der]{1:[orth=Mann][orth=geht]})
628 String shr3 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000629 "{@type=korap:group, operation=operation:submatch, classRef=[1], operands=[" +
630 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000631 "{@type=korap:token, wrap={@type=korap:term, key=Der, layer=orth, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000632 "{@type=korap:group, operation=operation:class, class=1, operands=[" +
633 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000634 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}," +
635 "{@type=korap:token, wrap={@type=korap:term, key=geht, layer=orth, match=match:eq}}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000636 "]}" +
637 "]}" +
638 "]}" +
639 "]}";
640 ppt = new PoliqarpPlusTree("shrink(1:[orth=Der]{1:[orth=Mann][orth=geht]})");
641 map = ppt.getRequestMap().get("query").toString();
642 assertEquals(shr3.replaceAll(" ", ""), map.replaceAll(" ", ""));
643
644 // shrink(1:startswith(<s>,{1:<np>}))
645 String shr4 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000646 "{@type=korap:group, operation=operation:submatch, classRef=[1], operands=[" +
647 "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
648 "{@type=korap:span, key=s}," +
649 "{@type=korap:group, operation=operation:class, class=1, operands=[" +
650 "{@type=korap:span, key=np}" +
Joachim Bingel53333e62013-12-09 19:25:52 +0000651 "]}" +
652 "]}" +
653 "]}";
Joachim Bingeladefa622013-12-13 10:51:48 +0000654 ppt = new PoliqarpPlusTree("shrink(1:startswith(<s>,{1:<np>}))");
Joachim Bingel53333e62013-12-09 19:25:52 +0000655 map = ppt.getRequestMap().get("query").toString();
656 assertEquals(shr4.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000657
658 // shrink(3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))
659 String shr5 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000660 "{@type=korap:group, operation=operation:submatch, classRef=[3], operands=[" +
661 "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
662 "{@type=korap:span, key=s}," +
663 "{@type=korap:group, operation=operation:class, class=3, operands=[" +
664 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000665 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000666 "{@type=korap:group, operation=operation:class, class=1, operands=[" +
667 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000668 "{@type=korap:token, wrap={@type=korap:term, key=ADJA, layer=p, foundry=mate, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000669 "{@type=korap:group, operation=operation:class, class=2, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000670 "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, foundry=tt, match=match:eq}}" +
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000671 "]}" +
672 "]}" +
673 "]}" +
674 "]}" +
675 "]}" +
676 "]}" +
677 "]}";
Joachim Bingeladefa622013-12-13 10:51:48 +0000678 ppt = new PoliqarpPlusTree("shrink(3:startswith(<s>,{3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}})) ");
Joachim Bingelcd9ed332013-12-09 21:01:35 +0000679 map = ppt.getRequestMap().get("query").toString();
680 assertEquals(shr5.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000681
682 // split(3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))
683 String shr6 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000684 "{@type=korap:group, operation=operation:split, classRef=[3], operands=[" +
685 "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
686 "{@type=korap:span, key=s}," +
687 "{@type=korap:group, operation=operation:class, class=3, operands=[" +
688 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000689 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000690 "{@type=korap:group, operation=operation:class, class=1, operands=[" +
691 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000692 "{@type=korap:token, wrap={@type=korap:term, key=ADJA, layer=p, foundry=mate, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000693 "{@type=korap:group, operation=operation:class, class=2, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000694 "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, foundry=tt, match=match:eq}}" +
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000695 "]}" +
696 "]}" +
697 "]}" +
698 "]}" +
699 "]}" +
700 "]}" +
701 "]}";
702 ppt = new PoliqarpPlusTree("split(3:startswith(<s>,{3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}})) ");
703 map = ppt.getRequestMap().get("query").toString();
704 assertEquals(shr6.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel8c640e42014-02-07 16:20:47 +0000705
706 // split(2|3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))
707 String shr7 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000708 "{@type=korap:group, operation=operation:split, classRef=[2, 3], classRefOp=classRefOp:intersection, operands=[" +
709 "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
710 "{@type=korap:span, key=s}," +
711 "{@type=korap:group, operation=operation:class, class=3, operands=[" +
712 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000713 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000714 "{@type=korap:group, operation=operation:class, class=1, operands=[" +
715 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000716 "{@type=korap:token, wrap={@type=korap:term, key=ADJA, layer=p, foundry=mate, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000717 "{@type=korap:group, operation=operation:class, class=2, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000718 "{@type=korap:token, wrap={@type=korap:term, key=NN, layer=p, foundry=tt, match=match:eq}}" +
Joachim Bingel8c640e42014-02-07 16:20:47 +0000719 "]}" +
720 "]}" +
721 "]}" +
722 "]}" +
723 "]}" +
724 "]}" +
725 "]}";
726 ppt = new PoliqarpPlusTree("split(2|3:startswith(<s>,{3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}})) ");
727 map = ppt.getRequestMap().get("query").toString();
728 assertEquals(shr7.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +0000729 }
730
Joachim Bingel03882702013-12-31 19:53:05 +0000731
Joachim Bingel53333e62013-12-09 19:25:52 +0000732 @Test
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000733 public void testFoundries() throws QueryException {
734 // [tt/base=Mann]
Joachim Bingelac13a472014-02-14 21:18:52 +0000735 String layer1 = "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=lemma, foundry=tt, match=match:eq}}";
Joachim Bingelba9a0ab2014-01-29 10:12:25 +0000736 ppt = new PoliqarpPlusTree("[tt/base=Mann]");
737 map = ppt.getRequestMap().get("query").toString();
738 assertEquals(layer1.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel53333e62013-12-09 19:25:52 +0000739
740 }
Joachim Bingel16da4e12013-12-17 09:48:12 +0000741
742 @Test
Joachim Bingel8c640e42014-02-07 16:20:47 +0000743 public void testAlign() throws QueryException {
Joachim Bingel16da4e12013-12-17 09:48:12 +0000744 // [orth=der]^[orth=Mann]
745 String align1 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000746 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000747 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=orth, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000748 "{@type=korap:group, alignment=left, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000749 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
Joachim Bingel03882702013-12-31 19:53:05 +0000750 "]}" +
Joachim Bingel16da4e12013-12-17 09:48:12 +0000751 "]}";
752 ppt = new PoliqarpPlusTree("[orth=der]^[orth=Mann]");
753 map = ppt.getRequestMap().get("query").toString();
754 assertEquals(align1.replaceAll(" ", ""), map.replaceAll(" ", ""));
755
Joachim Bingel84e33df2014-01-31 14:02:46 +0000756 // [orth=der]^[orth=große][orth=Mann]
757 String query = "[orth=der]^[orth=große][orth=Mann]";
758 String align1b =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000759 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000760 "{@type=korap:token, wrap={@type=korap:term, key=der, layer=orth, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000761 "{@type=korap:group, alignment=left, operands=[" +
762 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000763 "{@type=korap:token, wrap={@type=korap:term, key=große, layer=orth, match=match:eq}}," +
764 "{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
Joachim Bingel84e33df2014-01-31 14:02:46 +0000765 "]}" +
766 "]}" +
767 "]}";
768 ppt = new PoliqarpPlusTree(query);
769 map = ppt.getRequestMap().get("query").toString();
770 assertEquals(align1b.replaceAll(" ", ""), map.replaceAll(" ", ""));
771
Joachim Bingel16da4e12013-12-17 09:48:12 +0000772 // "([base=a]^[base=b])|[base=c]",
773 String align2 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000774 "{@type=korap:group, operation=operation:or, operands=[" +
775 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000776 "{@type=korap:token, wrap={@type=korap:term, key=a, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000777 "{@type=korap:group, alignment=left, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000778 "{@type=korap:token, wrap={@type=korap:term, key=b, layer=lemma, match=match:eq}}" +
Joachim Bingel03882702013-12-31 19:53:05 +0000779 "]}" +
Joachim Bingel16da4e12013-12-17 09:48:12 +0000780 "]}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000781 "{@type=korap:token, wrap={@type=korap:term, key=c, layer=lemma, match=match:eq}}" +
Joachim Bingel16da4e12013-12-17 09:48:12 +0000782 "]}";
783 ppt = new PoliqarpPlusTree("([base=a]^[base=b])|[base=c]");
784 map = ppt.getRequestMap().get("query").toString();
785 assertEquals(align2.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingela67e6a32014-01-02 18:35:24 +0000786
787 // "([base=a]^[base=b][base=c])|[base=d]",
788 String align3 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000789 "{@type=korap:group, operation=operation:or, operands=[" +
790 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000791 "{@type=korap:token, wrap={@type=korap:term, key=a, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000792 "{@type=korap:group, alignment=left, operands=[" +
793 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000794 "{@type=korap:token, wrap={@type=korap:term, key=b, layer=lemma, match=match:eq}}," +
795 "{@type=korap:token, wrap={@type=korap:term, key=c, layer=lemma, match=match:eq}}" +
Joachim Bingel84e33df2014-01-31 14:02:46 +0000796 "]}" +
797 "]}" +
Joachim Bingela67e6a32014-01-02 18:35:24 +0000798 "]}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000799 "{@type=korap:token, wrap={@type=korap:term, key=d, layer=lemma, match=match:eq}}" +
Joachim Bingela67e6a32014-01-02 18:35:24 +0000800 "]}";
801 ppt = new PoliqarpPlusTree("([base=a]^[base=b][base=c])|[base=d]");
802 map = ppt.getRequestMap().get("query").toString();
803 assertEquals(align3.replaceAll(" ", ""), map.replaceAll(" ", ""));
804
805 // "([base=a]^[base=b]^[base=c])|[base=d]",
806 String align4 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000807 "{@type=korap:group, operation=operation:or, operands=[" +
808 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000809 "{@type=korap:token, wrap={@type=korap:term, key=a, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000810 "{@type=korap:group, alignment=left, operands=[" +
811 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000812 "{@type=korap:token, wrap={@type=korap:term, key=b, layer=lemma, match=match:eq}}," +
Joachim Bingel2daf9862014-02-12 10:18:54 +0000813 "{@type=korap:group, alignment=left, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000814 "{@type=korap:token, wrap={@type=korap:term, key=c, layer=lemma, match=match:eq}}" +
Joachim Bingel84e33df2014-01-31 14:02:46 +0000815 "]}" +
816 "]}" +
Joachim Bingela67e6a32014-01-02 18:35:24 +0000817 "]}" +
818 "]}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000819 "{@type=korap:token, wrap={@type=korap:term, key=d, layer=lemma, match=match:eq}}" +
Joachim Bingela67e6a32014-01-02 18:35:24 +0000820 "]}";
821 ppt = new PoliqarpPlusTree("([base=a]^[base=b]^[base=c])|[base=d]");
822 map = ppt.getRequestMap().get("query").toString();
823 assertEquals(align4.replaceAll(" ", ""), map.replaceAll(" ", ""));
824
825
Joachim Bingel16da4e12013-12-17 09:48:12 +0000826 }
827
828 @Test
Joachim Bingel8c640e42014-02-07 16:20:47 +0000829 public void testSimpleQueries() throws QueryException {
Joachim Bingela67e6a32014-01-02 18:35:24 +0000830 // Baum
831 String simple1 =
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000832 "{@type=korap:token, wrap={@type=korap:term, key=Baum, layer=orth, match=match:eq}}";
Joachim Bingela67e6a32014-01-02 18:35:24 +0000833 ppt = new PoliqarpPlusTree("Baum");
834 map = ppt.getRequestMap().get("query").toString();
835 assertEquals(simple1.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel16da4e12013-12-17 09:48:12 +0000836
Joachim Bingela67e6a32014-01-02 18:35:24 +0000837 // Der Baum
838 String simple2 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000839 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000840 "{@type=korap:token, wrap={@type=korap:term, key=Der, layer=orth, match=match:eq}}, " +
841 "{@type=korap:token, wrap={@type=korap:term, key=Baum, layer=orth, match=match:eq}}" +
Joachim Bingela67e6a32014-01-02 18:35:24 +0000842 "]}";
843 ppt = new PoliqarpPlusTree("Der Baum");
844 map = ppt.getRequestMap().get("query").toString();
845 assertEquals(simple2.replaceAll(" ", ""), map.replaceAll(" ", ""));
846
847 // Der große Baum
848 String simple3 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000849 "{@type=korap:group, operation=operation:sequence, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000850 "{@type=korap:token, wrap={@type=korap:term, key=Der, layer=orth, match=match:eq}}, " +
851 "{@type=korap:token, wrap={@type=korap:term, key=große, layer=orth, match=match:eq}}, " +
852 "{@type=korap:token, wrap={@type=korap:term, key=Baum, layer=orth, match=match:eq}}" +
Joachim Bingela67e6a32014-01-02 18:35:24 +0000853 "]}";
854 ppt = new PoliqarpPlusTree("Der große Baum");
855 map = ppt.getRequestMap().get("query").toString();
856 assertEquals(simple3.replaceAll(" ", ""), map.replaceAll(" ", ""));
857
858 // Baum | Stein
859 String simple4 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000860 "{@type=korap:group, operation=operation:or, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000861 "{@type=korap:token, wrap={@type=korap:term, key=Baum, layer=orth, match=match:eq}}, " +
862 "{@type=korap:token, wrap={@type=korap:term, key=Stein, layer=orth, match=match:eq}}" +
Joachim Bingela67e6a32014-01-02 18:35:24 +0000863 "]}";
864 ppt = new PoliqarpPlusTree("Baum | Stein");
865 map = ppt.getRequestMap().get("query").toString();
866 assertEquals(simple4.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel84e33df2014-01-31 14:02:46 +0000867
868 // Baum | Stein Haus
869 String query = "(Baum | Stein) Haus";
870 String simple5 =
Joachim Bingel2daf9862014-02-12 10:18:54 +0000871 "{@type=korap:group, operation=operation:sequence, operands=[" +
872 "{@type=korap:group, operation=operation:or, operands=[" +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000873 "{@type=korap:token, wrap={@type=korap:term, key=Baum, layer=orth, match=match:eq}}, " +
874 "{@type=korap:token, wrap={@type=korap:term, key=Stein, layer=orth, match=match:eq}}" +
Joachim Bingel84e33df2014-01-31 14:02:46 +0000875 "]}," +
Joachim Bingelee3b21d2014-02-12 12:34:59 +0000876 "{@type=korap:token, wrap={@type=korap:term, key=Haus, layer=orth, match=match:eq}} " +
Joachim Bingel84e33df2014-01-31 14:02:46 +0000877 "]}";
878 ppt = new PoliqarpPlusTree(query);
879 map = ppt.getRequestMap().get("query").toString();
880 assertEquals(simple5.replaceAll(" ", ""), map.replaceAll(" ", ""));
Joachim Bingel16da4e12013-12-17 09:48:12 +0000881 }
Joachim Bingel53333e62013-12-09 19:25:52 +0000882}
883