You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/01/03 13:55:07 UTC
svn commit: r1226768 -
/lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/test/org/apache/lucene/analysis/kuromoji/TestKuromojiAnalyzer.java
Author: rmuir
Date: Tue Jan 3 12:55:07 2012
New Revision: 1226768
URL: http://svn.apache.org/viewvc?rev=1226768&view=rev
Log:
LUCENE-3305: add tests
Modified:
lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/test/org/apache/lucene/analysis/kuromoji/TestKuromojiAnalyzer.java
Modified: lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/test/org/apache/lucene/analysis/kuromoji/TestKuromojiAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/test/org/apache/lucene/analysis/kuromoji/TestKuromojiAnalyzer.java?rev=1226768&r1=1226767&r2=1226768&view=diff
==============================================================================
--- lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/test/org/apache/lucene/analysis/kuromoji/TestKuromojiAnalyzer.java (original)
+++ lucene/dev/branches/lucene3305/modules/analysis/kuromoji/src/test/org/apache/lucene/analysis/kuromoji/TestKuromojiAnalyzer.java Tue Jan 3 12:55:07 2012
@@ -17,9 +17,13 @@ package org.apache.lucene.analysis.kurom
* limitations under the License.
*/
+import java.io.StringReader;
+
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.BaseTokenStreamTestCase;
+import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.kuromoji.Tokenizer.Mode;
+import org.apache.lucene.util._TestUtil;
public class TestKuromojiAnalyzer extends BaseTokenStreamTestCase {
private Analyzer analyzer;
@@ -31,8 +35,93 @@ public class TestKuromojiAnalyzer extend
analyzer = new KuromojiAnalyzer(tokenizer);
}
+ public void testDecomposition1() throws Exception {
+ assertAnalyzesTo(analyzer, "æ¬æ¥ã¯ãè²§å°å±¤ã®å¥³æ§ãåä¾ã«å»çä¿è·ãæä¾ããããã«åµè¨ãããå¶åº¦ã§ããã" +
+ "ã¢ã¡ãªã«ä½æå¾è
å»çæ´å©å¶åº¦ãã仿¥ã§ã¯ããã®äºç®ã®ç´ï¼åã®ï¼ãè人ã«è²»ããã¦ããã",
+ new String[] { "æ¬æ¥", "ã¯", "ã", "è²§å°", "層", "ã®", "女æ§", "ã", "åä¾", "ã«", "å»ç", "ä¿è·", "ã",
+ "æä¾", "ãã", "ãã", "ã«", "åµè¨", "ã", "ã", "ã", "å¶åº¦", "ã§", "ãã", "ã", "ã¢ã¡ãªã«",
+ "ä½", "æå¾", "è
", "å»ç", "æ´å©", "å¶åº¦", "ã", "ã", "仿¥", "ã§", "ã¯", "ã", "ãã®",
+ "äºç®", "ã®", "ç´", "ï¼", "åã®", "ï¼", "ã", "è人", "ã«", "è²»ãã", "ã¦", "ãã", "ã" },
+ new int[] { 0, 2, 3, 4, 6, 7, 8, 10, 11, 13, 14, 16, 18, 19, 21, 23, 25, 26, 28, 29, 30,
+ 31, 33, 34, 36, 37, 41, 42, 44, 45, 47, 49, 51, 52, 53, 55, 56, 57, 58, 60,
+ 62, 63, 64, 65, 67, 68, 69, 71, 72, 75, 76, 78 },
+ new int[] { 2, 3, 4, 6, 7, 8, 10, 11, 13, 14, 16, 18, 19, 21, 23, 25, 26, 28, 29, 30, 31,
+ 33, 34, 36, 37, 41, 42, 44, 45, 47, 49, 51, 52, 53, 55, 56, 57, 58, 60, 62,
+ 63, 64, 65, 67, 68, 69, 71, 72, 75, 76, 78, 79 }
+ );
+ }
+
+ public void testDecomposition2() throws Exception {
+ assertAnalyzesTo(analyzer, "麻è¬ã®å¯å£²ã¯æ ¹ãããçµ¶ãããªããã°ãªããªã",
+ new String[] { "麻è¬", "ã®", "å¯å£²", "ã¯", "æ ¹ããã", "çµ¶ãã", "ãªãã", "ã°", "ãªã", "ãªã" },
+ new int[] { 0, 2, 3, 5, 6, 10, 13, 16, 17, 19 },
+ new int[] { 2, 3, 5, 6, 10, 13, 16, 17, 19, 21 }
+ );
+ }
+
+ public void testDecomposition3() throws Exception {
+ assertAnalyzesTo(analyzer, "é女ç©å¤§å°ãã·ã¥ã¼ã»ãããã³ã¹ã",
+ new String[] { "é女", "ç©", "大å°", "ãã·ã¥ã¼", "ã»", "ãããã³ã¹", "ã" },
+ new int[] { 0, 2, 3, 5, 9, 10, 15 },
+ new int[] { 2, 3, 5, 9, 10, 15, 16 }
+ );
+ }
+
+ public void testDecomposition4() throws Exception {
+ assertAnalyzesTo(analyzer, "ããã¯æ¬ã§ã¯ãªã",
+ new String[] { "ãã", "ã¯", "æ¬", "ã§", "ã¯", "ãªã" },
+ new int[] { 0, 2, 3, 4, 5, 6 },
+ new int[] { 2, 3, 4, 5, 6, 8 }
+ );
+ }
+
+ public void testDecomposition5() throws Exception {
+ assertAnalyzesTo(analyzer, "ãããããããããããããããããããããããããããããããããããããããã",
+ new String[] { "ãããã", "ãããã", "ãããã", "ãããã", "ãããã", "ãããã", "ãããã", "ãããã", "ãããã", "ãããã" },
+ new int[] { 0, 4, 8, 12, 16, 20, 24, 28, 32, 36},
+ new int[] { 4, 8, 12, 16, 20, 24, 28, 32, 36, 40 }
+ );
+ }
+
+ /** Tests that sentence offset is incorporated into the resulting offsets */
+ public void testTwoSentences() throws Exception {
+ assertAnalyzesTo(analyzer, "é女ç©å¤§å°ãã·ã¥ã¼ã»ãããã³ã¹ã é女ç©å¤§å°ãã·ã¥ã¼ã»ãããã³ã¹ã",
+ new String[] { "é女", "ç©", "大å°", "ãã·ã¥ã¼", "ã»", "ãããã³ã¹", "ã", " ", "é女", "ç©", "大å°", "ãã·ã¥ã¼", "ã»", "ãããã³ã¹", "ã" },
+ new int[] { 0, 2, 3, 5, 9, 10, 15, 16, 17, 19, 20, 22, 26, 27, 32 },
+ new int[] { 2, 3, 5, 9, 10, 15, 16, 17, 19, 20, 22, 26, 27, 32, 33 }
+ );
+ }
+
/** blast some random strings through the analyzer */
public void testRandomStrings() throws Exception {
checkRandomData(random, analyzer, 10000*RANDOM_MULTIPLIER);
}
+
+ public void testLargeDocReliability() throws Exception {
+ for (int i = 0; i < 100; i++) {
+ String s = _TestUtil.randomUnicodeString(random, 10000);
+ TokenStream ts = analyzer.tokenStream("foo", new StringReader(s));
+ ts.reset();
+ while (ts.incrementToken()) {
+ }
+ }
+ }
+
+ // note: test is kinda silly since kuromoji emits punctuation tokens.
+ // but, when/if we filter these out it will be useful.
+ public void testEnd() throws Exception {
+ assertTokenStreamContents(analyzer.tokenStream("foo", new StringReader("ããã¯æ¬ã§ã¯ãªã")),
+ new String[] { "ãã", "ã¯", "æ¬", "ã§", "ã¯", "ãªã" },
+ new int[] { 0, 2, 3, 4, 5, 6 },
+ new int[] { 2, 3, 4, 5, 6, 8 },
+ new Integer(8)
+ );
+
+ assertTokenStreamContents(analyzer.tokenStream("foo", new StringReader("ããã¯æ¬ã§ã¯ãªã ")),
+ new String[] { "ãã", "ã¯", "æ¬", "ã§", "ã¯", "ãªã", " ", " ", " ", " " },
+ new int[] { 0, 2, 3, 4, 5, 6, 8, 9, 10, 11 },
+ new int[] { 2, 3, 4, 5, 6, 8, 9, 10, 11, 12 },
+ new Integer(12)
+ );
+ }
}