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;    
+    }
+}