blob: 7e146ad2cd5d8de7d589066d386b342dd4ec9e93 [file] [log] [blame]
package de.ids_mannheim.korap.query;
import static de.ids_mannheim.korap.TestSimple.getJSONQuery;
import static org.junit.Assert.assertEquals;
import org.apache.lucene.search.spans.SpanQuery;
import org.junit.Test;
import de.ids_mannheim.korap.query.wrap.SpanQueryWrapper;
import de.ids_mannheim.korap.util.QueryException;
public class TestSpanWithAttributeJSON {
@Test
public void testElementSingleAttribute () throws QueryException {
String filepath = getClass().getResource(
"/queries/attribute/element-single-attribute.jsonld").getFile();
SpanQueryWrapper sqwi = getJSONQuery(filepath);
SpanQuery sq = sqwi.toQuery();
assertEquals(
"spanElementWithAttribute(<tokens:head />, spanAttribute(tokens:type:top))",
sq.toString());
}
@Test
public void testElementSingleNotAttribute () throws QueryException {
String filepath = getClass().getResource(
"/queries/attribute/element-single-not-attribute.jsonld")
.getFile();
SpanQueryWrapper sqwi = getJSONQuery(filepath);
SpanQuery sq = sqwi.toQuery();
assertEquals(
"spanElementWithAttribute(<tokens:head />, spanAttribute(!tokens:type:top))",
sq.toString());
}
@Test
public void testElementMultipleAndNotAttributes () throws QueryException {
String filepath = getClass()
.getResource(
"/queries/attribute/element-multiple-and-not-attributes.jsonld")
.getFile();
SpanQueryWrapper sqwi = getJSONQuery(filepath);
SpanQuery sq = sqwi.toQuery();
assertEquals(
"spanElementWithAttribute(<tokens:div />, [spanAttribute(tokens:type:Zeitschrift), "
+ "spanAttribute(!tokens:complete:Y), spanAttribute(tokens:n:0)])",
sq.toString());
}
@Test
public void testElementMultipleOrAttributes () throws QueryException {
String filepath = getClass().getResource(
"/queries/attribute/element-multiple-or-attributes.jsonld")
.getFile();
SpanQueryWrapper sqwi = getJSONQuery(filepath);
SpanQuery sq = sqwi.toQuery();
assertEquals(
"spanOr([spanElementWithAttribute(<tokens:div />, spanAttribute(tokens:type:Zeitschrift)), "
+ "spanElementWithAttribute(<tokens:div />, spanAttribute(tokens:complete:Y)), "
+ "spanElementWithAttribute(<tokens:div />, spanAttribute(tokens:n:0))])",
sq.toString());
}
@Test
public void testAnyElementWithAttribute () throws QueryException {
String filepath = getClass().getResource(
"/queries/attribute/any-element-with-attribute.jsonld")
.getFile();
SpanQueryWrapper sqwi = getJSONQuery(filepath);
SpanQuery sq = sqwi.toQuery();
assertEquals("spanWithAttribute(spanAttribute(tokens:type:top))",
sq.toString());
}
@Test
public void testAnyElementWithMultipleOrAttributes () throws QueryException {
String filepath = getClass()
.getResource(
"/queries/attribute/any-element-with-multiple-or-attributes.jsonld")
.getFile();
SpanQueryWrapper sqwi = getJSONQuery(filepath);
SpanQuery sq = sqwi.toQuery();
assertEquals(
"spanOr([spanWithAttribute(spanAttribute(tokens:type:Zeitschrift)), "
+ "spanWithAttribute(spanAttribute(tokens:complete:Y)), "
+ "spanWithAttribute(spanAttribute(tokens:n:0))])",
sq.toString());
}
@Test
public void testAnyElementMultipleAndNotAttributes () throws QueryException {
String filepath = getClass()
.getResource(
"/queries/attribute/any-element-with-multiple-and-not-attributes.jsonld")
.getFile();
SpanQueryWrapper sqwi = getJSONQuery(filepath);
SpanQuery sq = sqwi.toQuery();
assertEquals(
"spanWithAttribute([spanAttribute(tokens:type:Zeitschrift), "
+ "spanAttribute(!tokens:complete:Y), spanAttribute(tokens:n:0)])",
sq.toString());
}
@Test(expected = AssertionError.class)
public void testAnyElementSingleNotAttribute () throws QueryException {
String filepath = getClass()
.getResource(
"/queries/attribute/any-element-with-single-not-attribute.jsonld")
.getFile();
SpanQueryWrapper sqwi = getJSONQuery(filepath);
}
}