Wrapping of extension queries
diff --git a/src/test/java/de/ids_mannheim/korap/filter/TestKorapCollection.java b/src/test/java/de/ids_mannheim/korap/filter/TestKorapCollection.java
index e645809..9caa0ab 100644
--- a/src/test/java/de/ids_mannheim/korap/filter/TestKorapCollection.java
+++ b/src/test/java/de/ids_mannheim/korap/filter/TestKorapCollection.java
@@ -26,7 +26,7 @@
public class TestKorapCollection {
@Test
- public void filterExample () throws IOException {
+ public void filterExample () throws Exception {
// Construct index
KorapIndex ki = new KorapIndex();
@@ -90,7 +90,7 @@
};
@Test
- public void filterExampleAtomic () throws IOException {
+ public void filterExampleAtomic () throws Exception {
// That's exactly the same test class, but with multiple atomic indices
@@ -168,7 +168,7 @@
@Test
- public void filterExample2 () throws IOException {
+ public void filterExample2 () throws Exception {
// Construct index
KorapIndex ki = new KorapIndex();
diff --git a/src/test/java/de/ids_mannheim/korap/highlight/TestHighlight.java b/src/test/java/de/ids_mannheim/korap/highlight/TestHighlight.java
index 3829c4e..d775bcc 100644
--- a/src/test/java/de/ids_mannheim/korap/highlight/TestHighlight.java
+++ b/src/test/java/de/ids_mannheim/korap/highlight/TestHighlight.java
@@ -12,6 +12,9 @@
import de.ids_mannheim.korap.KorapMatch;
import de.ids_mannheim.korap.index.FieldDocument;
+import de.ids_mannheim.korap.util.QueryException;
+
+
import static de.ids_mannheim.korap.Test.*;
import static org.junit.Assert.*;
@@ -24,7 +27,7 @@
public class TestHighlight { // extends LuceneTestCase {
@Test
- public void checkHighlights () throws IOException {
+ public void checkHighlights () throws IOException, QueryException {
KorapIndex ki = new KorapIndex();
String json = new String(
@@ -93,7 +96,7 @@
};
@Test
- public void checkHighlightsManually () throws IOException {
+ public void checkHighlightsManually () throws IOException, QueryException {
KorapIndex ki = new KorapIndex();
String json = new String(
@@ -134,7 +137,7 @@
@Test
- public void highlightMissingBug () throws IOException {
+ public void highlightMissingBug () throws IOException, QueryException {
KorapIndex ki = new KorapIndex();
FieldDocument fd = new FieldDocument();
fd.addString("ID", "doc-1");
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestElementDistanceIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestElementDistanceIndex.java
index c94a7fc..ce969db 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestElementDistanceIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestElementDistanceIndex.java
@@ -194,7 +194,7 @@
/** Test query from json */
@Test
- public void testCase5() throws IOException{
+ public void testCase5() throws Exception{
//System.out.println("testCase4");
ki = new KorapIndex();
ki.addDocFile(getClass().getResource("/wiki/00001.json.gz").getFile(),true);
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java b/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
index 0b47add..7bf771b 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
@@ -93,7 +93,7 @@
};
@Test
- public void indexExample2 () throws IOException {
+ public void indexExample2 () throws Exception {
String json = new String(
"{" +
@@ -204,7 +204,7 @@
};
@Test
- public void queryJSONBsp18 () throws IOException {
+ public void queryJSONBsp18 () throws Exception {
// Construct index
KorapIndex ki = new KorapIndex();
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestIndex.java
index 7dc69d3..d1dd608 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestIndex.java
@@ -162,7 +162,7 @@
};
@Test
- public void indexLucene () throws IOException {
+ public void indexLucene () throws Exception {
// Base analyzer for searching and indexing
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestMatchIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestMatchIndex.java
index 0f3fe12..529b74a 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestMatchIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestMatchIndex.java
@@ -269,7 +269,7 @@
@Test
- public void indexExample3 () throws IOException {
+ public void indexExample3 () throws Exception {
KorapIndex ki = new KorapIndex();
// abcabcabac
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestNextIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestNextIndex.java
index 85b6db2..8471b20 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestNextIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestNextIndex.java
@@ -327,7 +327,7 @@
}
@Test
- public void indexExample7Distances () throws IOException{
+ public void indexExample7Distances () throws Exception{
KorapIndex ki = new KorapIndex();
ki.addDoc(createFieldDoc1());
ki.addDoc(createFieldDoc2());
@@ -347,7 +347,7 @@
};
@Test
- public void indexExample8Distances () throws IOException{
+ public void indexExample8Distances () throws Exception{
KorapIndex ki = new KorapIndex();
ki.addDoc(createFieldDoc1());
ki.addDoc(createFieldDoc2());
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestRegexWildcardIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestRegexWildcardIndex.java
index ab0729f..1c23494 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestRegexWildcardIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestRegexWildcardIndex.java
@@ -27,7 +27,7 @@
public class TestRegexWildcardIndex {
@Test
- public void indexRegex () throws IOException {
+ public void indexRegex () throws Exception {
KorapIndex ki = new KorapIndex();
// abcabcabac
@@ -84,7 +84,7 @@
};
@Test
- public void indexWildcard () throws IOException {
+ public void indexWildcard () throws Exception {
KorapIndex ki = new KorapIndex();
// abcabcabac
@@ -143,7 +143,7 @@
};
@Test
- public void indexRegexCaseInsensitive () throws IOException {
+ public void indexRegexCaseInsensitive () throws Exception {
KorapIndex ki = new KorapIndex();
// abcabcabac
@@ -208,7 +208,7 @@
};
@Test
- public void indexRegexCombined () throws IOException {
+ public void indexRegexCombined () throws Exception {
KorapIndex ki = new KorapIndex();
// abcabcabac
@@ -244,7 +244,7 @@
@Test
- public void indexRegexWithinRewrite () throws IOException {
+ public void indexRegexWithinRewrite () throws Exception {
KorapIndex ki = new KorapIndex();
// abcabcabac
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestSegmentNegationIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestSegmentNegationIndex.java
index b2f1cd8..7a3851b 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestSegmentNegationIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestSegmentNegationIndex.java
@@ -30,7 +30,7 @@
private Logger log;
@Test
- public void testcaseNegation() throws IOException{
+ public void testcaseNegation() throws Exception {
ki = new KorapIndex();
ki.addDoc(createFieldDoc0());
ki.addDoc(createFieldDoc1());
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestKorapQuery.java b/src/test/java/de/ids_mannheim/korap/query/TestKorapQuery.java
index f6187ad..2eaa1cd 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestKorapQuery.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestKorapQuery.java
@@ -4,6 +4,7 @@
import org.apache.lucene.search.spans.SpanQuery;
import de.ids_mannheim.korap.KorapQuery;
+import de.ids_mannheim.korap.util.QueryException;
import static org.junit.Assert.*;
import org.junit.Test;
@@ -15,7 +16,7 @@
public class TestKorapQuery {
@Test
- public void korapQuerySegment () {
+ public void korapQuerySegment () throws QueryException {
SpanQuery sq = new KorapQuery("field1").seg("a").with("b").toQuery();
assertEquals("spanSegment(field1:a, field1:b)", sq.toString());
@@ -24,7 +25,7 @@
};
@Test
- public void korapQueryRegexSegment () {
+ public void korapQueryRegexSegment () throws QueryException {
KorapQuery kq = new KorapQuery("field1");
SpanQuery sq = kq.seg("a").with(kq.re("b.*c")).toQuery();
assertEquals("spanSegment(field1:a, SpanMultiTermQueryWrapper(field1:/b.*c/))", sq.toString());
@@ -35,7 +36,7 @@
};
@Test
- public void korapQueryRegexSegment2 () {
+ public void korapQueryRegexSegment2 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seg("a").with(kq.or("b").or("c")).toQuery();
assertEquals("spanSegment(field:a, spanOr([field:b, field:c]))", sq.toString());
@@ -52,49 +53,49 @@
};
@Test
- public void korapQuerySequenceSegment () {
+ public void korapQuerySequenceSegment () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("a").with(kq.or("b", "c"))).append("d").append(kq.re("e.?f")).toQuery();
assertEquals("spanNext(spanNext(spanSegment(field:a, spanOr([field:b, field:c])), field:d), SpanMultiTermQueryWrapper(field:/e.?f/))", sq.toString());
};
@Test
- public void KorapTagQuery () {
+ public void KorapTagQuery () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.tag("np").toQuery();
assertEquals("<field:np />", sq.toString());
};
@Test
- public void KorapTagQuery2 () {
+ public void KorapTagQuery2 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.or(kq.tag("np"), kq.tag("vp")).toQuery();
assertEquals("spanOr([<field:np />, <field:vp />])", sq.toString());
};
@Test
- public void KorapTagQuery3 () {
+ public void KorapTagQuery3 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.tag("np"), kq.tag("vp")).toQuery();
assertEquals("spanNext(<field:np />, <field:vp />)", sq.toString());
};
@Test
- public void KorapTagQuery4 () {
+ public void KorapTagQuery4 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.tag("np"), kq.tag("vp")).append("test").toQuery();
assertEquals("spanNext(spanNext(<field:np />, <field:vp />), field:test)", sq.toString());
};
@Test
- public void KorapTagQuery5 () {
+ public void KorapTagQuery5 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.contains(kq.tag("s"), kq.tag("np")).toQuery();
assertEquals("spanContain(<field:s />, <field:np />)", sq.toString());
};
@Test
- public void KorapTagQuery6 () {
+ public void KorapTagQuery6 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("tree"), kq.contains(kq.tag("s"), kq.tag("np")), kq.re("hey.*")).toQuery();
assertEquals("spanNext(spanNext(field:tree, spanContain(<field:s />, <field:np />)), SpanMultiTermQueryWrapper(field:/hey.*/))", sq.toString());
@@ -102,135 +103,133 @@
@Test
- public void KorapClassQuery () {
+ public void KorapClassQuery () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("tree"), kq._(1, kq.contains(kq.tag("s"), kq.tag("np"))), kq.re("hey.*")).toQuery();
assertEquals("spanNext(spanNext(field:tree, {1: spanContain(<field:s />, <field:np />)}), SpanMultiTermQueryWrapper(field:/hey.*/))", sq.toString());
};
@Test
- public void KorapClassQuery2 () {
+ public void KorapClassQuery2 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq._(kq.seg("base:test")).toQuery();
assertEquals("{0: field:base:test}", sq.toString());
};
@Test
- public void KorapClassQuery3 () {
+ public void KorapClassQuery3 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("tree"), kq.contains(kq.tag("s"), kq._(kq.tag("np"))), kq.re("hey.*")).toQuery();
assertEquals("spanNext(spanNext(field:tree, spanContain(<field:s />, {0: <field:np />})), SpanMultiTermQueryWrapper(field:/hey.*/))", sq.toString());
};
@Test
- public void KorapShrinkQuery () {
+ public void KorapShrinkQuery () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.shrink(kq.tag("np")).toQuery();
assertEquals("shrink(0: <field:np />)", sq.toString());
};
@Test
- public void KorapShrinkQuery1 () {
+ public void KorapShrinkQuery1 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.shrink(1, kq.tag("np")).toQuery();
assertEquals("shrink(1: <field:np />)", sq.toString());
};
@Test
- public void KorapShrinkQuery2 () {
+ public void KorapShrinkQuery2 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.shrink(1, kq._(1, kq.tag("np"))).toQuery();
assertEquals("shrink(1: {1: <field:np />})", sq.toString());
};
@Test
- public void KorapShrinkQuery3 () {
+ public void KorapShrinkQuery3 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.shrink(1, kq._(1, kq.seq(kq.tag("np"), kq._(kq.seg("test").without("no"))))).toQuery();
assertEquals("shrink(1: {1: spanNext(<field:np />, {0: spanNot(field:test, field:no, 0, 0)})})", sq.toString());
};
@Test
- public void KorapShrinkQuery4 () {
+ public void KorapShrinkQuery4 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1"), kq.shrink(1, kq._(1, kq.seg("try2"))), kq.seg("try3")).toQuery();
assertEquals("spanNext(spanNext(field:try1, shrink(1: {1: field:try2})), field:try3)", sq.toString());
};
-
@Test
- public void KorapSequenceQuery1 () {
+ public void KorapSequenceQuery1 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).toQuery();
assertEquals("spanNext(field:try1, field:try2)", sq.toString());
};
@Test
- public void KorapSequenceQuery2 () {
+ public void KorapSequenceQuery2 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).withConstraint(2,3).toQuery();
assertEquals("spanDistance(field:try1, field:try2, [(w[2:3], ordered, notExcluded)])", sq.toString());
};
@Test
- public void KorapSequenceQuery3 () {
+ public void KorapSequenceQuery3 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).withConstraint(2,3, "s").toQuery();
assertEquals("spanElementDistance(field:try1, field:try2, [(s[2:3], ordered, notExcluded)])", sq.toString());
};
@Test
- public void KorapSequenceQuery4 () {
+ public void KorapSequenceQuery4 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).withConstraint(2,3,"s").withConstraint(5,6,"w").toQuery();
assertEquals("spanMultipleDistance(field:try1, field:try2, [(s[2:3], ordered, notExcluded), (w[5:6], ordered, notExcluded)])", sq.toString());
};
@Test
- public void KorapSequenceQuery5 () {
+ public void KorapSequenceQuery5 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).withConstraint(2,3,true).toQuery();
assertEquals("spanDistance(field:try1, field:try2, [(w[2:3], ordered, excluded)])", sq.toString());
};
@Test
- public void KorapSequenceQuery6 () {
+ public void KorapSequenceQuery6 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).withConstraint(2,3,"s", true).toQuery();
assertEquals("spanElementDistance(field:try1, field:try2, [(s[2:3], ordered, excluded)])", sq.toString());
};
@Test
- public void KorapSequenceQuery7 () {
+ public void KorapSequenceQuery7 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).withConstraint(5,6).withConstraint(2,3,"s",true).toQuery();
assertEquals("spanMultipleDistance(field:try1, field:try2, [(w[5:6], ordered, notExcluded), (s[2:3], ordered, excluded)]])", sq.toString());
};
@Test
- public void KorapSequenceQuery8 () {
+ public void KorapSequenceQuery8 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.seq(kq.seg("try1")).append(kq.seg("try2")).append("try3").withConstraint(5,6).withConstraint(2,3,"s",true).toQuery();
assertEquals("spanMultipleDistance(spanMultipleDistance(field:try1, field:try2, [(w[5:6], ordered, notExcluded), (s[2:3], ordered, excluded)]]), field:try3, [(w[5:6], ordered, notExcluded), (s[2:3], ordered, excluded)]])", sq.toString());
};
-
@Test
- public void KorapWithinQuery1 () {
+ public void KorapWithinQuery1 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.contains(kq.seg("test"), kq.seg("test2")).toQuery();
assertEquals("spanContain(field:test, field:test2)", sq.toString());
};
@Test
- public void KorapWithinQuery2 () {
+ public void KorapWithinQuery2 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.overlaps(kq.seg("test"), kq.seg("test2")).toQuery();
assertEquals("spanOverlap(field:test, field:test2)", sq.toString());
};
@Test
- public void KorapWithinQuery3 () {
+ public void KorapWithinQuery3 () throws QueryException {
KorapQuery kq = new KorapQuery("field");
SpanQuery sq = kq.startswith(kq.seg("test"), kq.seg("test2")).toQuery();
assertEquals("spanStartsWith(field:test, field:test2)", sq.toString());
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestKorapQueryJSON.java b/src/test/java/de/ids_mannheim/korap/query/TestKorapQueryJSON.java
index 486d0c3..be852ce 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestKorapQueryJSON.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestKorapQueryJSON.java
@@ -21,7 +21,7 @@
private String defaultFoundry = "mate/";
@Test
- public void queryJSONBsp1 () {
+ public void queryJSONBsp1 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp1.jsonld").getFile());
// There is a repetition in here
@@ -32,7 +32,7 @@
};
@Test
- public void queryJSONBsp1b () {
+ public void queryJSONBsp1b () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp1b.jsonld").getFile());
@@ -42,7 +42,7 @@
@Test
- public void queryJSONBsp2 () {
+ public void queryJSONBsp2 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp2.jsonld").getFile());
// ([base=foo]|[base=bar])[base=foobar]
@@ -50,7 +50,7 @@
};
@Test
- public void queryJSONBsp3 () {
+ public void queryJSONBsp3 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp3.jsonld").getFile());
// shrink({[base=Mann]})
@@ -58,7 +58,7 @@
};
@Test
- public void queryJSONBsp4 () {
+ public void queryJSONBsp4 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp4.jsonld").getFile());
// shrink({[base=foo]}[orth=bar])
@@ -66,7 +66,7 @@
};
@Test
- public void queryJSONBsp5 () {
+ public void queryJSONBsp5 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp5.jsonld").getFile());
// shrink(1:[base=Der]{1:[base=Mann]})
@@ -74,7 +74,7 @@
};
@Test
- public void queryJSONBsp6 () {
+ public void queryJSONBsp6 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp6.jsonld").getFile());
// [base=katze]
@@ -82,7 +82,7 @@
};
@Test
- public void queryJSONBsp7 () {
+ public void queryJSONBsp7 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp7.jsonld").getFile());
// [!base=Katze]
@@ -91,7 +91,7 @@
};
@Test
- public void queryJSONBsp9 () {
+ public void queryJSONBsp9 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp9.jsonld").getFile());
// [base=Katze&orth=Katzen]
@@ -99,7 +99,7 @@
};
@Test
- public void queryJSONBsp9b () {
+ public void queryJSONBsp9b () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp9b.jsonld").getFile());
// [base=Katze&orth=Katzen]
@@ -108,7 +108,7 @@
@Test
- public void queryJSONBsp10 () {
+ public void queryJSONBsp10 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp10.jsonld").getFile());
// [base=Katze][orth=und][orth=Hunde]
@@ -116,7 +116,7 @@
};
@Test
- public void queryJSONBsp11 () {
+ public void queryJSONBsp11 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp11.jsonld").getFile());
// [base!=Katze | orth!=Katzen]
@@ -130,7 +130,7 @@
};
@Test
- public void queryJSONBsp12 () {
+ public void queryJSONBsp12 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp12.jsonld").getFile());
// contains(<np>,[base=Mann])
@@ -138,14 +138,14 @@
};
@Test
- public void queryJSONBsp13 () {
+ public void queryJSONBsp13 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp13.jsonld").getFile());
assertEquals(sqwi.toQuery().toString(), "spanStartsWith(<tokens:np />, tokens:mate/p:Det)");
};
@Test
- public void queryJSONBsp13b () {
+ public void queryJSONBsp13b () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp13b.jsonld").getFile());
// startswith(<np>,[pos=Det])
@@ -153,7 +153,7 @@
};
@Test
- public void queryJSONBsp14 () {
+ public void queryJSONBsp14 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp14.jsonld").getFile());
// 'vers{2,3}uch'
@@ -161,7 +161,7 @@
};
@Test
- public void queryJSONBsp15 () {
+ public void queryJSONBsp15 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp15.jsonld").getFile());
// [orth='vers.*ch']
@@ -169,7 +169,7 @@
};
@Test
- public void queryJSONBsp16 () {
+ public void queryJSONBsp16 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp16.jsonld").getFile());
// [(base=bar|base=foo)&orth=foobar]
@@ -177,7 +177,7 @@
};
@Test
- public void queryJSONBsp17 () {
+ public void queryJSONBsp17 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp17.jsonld").getFile());
// within(<np>,[base=Mann])
@@ -192,7 +192,7 @@
};
@Test
- public void queryJSONBspClass () {
+ public void queryJSONBspClass () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp-class.jsonld").getFile());
// within(<np>,[base=Mann])
@@ -201,7 +201,7 @@
@Test
- public void queryJSONcosmas3 () {
+ public void queryJSONcosmas3 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/cosmas3.json").getFile());
// "das /+w1:3 Buch"
@@ -209,7 +209,7 @@
};
@Test
- public void queryJSONcosmas4 () {
+ public void queryJSONcosmas4 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/cosmas4.json").getFile());
// "das /+w1:3,s1:1 Buch"
@@ -217,7 +217,7 @@
};
@Test
- public void queryJSONcosmas4b () {
+ public void queryJSONcosmas4b () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/cosmas4b.json").getFile());
// "das /+w1:3,s1 Buch"
@@ -225,7 +225,7 @@
};
@Test
- public void queryJSONcosmas10 () {
+ public void queryJSONcosmas10 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/cosmas10.json").getFile());
// "Institut für $deutsche Sprache"
@@ -233,7 +233,7 @@
};
@Test
- public void queryJSONcosmas10b () {
+ public void queryJSONcosmas10b () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/cosmas10b.json").getFile());
// "Institut $FÜR $deutsche Sprache"
@@ -241,7 +241,7 @@
};
@Test
- public void queryJSONcosmas16 () {
+ public void queryJSONcosmas16 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/cosmas16.json").getFile());
// "$wegen #IN(L) <s>"
@@ -249,7 +249,7 @@
};
@Test
- public void queryJSONcosmas17 () {
+ public void queryJSONcosmas17 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/cosmas17.json").getFile());
// "#BED($wegen , +sa)"
@@ -257,7 +257,7 @@
};
@Test
- public void queryJSONcosmas20 () {
+ public void queryJSONcosmas20 () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/cosmas20.json").getFile());
// "MORPH(V) #IN(R) #ELEM(S)"
@@ -267,16 +267,15 @@
@Test
- public void queryJSONrepetition () {
+ public void queryJSONrepetition () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp-repetition.jsonld").getFile());
// der[cnx/p=A]{0,2}[tt/p=NN]
- assertEquals(sqwi.toQuery().toString(), "spanNext(spanOr([tokens:s:der, spanNext(tokens:s:der, spanRepetition(tokens:cnx/p:A{1,2}))]), tokens:tt/p:NN)");
+ assertEquals(sqwi.toQuery().toString(), "spanNext(tokens:s:der, spanOr([tokens:tt/p:NN, spanNext(spanRepetition(tokens:cnx/p:A{1,2}), tokens:tt/p:NN)]))");
};
-
@Test
- public void queryJSONboundaryBug () {
+ public void queryJSONboundaryBug () throws QueryException {
SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/bsp-boundary.jsonld").getFile());
// Tal []{1,} Wald
@@ -284,7 +283,75 @@
};
+ @Test
+ public void queryJSONseqEmpty () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty.jsonld").getFile());
+ // []
+ assertTrue(sqwi.isEmpty());
+ };
+
+ @Test
+ public void queryJSONseqEmptyEnd () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-last.jsonld").getFile());
+ assertEquals(sqwi.toQuery().toString(), "spanExpansion(tokens:s:der, []{1, 1}, right)");
+ };
+
+ @Test
+ public void queryJSONseqEmptyEndClass () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-last-class.jsonld").getFile());
+ // der{3:[]}
+ assertEquals(sqwi.toQuery().toString(), "spanExpansion(tokens:s:der, []{1, 1}, right, class:3)");
+ };
+
+ @Test
+ public void queryJSONseqEmptyEndRepetition () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-last-repetition.jsonld").getFile());
+ // der[]{3,5}
+ assertEquals(sqwi.toQuery().toString(), "spanExpansion(tokens:s:der, []{3, 5}, right)");
+ };
+
+ @Test
+ public void queryJSONseqEmptyStart () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-first.jsonld").getFile());
+ // [][tt/p=NN]
+ assertEquals(sqwi.toQuery().toString(), "spanExpansion(tokens:tt/p:NN, []{1, 1}, left)");
+ };
+
+ @Test
+ public void queryJSONseqEmptyStartClass () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-first-class.jsonld").getFile());
+ // {2:[]}[tt/p=NN]
+ assertEquals(sqwi.toQuery().toString(), "spanExpansion(tokens:tt/p:NN, []{1, 1}, left, class:2)");
+ };
+
+ @Test
+ public void queryJSONseqEmptyStartRepetition () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-first-repetition.jsonld").getFile());
+ // []{2,7}[tt/p=NN]
+ assertEquals(sqwi.toQuery().toString(), "spanExpansion(tokens:tt/p:NN, []{2, 7}, left)");
+ };
+
+ @Test
+ public void queryJSONseqEmptyMiddle () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-middle.jsonld").getFile());
+ // der[][tt/p=NN]
+ assertEquals(sqwi.toQuery().toString(), "spanNext(tokens:s:der, spanExpansion(tokens:tt/p:NN, []{1, 1}, left))");
+ };
+
+ @Test
+ public void queryJSONseqEmptyMiddleClass () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-middle-class.jsonld").getFile());
+ // der{1:[]}[tt/p=NN]
+ assertEquals(sqwi.toQuery().toString(), "spanNext(tokens:s:der, spanExpansion(tokens:tt/p:NN, []{1, 1}, left, class:1))");
+ };
+
+ @Test
+ public void queryJSONseqEmptyMiddleRepetition () throws QueryException {
+ SpanQueryWrapper sqwi = jsonQuery(getClass().getResource("/queries/sequence/empty-middle-repetition.jsonld").getFile());
+ // der[]{4,8}[tt/p=NN]
+ assertEquals(sqwi.toQuery().toString(), "spanNext(tokens:s:der, spanExpansion(tokens:tt/p:NN, []{4, 8}, left))");
+ };
public static String getString (String path) {
StringBuilder contentBuilder = new StringBuilder();
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestSpanAlterQuery.java b/src/test/java/de/ids_mannheim/korap/query/TestSpanAlterQuery.java
index 95cc47b..9be1fcc 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestSpanAlterQuery.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestSpanAlterQuery.java
@@ -5,6 +5,8 @@
import de.ids_mannheim.korap.query.wrap.SpanRegexQueryWrapper;
import de.ids_mannheim.korap.query.wrap.SpanSegmentQueryWrapper;
+import de.ids_mannheim.korap.util.QueryException;
+
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Ignore;
@@ -12,9 +14,9 @@
import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
-public class TestSpanAlterQuery {
+public class TestSpanAlterQuery {
@Test
- public void spanAlterQuery () {
+ public void spanAlterQuery () throws QueryException {
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("b");
@@ -22,7 +24,7 @@
};
@Test
- public void spanAlterQuery2 () {
+ public void spanAlterQuery2 () throws QueryException {
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("b").or("c");
@@ -30,7 +32,7 @@
};
@Test
- public void spanAlterQuery3 () {
+ public void spanAlterQuery3 () throws QueryException {
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("b").or("c").or("d");
assertEquals("spanOr([field:b, field:c, field:d])", ssaquery.toQuery().toString());
@@ -38,7 +40,7 @@
@Test
- public void spanAlterQuery4 () {
+ public void spanAlterQuery4 () throws QueryException {
SpanSegmentQueryWrapper segquery = new SpanSegmentQueryWrapper("field", "a", "b", "c");
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("d").or(segquery).or("e");
@@ -46,7 +48,7 @@
};
@Test
- public void spanAlterQuery5 () {
+ public void spanAlterQuery5 () throws QueryException {
SpanRegexQueryWrapper srequery = new SpanRegexQueryWrapper("field", "a[bc]d.?e");
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("f").or(srequery).or("g");
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentAlterQuery.java b/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentAlterQuery.java
index f0783b8..e0ea83a 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentAlterQuery.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentAlterQuery.java
@@ -5,6 +5,8 @@
import de.ids_mannheim.korap.query.wrap.SpanRegexQueryWrapper;
import de.ids_mannheim.korap.query.wrap.SpanSegmentQueryWrapper;
+import de.ids_mannheim.korap.util.QueryException;
+
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Ignore;
@@ -14,7 +16,7 @@
@RunWith(JUnit4.class)
public class TestSpanSegmentAlterQuery {
@Test
- public void spanAlterQuery () {
+ public void spanAlterQuery () throws QueryException {
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("b");
@@ -22,7 +24,7 @@
};
@Test
- public void spanAlterQuery2 () {
+ public void spanAlterQuery2 () throws QueryException {
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("b").or("c");
@@ -30,7 +32,7 @@
};
@Test
- public void spanAlterQuery3 () {
+ public void spanAlterQuery3 () throws QueryException {
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("b").or("c").or("d");
assertEquals("spanOr([field:b, field:c, field:d])", ssaquery.toQuery().toString());
@@ -38,7 +40,7 @@
@Test
- public void spanAlterQuery4 () {
+ public void spanAlterQuery4 () throws QueryException {
SpanSegmentQueryWrapper segquery = new SpanSegmentQueryWrapper("field", "a", "b", "c");
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("d").or(segquery).or("e");
@@ -46,7 +48,7 @@
};
@Test
- public void spanAlterQuery5 () {
+ public void spanAlterQuery5 () throws QueryException {
SpanRegexQueryWrapper srequery = new SpanRegexQueryWrapper("field", "a[bc]d.?e");
SpanAlterQueryWrapper ssaquery = new SpanAlterQueryWrapper("field");
ssaquery.or("f").or(srequery).or("g");
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentQuery.java b/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentQuery.java
index e118c3c..444a188 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentQuery.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentQuery.java
@@ -5,6 +5,8 @@
import de.ids_mannheim.korap.query.wrap.SpanRegexQueryWrapper;
import de.ids_mannheim.korap.query.wrap.SpanAlterQueryWrapper;
+import de.ids_mannheim.korap.util.QueryException;
+
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Ignore;
@@ -14,7 +16,7 @@
@RunWith(JUnit4.class)
public class TestSpanSegmentQuery {
@Test
- public void spanSegmentQuery () {
+ public void spanSegmentQuery () throws QueryException {
SpanSegmentQueryWrapper ssquery = new SpanSegmentQueryWrapper("field","a");
assertEquals("field:a", ssquery.toQuery().toString());
@@ -27,7 +29,7 @@
};
@Test
- public void spanSegmentQueryExclusive () {
+ public void spanSegmentQueryExclusive () throws QueryException {
SpanSegmentQueryWrapper ssquery = new SpanSegmentQueryWrapper("field","a");
assertEquals("field:a", ssquery.toQuery().toString());
@@ -44,7 +46,7 @@
@Test
- public void spanSegmentRegexQuery () {
+ public void spanSegmentRegexQuery () throws QueryException {
SpanSegmentQueryWrapper ssquery = new SpanSegmentQueryWrapper("field");
assertNull(ssquery.toQuery());
ssquery.with("a");
@@ -73,7 +75,7 @@
};
@Test
- public void spanSegmentAlterQuery () {
+ public void spanSegmentAlterQuery () throws QueryException {
SpanSegmentQueryWrapper ssquery = new SpanSegmentQueryWrapper("field");
assertNull(ssquery.toQuery());
@@ -87,7 +89,7 @@
@Test
- public void spanSegmentCloneQuery () {
+ public void spanSegmentCloneQuery () throws QueryException {
SpanSegmentQueryWrapper ssquery = new SpanSegmentQueryWrapper("field", "a", "b");
assertEquals("spanSegment(field:a, field:b)", ssquery.toQuery().toString());
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentSequenceQuery.java b/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentSequenceQuery.java
index 5f70291..d93d402 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentSequenceQuery.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestSpanSegmentSequenceQuery.java
@@ -6,6 +6,8 @@
import de.ids_mannheim.korap.query.wrap.SpanAlterQueryWrapper;
import de.ids_mannheim.korap.query.wrap.SpanSequenceQueryWrapper;
+import de.ids_mannheim.korap.util.QueryException;
+
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Ignore;
@@ -16,11 +18,11 @@
public class TestSpanSegmentSequenceQuery {
@Test
- public void spanSegmentSequenceQuery () {
+ public void spanSegmentSequenceQuery () throws QueryException {
SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper("field");
assertNull(sssq.toQuery());
-
+
sssq.append("a").append("b");
assertEquals("spanNext(field:a, field:b)", sssq.toQuery().toString());
@@ -31,7 +33,7 @@
};
@Test
- public void spanSegmentSequenceQuery2 () {
+ public void spanSegmentSequenceQuery2 () throws QueryException {
SpanSegmentQueryWrapper ssq = new SpanSegmentQueryWrapper("field", "-c", "-d", "-e");
SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper("field", "a", "b");
@@ -42,7 +44,7 @@
};
@Test
- public void spanSegmentSequenceQuery3 () {
+ public void spanSegmentSequenceQuery3 () throws QueryException {
SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper("field", "a", "b");
SpanRegexQueryWrapper ssreq = new SpanRegexQueryWrapper("field", "c.?d");
@@ -52,7 +54,7 @@
};
@Test
- public void spanSegmentSequenceQueryPrepend () {
+ public void spanSegmentSequenceQueryPrepend () throws QueryException {
SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper("field", "b", "c");
sssq.prepend("a");
@@ -61,7 +63,7 @@
};
@Test
- public void spanSegmentSequenceQueryPrepend2 () {
+ public void spanSegmentSequenceQueryPrepend2 () throws QueryException {
SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper("field", "d", "e");
SpanSegmentQueryWrapper ssq = new SpanSegmentQueryWrapper("field", "-a", "-b", "-c");
@@ -71,7 +73,7 @@
};
@Test
- public void spanSegmentSequenceQueryPrepend3 () {
+ public void spanSegmentSequenceQueryPrepend3 () throws QueryException {
SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper("field", "c", "d");
SpanRegexQueryWrapper ssreq = new SpanRegexQueryWrapper("field", "a.?b");
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestSpanSequenceQuery.java b/src/test/java/de/ids_mannheim/korap/query/TestSpanSequenceQuery.java
index 0b3f884..f6fd664 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestSpanSequenceQuery.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestSpanSequenceQuery.java
@@ -3,6 +3,8 @@
import java.util.*;
import de.ids_mannheim.korap.query.wrap.SpanSequenceQueryWrapper;
+import de.ids_mannheim.korap.util.QueryException;
+
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Ignore;
@@ -13,7 +15,7 @@
public class TestSpanSequenceQuery {
@Test
- public void spanSequenceQuery () {
+ public void spanSequenceQuery () throws QueryException {
SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper("field");
assertNull(sssq.toQuery());
assertFalse(sssq.hasConstraints());
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestSpanWithinQuery.java b/src/test/java/de/ids_mannheim/korap/query/TestSpanWithinQuery.java
index 5a86815..c81fc79 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestSpanWithinQuery.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestSpanWithinQuery.java
@@ -4,6 +4,8 @@
import de.ids_mannheim.korap.query.wrap.SpanSequenceQueryWrapper;
import de.ids_mannheim.korap.query.SpanWithinQuery;
+import de.ids_mannheim.korap.util.QueryException;
+
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Ignore;
@@ -13,7 +15,7 @@
@RunWith(JUnit4.class)
public class TestSpanWithinQuery {
@Test
- public void spanSegmentWithinQuery () {
+ public void spanSegmentWithinQuery () throws QueryException {
SpanSequenceQueryWrapper ssquery = new SpanSequenceQueryWrapper("field", "a", "b", "c");
SpanWithinQuery ssequery = new SpanWithinQuery("s", ssquery.toQuery());
diff --git a/src/test/java/de/ids_mannheim/korap/search/TestKorapResult.java b/src/test/java/de/ids_mannheim/korap/search/TestKorapResult.java
index b99596c..a64a3e4 100644
--- a/src/test/java/de/ids_mannheim/korap/search/TestKorapResult.java
+++ b/src/test/java/de/ids_mannheim/korap/search/TestKorapResult.java
@@ -12,6 +12,8 @@
import de.ids_mannheim.korap.KorapMatch;
import de.ids_mannheim.korap.index.FieldDocument;
+import de.ids_mannheim.korap.util.QueryException;
+
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
@@ -27,7 +29,7 @@
public class TestKorapResult {
@Test
- public void checkJSONResult () throws IOException {
+ public void checkJSONResult () throws Exception {
KorapIndex ki = new KorapIndex();
FieldDocument fd = new FieldDocument();
fd.addString("ID", "doc-1");
@@ -93,7 +95,7 @@
};
@Test
- public void checkJSONResultForJSONInput () throws IOException {
+ public void checkJSONResultForJSONInput () throws Exception {
KorapIndex ki = new KorapIndex();
FieldDocument fd = new FieldDocument();
fd.addString("ID", "doc-1");
diff --git a/src/test/resources/queries/sequence/empty-first-class.jsonld b/src/test/resources/queries/sequence/empty-first-class.jsonld
new file mode 100644
index 0000000..89f44e3
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-first-class.jsonld
@@ -0,0 +1,39 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:group",
+ "class" : 2,
+ "operation" : "operation:class",
+ "operands" : [
+ {
+ "@type" : "korap:token"
+ }]
+ },
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "foundry" : "tt",
+ "key" : "NN",
+ "layer" : "p",
+ "match" : "match:eq"
+ }
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/queries/sequence/empty-first-repetition.jsonld b/src/test/resources/queries/sequence/empty-first-repetition.jsonld
new file mode 100644
index 0000000..91c09ad
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-first-repetition.jsonld
@@ -0,0 +1,43 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:group",
+ "operation" : "operation:repetition",
+ "boundary": {
+ "@type" : "korap:boundary",
+ "min" : 2,
+ "max" : 7
+ },
+ "operands" : [
+ {
+ "@type" : "korap:token"
+ }]
+ },
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "foundry" : "tt",
+ "key" : "NN",
+ "layer" : "p",
+ "match" : "match:eq"
+ }
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
diff --git a/src/test/resources/queries/sequence/empty-first.jsonld b/src/test/resources/queries/sequence/empty-first.jsonld
new file mode 100644
index 0000000..0c7b7a5
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-first.jsonld
@@ -0,0 +1,33 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:token"
+ },
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "foundry" : "tt",
+ "key" : "NN",
+ "layer" : "p",
+ "match" : "match:eq"
+ }
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/queries/sequence/empty-last-class.jsonld b/src/test/resources/queries/sequence/empty-last-class.jsonld
new file mode 100644
index 0000000..e2591e7
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-last-class.jsonld
@@ -0,0 +1,38 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "key" : "der",
+ "layer" : "orth",
+ "match" : "match:eq"
+ }
+ },
+ {
+ "@type" : "korap:group",
+ "class" : 3,
+ "operation" : "operation:class",
+ "operands" : [
+ {
+ "@type" : "korap:token"
+ }]
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/queries/sequence/empty-last-repetition.jsonld b/src/test/resources/queries/sequence/empty-last-repetition.jsonld
new file mode 100644
index 0000000..c57d45a
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-last-repetition.jsonld
@@ -0,0 +1,43 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "key" : "der",
+ "layer" : "orth",
+ "match" : "match:eq"
+ }
+ },
+ {
+ "@type" : "korap:group",
+ "operation" : "operation:repetition",
+ "boundary": {
+ "@type" : "korap:boundary",
+ "min" : 3,
+ "max" : 5
+ },
+ "operands" : [
+ {
+ "@type" : "korap:token"
+ }
+ ]
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
diff --git a/src/test/resources/queries/sequence/empty-last.jsonld b/src/test/resources/queries/sequence/empty-last.jsonld
new file mode 100644
index 0000000..395e8f8
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-last.jsonld
@@ -0,0 +1,32 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "key" : "der",
+ "layer" : "orth",
+ "match" : "match:eq"
+ }
+ },
+ {
+ "@type" : "korap:token"
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/queries/sequence/empty-middle-class.jsonld b/src/test/resources/queries/sequence/empty-middle-class.jsonld
new file mode 100644
index 0000000..865bfa1
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-middle-class.jsonld
@@ -0,0 +1,49 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "key" : "der",
+ "layer" : "orth",
+ "match" : "match:eq"
+ }
+ },
+ {
+ "@type" : "korap:group",
+ "class" : 1,
+ "operation" : "operation:class",
+ "operands" : [
+ {
+ "@type" : "korap:token"
+ }
+ ]
+ },
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "foundry" : "tt",
+ "key" : "NN",
+ "layer" : "p",
+ "match" : "match:eq"
+ }
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/queries/sequence/empty-middle-repetition.jsonld b/src/test/resources/queries/sequence/empty-middle-repetition.jsonld
new file mode 100644
index 0000000..22677c5
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-middle-repetition.jsonld
@@ -0,0 +1,52 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "key" : "der",
+ "layer" : "orth",
+ "match" : "match:eq"
+ }
+ },
+ {
+ "@type" : "korap:group",
+ "operation" : "operation:repetition",
+ "boundary": {
+ "@type" : "korap:boundary",
+ "min" : 4,
+ "max" : 8
+ },
+ "operands" : [
+ {
+ "@type" : "korap:token"
+ }]
+ },
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "foundry" : "tt",
+ "key" : "NN",
+ "layer" : "p",
+ "match" : "match:eq"
+ }
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/queries/sequence/empty-middle.jsonld b/src/test/resources/queries/sequence/empty-middle.jsonld
new file mode 100644
index 0000000..005bae4
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty-middle.jsonld
@@ -0,0 +1,42 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:group",
+ "operands" : [
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "key" : "der",
+ "layer" : "orth",
+ "match" : "match:eq"
+ }
+ },
+ {
+ "@type" : "korap:token"
+ },
+ {
+ "@type" : "korap:token",
+ "wrap" : {
+ "@type" : "korap:term",
+ "foundry" : "tt",
+ "key" : "NN",
+ "layer" : "p",
+ "match" : "match:eq"
+ }
+ }
+ ],
+ "operation" : "operation:sequence"
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/queries/sequence/empty.jsonld b/src/test/resources/queries/sequence/empty.jsonld
new file mode 100644
index 0000000..473404d
--- /dev/null
+++ b/src/test/resources/queries/sequence/empty.jsonld
@@ -0,0 +1,17 @@
+{
+ "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
+ "collections" : [
+ {
+ "@type" : "korap:meta-filter",
+ "@value" : {
+ "@field" : "korap:field#corpusID",
+ "@type" : "korap:term",
+ "@value" : "WPD"
+ }
+ }
+ ],
+ "meta" : {},
+ "query" : {
+ "@type" : "korap:token"
+ }
+}
\ No newline at end of file