Skip to content

Commit

Permalink
refactor: avoid usage of direct LT language class
Browse files Browse the repository at this point in the history
- When migrating Java platform module system(JPMS), LT need to move package paths of language classes,
  so we should avoid direct reference of LT language classes.
- We can use LT utility methods; Languages.getLanguageByName getLanguageByShortCode getLanguageByLocale

Signed-off-by: Hiroshi Miura <[email protected]>
  • Loading branch information
miurahr committed Sep 30, 2023
1 parent be2bf25 commit 98e44ea
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
23 changes: 10 additions & 13 deletions test/src/org/omegat/languagetools/LanguageToolTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,7 @@
import org.junit.Before;
import org.junit.Test;
import org.languagetool.JLanguageTool;
import org.languagetool.language.AmericanEnglish;
import org.languagetool.language.CanadianEnglish;
import org.languagetool.language.English;
import org.languagetool.language.French;
import org.languagetool.Languages;
import org.languagetool.rules.RuleMatch;
import org.languagetool.rules.patterns.PatternRule;
import org.languagetool.server.HTTPServer;
Expand All @@ -65,7 +62,7 @@ public final void setUp() throws Exception {
@Test
@SuppressWarnings("deprecation")
public void testExecuteLanguageToolCheck() throws Exception {
JLanguageTool lt = new JLanguageTool(new org.languagetool.language.Belarusian());
JLanguageTool lt = new JLanguageTool(Languages.getLanguageForShortCode("be"));

// The test string is Belarusian; originally it was actual UTF-8,
// but that causes the test to fail when environment encodings aren't set
Expand All @@ -77,7 +74,7 @@ public void testExecuteLanguageToolCheck() throws Exception {

@Test
public void testFrench() throws Exception {
JLanguageTool lt = new JLanguageTool(new French());
JLanguageTool lt = new JLanguageTool(Languages.getLanguageForShortCode("fr"));

// example from https://github.com/languagetool-org/languagetool/issues/2852
List<RuleMatch> matches = lt.check("Il est par cons\u00E9quent perdue.");
Expand All @@ -87,7 +84,7 @@ public void testFrench() throws Exception {

@Test
public void testEnglish() throws Exception {
JLanguageTool lt = new JLanguageTool(new AmericanEnglish());
JLanguageTool lt = new JLanguageTool(Languages.getLanguageForLocale(new Locale("en", "US")));

List<RuleMatch> matches = lt.check("Check test");
assertEquals(0, matches.size());
Expand Down Expand Up @@ -152,29 +149,29 @@ public void testWrapperInit() throws Exception {
public void testLanguageMapping() {
{
org.languagetool.Language lang = LanguageToolNativeBridge.getLTLanguage(new Language("en-US"));
assertEquals(AmericanEnglish.class, lang.getClass());
assertEquals(Languages.getLanguageForLocale(new Locale("en", "US")).getClass(), lang.getClass());
}
{
org.languagetool.Language lang = LanguageToolNativeBridge.getLTLanguage(new Language("en-CA"));
assertEquals(CanadianEnglish.class, lang.getClass());
assertEquals(Languages.getLanguageForLocale(new Locale("en", "CA")).getClass(), lang.getClass());
}
{
org.languagetool.Language lang = LanguageToolNativeBridge.getLTLanguage(new Language("en"));
assertEquals(English.class, lang.getClass());
assertEquals(Languages.getLanguageForShortCode("en").getClass(), lang.getClass());
}
{
// Unknown region--fall back to generic class
org.languagetool.Language lang = LanguageToolNativeBridge.getLTLanguage(new Language("en-JA"));
assertEquals(English.class, lang.getClass());
assertEquals(Languages.getLanguageForShortCode("en").getClass(), lang.getClass());
}
{
org.languagetool.Language lang = LanguageToolNativeBridge.getLTLanguage(new Language("be-BY"));
assertEquals(org.languagetool.language.Belarusian.class, lang.getClass());
assertEquals(Languages.getLanguageForShortCode("be").getClass(), lang.getClass());
}
{
// Belarusian is offered in be-BY only; ensure hit with just "be"
org.languagetool.Language lang = LanguageToolNativeBridge.getLTLanguage(new Language("be"));
assertEquals(org.languagetool.language.Belarusian.class, lang.getClass());
assertEquals(Languages.getLanguageForShortCode("be").getClass(), lang.getClass());
}
{
org.languagetool.Language lang = LanguageToolNativeBridge.getLTLanguage(new Language("xyz"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,24 @@
import static org.junit.Assert.assertTrue;

import java.util.List;
import java.util.Objects;

import net.java.sen.SenFactory;
import net.java.sen.StringTagger;

import org.junit.Test;

import org.languagetool.JLanguageTool;
import org.languagetool.language.Japanese;
import org.languagetool.Languages;
import org.languagetool.rules.RuleMatch;
import org.languagetool.rules.patterns.PatternRule;

public class LuceneGosenCompatibilityTest {

/**
* Regression test for bugs#1204.
* https://sourceforge.net/p/omegat/bugs/1204/
* <a href="https://sourceforge.net/p/omegat/bugs/1204/">
* LanguageTool6 lucene-gosen-ipadic from omegat project is incompatible</a>
*/
@Test
public void testLuceneGosenGetStringTagger6() {
Expand All @@ -55,7 +57,7 @@ public void testLuceneGosenGetStringTagger6() {

@Test
public void testJapanese() throws Exception {
JLanguageTool lt = new JLanguageTool(new Japanese());
JLanguageTool lt = new JLanguageTool(Objects.requireNonNull(Languages.getLanguageForName("Japanese")));
List<RuleMatch> matches = lt.check("そんじゃそこらのやつらとは違う");
assertEquals(1, matches.size());
assertTrue(matches.get(0).getRule() instanceof PatternRule);
Expand Down

0 comments on commit 98e44ea

Please sign in to comment.