You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2017/06/28 16:57:14 UTC
[05/18] jena git commit: adding GenericAnalyzer tests
adding GenericAnalyzer tests
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8f1fa7cc
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8f1fa7cc
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8f1fa7cc
Branch: refs/heads/master
Commit: 8f1fa7ccbf2cb05f2eed121831c39e07260ec18b
Parents: c429c1d
Author: Chris Tomlinson <ct...@moonvine.org>
Authored: Fri Apr 21 16:02:20 2017 -0500
Committer: Chris Tomlinson <ct...@moonvine.org>
Committed: Fri Apr 21 16:02:20 2017 -0500
----------------------------------------------------------------------
.../assembler/GenericAnalyzerAssembler.java | 2 +-
.../org/apache/jena/query/text/TS_Text.java | 2 +
.../assembler/TestGenericAnalyzerAssembler.java | 116 +++++++++++++++++++
3 files changed, 119 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8f1fa7cc/jena-text/src/main/java/org/apache/jena/query/text/assembler/GenericAnalyzerAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/GenericAnalyzerAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/GenericAnalyzerAssembler.java
index 7fb04cc..0fa706e 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/GenericAnalyzerAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/GenericAnalyzerAssembler.java
@@ -167,7 +167,7 @@ public class GenericAnalyzerAssembler extends AssemblerBase {
return newAnalyzer(clazz, new Class<?>[0], new Object[0]);
}
} else {
- throw new TextIndexException("text:class property is required by GenericAnalyzer");
+ throw new TextIndexException("text:class property is required by GenericAnalyzer: " + root);
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8f1fa7cc/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java b/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java
index 7259b11..91663f2 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/TS_Text.java
@@ -21,6 +21,7 @@ package org.apache.jena.query.text;
import org.apache.jena.query.text.assembler.TestEntityMapAssembler;
import org.apache.jena.query.text.assembler.TestTextDatasetAssembler;
import org.apache.jena.query.text.assembler.TestTextIndexLuceneAssembler;
+import org.apache.jena.query.text.assembler.TestGenericAnalyzerAssembler;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@@ -47,6 +48,7 @@ import org.junit.runners.Suite.SuiteClasses;
, TestDatasetWithConfigurableAnalyzer.class
, TestDatasetWithAnalyzingQueryParser.class
, TestDatasetWithComplexPhraseQueryParser.class
+ , TestGenericAnalyzerAssembler.class
})
public class TS_Text
http://git-wip-us.apache.org/repos/asf/jena/blob/8f1fa7cc/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestGenericAnalyzerAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestGenericAnalyzerAssembler.java b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestGenericAnalyzerAssembler.java
new file mode 100644
index 0000000..e2a4893
--- /dev/null
+++ b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestGenericAnalyzerAssembler.java
@@ -0,0 +1,116 @@
+package org.apache.jena.query.text.assembler;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.apache.jena.assembler.Assembler;
+import org.apache.jena.atlas.logging.Log;
+import org.apache.jena.atlas.logging.LogCtl;
+import org.apache.jena.query.text.EntityDefinition;
+import org.apache.jena.query.text.TextIndexLucene;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Property;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.vocabulary.RDF;
+import org.apache.jena.vocabulary.RDFS;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.core.KeywordAnalyzer;
+import org.apache.lucene.analysis.core.SimpleAnalyzer;
+import org.apache.lucene.analysis.fr.FrenchAnalyzer;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class TestGenericAnalyzerAssembler {
+
+// // Suppress warnings
+// @BeforeClass public static void beforeClass() { LogCtl.setError(EntityDefinitionAssembler.class); }
+// @AfterClass public static void afterClass() { LogCtl.setInfo(EntityDefinitionAssembler.class); }
+
+ private static final String TESTBASE = "http://example.org/test/";
+ private static final Resource spec1;
+ private static final Resource spec2;
+ private static final Resource spec3;
+
+ @Test public void AnalyzerNullaryCtor() {
+ GenericAnalyzerAssembler gaAssem = new GenericAnalyzerAssembler();
+ Analyzer analyzer = gaAssem.open(null, spec1, null);
+ assertEquals(SimpleAnalyzer.class, analyzer.getClass());
+ }
+
+ @Test public void AnalyzerNullaryCtor2() {
+ GenericAnalyzerAssembler gaAssem = new GenericAnalyzerAssembler();
+ Analyzer analyzer = gaAssem.open(null, spec2, null);
+ assertEquals(FrenchAnalyzer.class, analyzer.getClass());
+ }
+
+ @Test public void AnalyzerCtorSet1() {
+ GenericAnalyzerAssembler gaAssem = new GenericAnalyzerAssembler();
+ Analyzer analyzer = gaAssem.open(null, spec3, null);
+ assertEquals(FrenchAnalyzer.class, analyzer.getClass());
+ }
+
+
+ private static final String CLASS_SIMPLE = "org.apache.lucene.analysis.core.SimpleAnalyzer";
+ private static final String CLASS_FRENCH = "org.apache.lucene.analysis.fr.FrenchAnalyzer";
+
+ private static final String PARAM_TYPE_BOOL = "boolean";
+ private static final String PARAM_TYPE_FILE = "file";
+ private static final String PARAM_TYPE_INT = "int";
+ private static final String PARAM_TYPE_SET = "set";
+ private static final String PARAM_TYPE_STRING = "string";
+
+ static {
+ TextAssembler.init();
+ Model model = ModelFactory.createDefaultModel();
+
+ // analyzer spec w/ no params
+
+ spec1 = model.createResource()
+ .addProperty(RDF.type, TextVocab.genericAnalyzer)
+ .addProperty(TextVocab.pClass, CLASS_SIMPLE)
+ ;
+
+ // analyzer spec w/ empty params
+
+ spec2 = model.createResource()
+ .addProperty(RDF.type, TextVocab.genericAnalyzer)
+ .addProperty(TextVocab.pClass, CLASS_FRENCH)
+ .addProperty(TextVocab.pParams,
+ model.createList(
+ new RDFNode[] { } )
+ )
+ ;
+
+ // analyzer spec w/ one set param
+
+ spec3 = model.createResource()
+ .addProperty(RDF.type, TextVocab.genericAnalyzer)
+ .addProperty(TextVocab.pClass, CLASS_FRENCH)
+ .addProperty(TextVocab.pParams,
+ model.createList(
+ new RDFNode[] {
+ model.createResource()
+ .addProperty(TextVocab.pParamName, "stopWords")
+ .addProperty(TextVocab.pParamType, PARAM_TYPE_SET)
+ .addProperty(TextVocab.pParamValue, strs2list(model, "les le du"))
+ }))
+ ;
+ }
+
+ private static Resource strs2list(Model model, String string) {
+ String[] members = string.split("\\s");
+ Resource current = RDF.nil;
+ for (int i = members.length-1; i>=0; i--) {
+ Resource previous = current;
+ current = model.createResource();
+ current.addProperty(RDF.rest, previous);
+ current.addProperty(RDF.first, members[i]);
+ }
+ return current;
+ }
+}