Revision: 7348
http://languagetool.svn.sourceforge.net/languagetool/?rev=7348&view=rev
Author: milek_pl
Date: 2012-06-15 09:53:09 +0000 (Fri, 15 Jun 2012)
Log Message:
-----------
[pl] replace hunspell with morfologik
Modified Paths:
--------------
trunk/JLanguageTool/.classpath
trunk/JLanguageTool/build.properties
trunk/JLanguageTool/build.xml
trunk/JLanguageTool/jnlp/LanguageTool.jnlp
trunk/JLanguageTool/jnlp/LanguageToolServer.jnlp
trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java
trunk/JLanguageTool/src/java/org/languagetool/language/Polish.java
trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java
trunk/JLanguageTool/src/test/org/languagetool/JLanguageToolTest.java
trunk/JLanguageTool/src/test/org/languagetool/MainTest.java
trunk/JLanguageTool/src/test/org/languagetool/rules/HunspellRuleTest.java
Added Paths:
-----------
trunk/JLanguageTool/libs/morfologik-speller-1.5.4.jar
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/pl/
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/pl/MorfologikPolishSpellerRule.java
trunk/JLanguageTool/src/resource/pl/hunspell/pl_PL.dict
trunk/JLanguageTool/src/resource/pl/hunspell/pl_PL.info
trunk/JLanguageTool/src/test/org/languagetool/rules/pl/MorfologikPolishSpellerRuleTest.java
Modified: trunk/JLanguageTool/.classpath
===================================================================
--- trunk/JLanguageTool/.classpath 2012-06-14 22:42:04 UTC (rev 7347)
+++ trunk/JLanguageTool/.classpath 2012-06-15 09:53:09 UTC (rev 7348)
@@ -26,6 +26,7 @@
</attributes>
</classpathentry>
<classpathentry kind="lib" path="libs/morfologik-stemming-1.5.3.jar"/>
+ <classpathentry kind="lib" path="libs/morfologik-speller-1.5.4.jar"
sourcepath="/morfologik-speller"/>
<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con"
path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
<classpathentry kind="lib" path="libs/jWordSplitter.jar"
sourcepath="/jWordSplitter"/>
@@ -42,6 +43,6 @@
<classpathentry kind="lib" path="libs/CJFtransform_v1.0.1_bin.jar"/>
<classpathentry kind="lib" path="libs/commons-validator-1.3.1.jar"/>
<classpathentry kind="lib" path="libs/xml-text-editor-0.0.3.jar"/>
- <classpathentry kind="lib" path="libs/morfologik-fsa-1.5.3.jar"/>
+ <classpathentry kind="lib" path="libs/morfologik-fsa-1.5.3.jar"
sourcepath="/morfologik-fsa"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: trunk/JLanguageTool/build.properties
===================================================================
--- trunk/JLanguageTool/build.properties 2012-06-14 22:42:04 UTC (rev
7347)
+++ trunk/JLanguageTool/build.properties 2012-06-15 09:53:09 UTC (rev
7348)
@@ -26,8 +26,10 @@
morfologik.fsa.lib = morfologik-fsa-1.5.3.jar
morfologik.stemming.lib = morfologik-stemming-1.5.3.jar
+morfologik.speller.lib = morfologik-speller-1.5.4.jar
ext.morfologik.fsa.lib = ${ext.dir}/${morfologik.fsa.lib}
ext.morfologik.stemming.lib = ${ext.dir}/${morfologik.stemming.lib}
+ext.morfologik.speller.lib = ${ext.dir}/${morfologik.speller.lib}
ext.jwordsplitter.lib = ${ext.dir}/jWordSplitter.jar
segment.lib = segment-1.3.8.jar
ext.segment.lib = ${ext.dir}/${segment.lib}
Modified: trunk/JLanguageTool/build.xml
===================================================================
--- trunk/JLanguageTool/build.xml 2012-06-14 22:42:04 UTC (rev 7347)
+++ trunk/JLanguageTool/build.xml 2012-06-15 09:53:09 UTC (rev 7348)
@@ -15,6 +15,7 @@
<path id="common.classpath">
<pathelement location="${ext.morfologik.fsa.lib}" />
<pathelement location="${ext.morfologik.stemming.lib}" />
+ <pathelement location="${ext.morfologik.speller.lib}" />
<pathelement location="${ext.jwordsplitter.lib}" />
<pathelement location="${ext.logging.lib}" />
<pathelement location="${ext.commons.lang.lib}" />
@@ -334,7 +335,7 @@
<jar jarfile="${dist.dir}/${final.name}.jar"
basedir="${build.classes}" excludes="**/*.java">
<manifest>
<attribute name="Main-Class"
value="org.languagetool.Main" />
- <attribute name="Class-Path" value="./ ./rules
./resource ./${morfologik.fsa.lib} ./${morfologik.stemming.lib}
./jWordSplitter.jar ./${segment.lib} ./${logging.lib} ./${tika.lib}
./${ictclas4j.lib} ./${CJFtransform.lib} ./${commons-validator.lib}
./${commons.lang.lib} ./${jna.lib}" />
+ <attribute name="Class-Path" value="./ ./rules
./resource ./${morfologik.fsa.lib} ./${morfologik.stemming.lib}
./${morfologik.speller.lib} ./jWordSplitter.jar ./${segment.lib}
./${logging.lib} ./${tika.lib} ./${ictclas4j.lib} ./${CJFtransform.lib}
./${commons-validator.lib} ./${commons.lang.lib} ./${jna.lib}" />
<attribute name="Implementation-Version"
value="${version}" />
<attribute name="Implementation-Date"
value="${date}" />
</manifest>
@@ -343,7 +344,7 @@
<jar jarfile="${dist.dir}/${final.name.gui}.jar"
basedir="${build.classes}" includes="org/languagetool/gui/*.class">
<manifest>
<attribute name="Main-Class"
value="org.languagetool.gui.Main" />
- <attribute name="Class-Path"
value="./LanguageTool.jar ./ ./resource ./rules ./${morfologik.fsa.lib}
./${morfologik.stemming.lib} ./jWordSplitter.jar ./${segment.lib}
./${logging.lib} ./${tika.lib} ./${ictclas4j.lib} ./${CJFtransform.lib}
./${commons-validator.lib} ./${commons.lang.lib} ./${jna.lib}" />
+ <attribute name="Class-Path"
value="./LanguageTool.jar ./ ./resource ./rules ./${morfologik.fsa.lib}
./${morfologik.stemming.lib} ./${morfologik.speller.lib} ./jWordSplitter.jar
./${segment.lib} ./${logging.lib} ./${tika.lib} ./${ictclas4j.lib}
./${CJFtransform.lib} ./${commons-validator.lib} ./${commons.lang.lib}
./${jna.lib}" />
<attribute name="Implementation-Version"
value="${version}" />
<attribute name="Implementation-Date"
value="${date}" />
</manifest>
@@ -501,6 +502,7 @@
<copy file="${ext.morfologik.fsa.lib}" todir="${dist.dir}" />
<copy file="${ext.morfologik.stemming.lib}" todir="${dist.dir}" />
+ <copy file="${ext.morfologik.speller.lib}" todir="${dist.dir}" />
<copy file="${ext.jwordsplitter.lib}" todir="${dist.dir}" />
<copy file="${ext.segment.lib}" todir="${dist.dir}" />
<copy file="${ext.logging.lib}" todir="${dist.dir}" />
@@ -596,7 +598,8 @@
<copy file="${resource.dir}/pl/polish.dict"
todir="${dist.dir}/resource/pl" />
<copy file="${resource.dir}/pl/polish.info"
todir="${dist.dir}/resource/pl" />
- <copy file="${resource.dir}/pl/polish_synth.dict"
todir="${dist.dir}/resource/pl" />
+
+ <copy file="${resource.dir}/pl/polish_synth.dict"
todir="${dist.dir}/resource/pl" />
<copy file="${resource.dir}/pl/polish_synth.info"
todir="${dist.dir}/resource/pl" />
<copy file="${resource.dir}/pl/polish_tags.txt"
todir="${dist.dir}/resource/pl" />
<copy file="${resource.dir}/pl/compounds.txt"
todir="${dist.dir}/resource/pl" />
Modified: trunk/JLanguageTool/jnlp/LanguageTool.jnlp
===================================================================
(Binary files differ)
Modified: trunk/JLanguageTool/jnlp/LanguageToolServer.jnlp
===================================================================
--- trunk/JLanguageTool/jnlp/LanguageToolServer.jnlp 2012-06-14 22:42:04 UTC
(rev 7347)
+++ trunk/JLanguageTool/jnlp/LanguageToolServer.jnlp 2012-06-15 09:53:09 UTC
(rev 7348)
@@ -26,6 +26,7 @@
<j2se version="1.6+" />
<jar href="@morfologik.stemming.lib@" />
<jar href="@morfologik.fsa.lib@" />
+ <jar href="@morfologik.speller.lib@" />
<jar href="@tika.lib@" />
<jar href="@segment.lib@" />
<jar href="@logging.lib@" />
Added: trunk/JLanguageTool/libs/morfologik-speller-1.5.4.jar
===================================================================
(Binary files differ)
Property changes on: trunk/JLanguageTool/libs/morfologik-speller-1.5.4.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2012-06-14
22:42:04 UTC (rev 7347)
+++ trunk/JLanguageTool/src/java/org/languagetool/gui/Main.java 2012-06-15
09:53:09 UTC (rev 7348)
@@ -25,6 +25,7 @@
import org.languagetool.rules.Rule;
import org.languagetool.rules.RuleMatch;
import org.languagetool.rules.spelling.hunspell.HunspellRule;
+import org.languagetool.rules.spelling.morfologik.MorfologikSpellerRule;
import org.languagetool.server.HTTPServer;
import org.languagetool.server.PortBindingException;
import org.languagetool.tools.StringTools;
@@ -563,7 +564,8 @@
final String repl =
StringTools.listToString(match.getSuggestedReplacements(), "; ");
sb.append("<b>" + messages.getString("correctionMessage") + "</b> " +
repl + "<br>\n");
}
- if (match.getRule().getId().equals(HunspellRule.RULE_ID)) {
+ if (match.getRule().getId().equals(HunspellRule.RULE_ID)
+ ||
match.getRule().getId().equals(MorfologikSpellerRule.RULE_ID)) {
contextTools.setErrorMarkerStart(HUNSPELL_ERROR_MARKER_START);
} else {
contextTools.setErrorMarkerStart(LT_ERROR_MARKER_START);
Modified: trunk/JLanguageTool/src/java/org/languagetool/language/Polish.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/language/Polish.java
2012-06-14 22:42:04 UTC (rev 7347)
+++ trunk/JLanguageTool/src/java/org/languagetool/language/Polish.java
2012-06-15 09:53:09 UTC (rev 7348)
@@ -37,6 +37,8 @@
import org.languagetool.tokenizers.SentenceTokenizer;
import org.languagetool.tokenizers.SRXSentenceTokenizer;
+import org.languagetool.rules.spelling.morfologik.pl.*;
+
public class Polish extends Language {
private static final Unifier POLISH_UNIFIER = new Unifier();
@@ -119,12 +121,14 @@
return Arrays.asList(
CommaWhitespaceRule.class,
DoublePunctuationRule.class,
- HunspellRule.class,
+ // the slowest hunspell dictionary...
+ // HunspellRule.class,
UppercaseSentenceStartRule.class,
WordRepeatRule.class,
WhitespaceRule.class,
// specific to Polish:
PolishUnpairedBracketsRule.class,
+ MorfologikPolishSpellerRule.class,
PolishWordRepeatRule.class,
CompoundRule.class,
SimpleReplaceRule.class
Modified: trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java
2012-06-14 22:42:04 UTC (rev 7347)
+++ trunk/JLanguageTool/src/java/org/languagetool/openoffice/Main.java
2012-06-15 09:53:09 UTC (rev 7348)
@@ -68,6 +68,7 @@
import org.languagetool.gui.Configuration;
import org.languagetool.rules.RuleMatch;
import org.languagetool.rules.spelling.hunspell.HunspellRule;
+import org.languagetool.rules.spelling.morfologik.MorfologikSpellerRule;
import org.languagetool.tools.StringTools;
import org.languagetool.tools.Tools;
@@ -286,6 +287,7 @@
langTool.activateDefaultPatternRules();
langTool.activateDefaultFalseFriendRules();
langTool.disableRule(HunspellRule.RULE_ID);
+ langTool.disableRule(MorfologikSpellerRule.RULE_ID);
recheck = false;
} catch (final Throwable t) {
showError(t);
@@ -507,6 +509,7 @@
if (lang == null) {
return;
}
+ prepareConfig(lang);
final ConfigThread configThread = new ConfigThread(lang, config, this);
configThread.start();
}
Added:
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
===================================================================
---
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
(rev 0)
+++
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
2012-06-15 09:53:09 UTC (rev 7348)
@@ -0,0 +1,96 @@
+package org.languagetool.rules.spelling.morfologik;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.languagetool.AnalyzedSentence;
+import org.languagetool.AnalyzedTokenReadings;
+import org.languagetool.JLanguageTool;
+import org.languagetool.Language;
+import org.languagetool.rules.Category;
+import org.languagetool.rules.RuleMatch;
+import org.languagetool.rules.spelling.SpellingCheckRule;
+import org.languagetool.tools.StringTools;
+
+import morfologik.speller.Speller;
+import morfologik.stemming.Dictionary;
+
+public abstract class MorfologikSpellerRule extends SpellingCheckRule {
+
+ protected Speller speller;
+
+ private Locale conversionLocale = Locale.getDefault();
+
+ /**
+ * Get the filename, e.g., <tt>/resource/pl/spelling.dict</tt>.
+ */
+ public abstract String getFileName();
+
+ public static final String RULE_ID = "MORFOLOGIK_RULE";
+
+ public MorfologikSpellerRule(ResourceBundle messages, Language language) {
+ super(messages, language);
+ super.setCategory(new Category(messages.getString("category_typo")));
+ }
+
+ @Override
+ public String getId() {
+ return RULE_ID;
+ }
+
+ @Override
+ public String getDescription() {
+ return messages.getString("desc_spelling");
+ }
+
+ public void setLocale(Locale locale) {
+ conversionLocale = locale;
+ }
+
+ @Override
+ public RuleMatch[] match(AnalyzedSentence text) throws IOException {
+
+ final List<RuleMatch> ruleMatches = new ArrayList<RuleMatch>();
+ final AnalyzedTokenReadings[] tokens =
text.getTokensWithoutWhitespace();
+ //lazy init
+ if (speller == null) {
+ if (JLanguageTool.getDataBroker().resourceExists(getFileName())) {
+ final URL url =
JLanguageTool.getDataBroker().getFromResourceDirAsUrl(getFileName());
+ speller = new Speller(Dictionary.read(url));
+ } else {
+ return toRuleMatchArray(ruleMatches);
+ }
+ }
+ for (AnalyzedTokenReadings token : tokens) {
+ final String word = token.getToken();
+ boolean isAlphabetic = true;
+ if (word.length() == 1) { // dictionaries usually do not contain
punctuation
+ isAlphabetic = StringTools.isAlphabetic(word.charAt(0));
+ }
+ if (word.length() > 0 && isAlphabetic && !token.isImmunized()
+ && !speller.isInDictionary(word)
+ &&
!speller.isInDictionary(word.toLowerCase(conversionLocale))) {
+ final List<String> suggestions = new ArrayList<String>();
+ suggestions.addAll(speller.findReplacements(word));
+ if (!word.toLowerCase(conversionLocale).equals(word)) {
+
suggestions.addAll(speller.findReplacements(word.toLowerCase(conversionLocale)));
+ }
+ suggestions.addAll(speller.replaceRunOnWords(word));
+ final RuleMatch ruleMatch = new RuleMatch(this,
+ token.getStartPos(), token.getStartPos() +
word.length(),
+ messages.getString("spelling"),
+ messages.getString("desc_spelling_short"));
+ if (!suggestions.isEmpty()) {
+ ruleMatch.setSuggestedReplacements(suggestions);
+ }
+ ruleMatches.add(ruleMatch);
+ }
+ }
+ return toRuleMatchArray(ruleMatches);
+ }
+
+}
Property changes on:
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/MorfologikSpellerRule.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/pl/MorfologikPolishSpellerRule.java
===================================================================
---
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/pl/MorfologikPolishSpellerRule.java
(rev 0)
+++
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/pl/MorfologikPolishSpellerRule.java
2012-06-15 09:53:09 UTC (rev 7348)
@@ -0,0 +1,23 @@
+package org.languagetool.rules.spelling.morfologik.pl;
+
+import java.util.ResourceBundle;
+
+import org.languagetool.Language;
+import org.languagetool.rules.spelling.morfologik.MorfologikSpellerRule;
+
+public final class MorfologikPolishSpellerRule extends MorfologikSpellerRule {
+
+ //simplistic!
+ private static final String RESOURCE_FILENAME = "/pl/hunspell/pl_PL.dict";
+
+ public MorfologikPolishSpellerRule(ResourceBundle messages,
+ Language language) {
+ super(messages, language);
+ }
+
+ @Override
+ public String getFileName() {
+ return RESOURCE_FILENAME;
+ }
+
+}
Property changes on:
trunk/JLanguageTool/src/java/org/languagetool/rules/spelling/morfologik/pl/MorfologikPolishSpellerRule.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/JLanguageTool/src/resource/pl/hunspell/pl_PL.dict
===================================================================
(Binary files differ)
Property changes on: trunk/JLanguageTool/src/resource/pl/hunspell/pl_PL.dict
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/JLanguageTool/src/resource/pl/hunspell/pl_PL.info
===================================================================
--- trunk/JLanguageTool/src/resource/pl/hunspell/pl_PL.info
(rev 0)
+++ trunk/JLanguageTool/src/resource/pl/hunspell/pl_PL.info 2012-06-15
09:53:09 UTC (rev 7348)
@@ -0,0 +1,9 @@
+#
+# Dictionary properties.
+#
+
+fsa.dict.separator=+
+fsa.dict.encoding=iso-8859-2
+
+fsa.dict.uses-prefixes=false
+fsa.dict.uses-infixes=false
\ No newline at end of file
Modified: trunk/JLanguageTool/src/test/org/languagetool/JLanguageToolTest.java
===================================================================
--- trunk/JLanguageTool/src/test/org/languagetool/JLanguageToolTest.java
2012-06-14 22:42:04 UTC (rev 7347)
+++ trunk/JLanguageTool/src/test/org/languagetool/JLanguageToolTest.java
2012-06-15 09:53:09 UTC (rev 7348)
@@ -141,7 +141,7 @@
assertEquals(6, matches.size());
tool.setListUnknownWords(true);
matches = tool.check("This is not a Polish text.");
- assertEquals(3, matches.size());
+ assertEquals(4, matches.size());
assertEquals("[Polish, This, is, text]",
tool.getUnknownWords().toString());
//check positions relative to sentence ends
matches = tool.check("To jest tekst.\nTest 1. To jest linia w której nie
ma przecinka.");
Modified: trunk/JLanguageTool/src/test/org/languagetool/MainTest.java
===================================================================
--- trunk/JLanguageTool/src/test/org/languagetool/MainTest.java 2012-06-14
22:42:04 UTC (rev 7347)
+++ trunk/JLanguageTool/src/test/org/languagetool/MainTest.java 2012-06-15
09:53:09 UTC (rev 7348)
@@ -205,13 +205,13 @@
final String test = "Zwuasdac?";
final byte[] b = test.getBytes();
System.setIn(new ByteArrayInputStream(b));
- String[] args = new String[] {"-l", "pl", "-e", "HUNSPELL_RULE",
"-"};
+ String[] args = new String[] {"-l", "pl", "-e", "MORFOLOGIK_RULE",
"-"};
Main.main(args);
String output = new String(this.out.toByteArray());
assertTrue(output.indexOf("Expected text language: Polish") == 0);
assertTrue(output.contains("Working on STDIN..."));
- assertTrue(output.contains("1.) Line 1, column 1, Rule ID:
HUNSPELL_RULE"));
+ assertTrue(output.contains("1.) Line 1, column 1, Rule ID:
MORFOLOGIK_RULE"));
}
Modified:
trunk/JLanguageTool/src/test/org/languagetool/rules/HunspellRuleTest.java
===================================================================
--- trunk/JLanguageTool/src/test/org/languagetool/rules/HunspellRuleTest.java
2012-06-14 22:42:04 UTC (rev 7347)
+++ trunk/JLanguageTool/src/test/org/languagetool/rules/HunspellRuleTest.java
2012-06-15 09:53:09 UTC (rev 7348)
@@ -35,30 +35,8 @@
@Test
public void testRule() throws Exception {
- HunspellRule rule =
- new HunspellRule(TestTools.getMessages("Polish"), Language.POLISH);
-
RuleMatch[] matches;
- JLanguageTool langTool = new JLanguageTool(Language.POLISH);
-
-
- // correct sentences:
- assertEquals(0, rule.match(langTool.getAnalyzedSentence("To jest test bez
jakiegokolwiek błędu.")).length);
- assertEquals(0, rule.match(langTool.getAnalyzedSentence("Żółw na starość
wydziela dziwną woń.")).length);
- assertEquals(0, rule.match(langTool.getAnalyzedSentence(",")).length);
-
- //incorrect sentences:
-
- matches = rule.match(langTool.getAnalyzedSentence("Zolw"));
- // check match positions:
- assertEquals(1, matches.length);
- assertEquals(0, matches[0].getFromPos());
- assertEquals(4, matches[0].getToPos());
- assertEquals("Żółw", matches[0].getSuggestedReplacements().get(0));
-
- assertEquals(1, rule.match(langTool.getAnalyzedSentence("aõh")).length);
- assertEquals(0, rule.match(langTool.getAnalyzedSentence("a")).length);
-
+
// Catalan
HunspellRule catRule =
new HunspellRule(TestTools.getMessages("Catalan"),
Language.CATALAN);
Added:
trunk/JLanguageTool/src/test/org/languagetool/rules/pl/MorfologikPolishSpellerRuleTest.java
===================================================================
---
trunk/JLanguageTool/src/test/org/languagetool/rules/pl/MorfologikPolishSpellerRuleTest.java
(rev 0)
+++
trunk/JLanguageTool/src/test/org/languagetool/rules/pl/MorfologikPolishSpellerRuleTest.java
2012-06-15 09:53:09 UTC (rev 7348)
@@ -0,0 +1,44 @@
+package org.languagetool.rules.pl;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+
+import org.junit.Test;
+import org.languagetool.JLanguageTool;
+import org.languagetool.Language;
+import org.languagetool.TestTools;
+import org.languagetool.rules.RuleMatch;
+import
org.languagetool.rules.spelling.morfologik.pl.MorfologikPolishSpellerRule;
+
+public class MorfologikPolishSpellerRuleTest {
+
+ @Test
+ public void testMorfologikSpeller() throws IOException {
+ MorfologikPolishSpellerRule rule =
+ new MorfologikPolishSpellerRule
(TestTools.getMessages("Polish"), Language.POLISH);
+
+ RuleMatch[] matches;
+ JLanguageTool langTool = new JLanguageTool(Language.POLISH);
+
+
+ // correct sentences:
+ assertEquals(0, rule.match(langTool.getAnalyzedSentence("To jest test
bez jakiegokolwiek błędu.")).length);
+ assertEquals(0, rule.match(langTool.getAnalyzedSentence("Żółw na
starość wydziela dziwną woń.")).length);
+ assertEquals(0, rule.match(langTool.getAnalyzedSentence(",")).length);
+
+ //incorrect sentences:
+
+ matches = rule.match(langTool.getAnalyzedSentence("Zolw"));
+ // check match positions:
+ assertEquals(1, matches.length);
+ assertEquals(0, matches[0].getFromPos());
+ assertEquals(4, matches[0].getToPos());
+ assertEquals("Zolą", matches[0].getSuggestedReplacements().get(0));
+
+ assertEquals(1,
rule.match(langTool.getAnalyzedSentence("aõh")).length);
+ assertEquals(0, rule.match(langTool.getAnalyzedSentence("a")).length);
+
+ }
+
+}
Property changes on:
trunk/JLanguageTool/src/test/org/languagetool/rules/pl/MorfologikPolishSpellerRuleTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs