use of org.languagetool.rules.RuleMatch in project languagetool by languagetool-org.
the class PatternRuleTest method testErrorTriggeringSentences.
private void testErrorTriggeringSentences(JLanguageTool languageTool, Language lang, AbstractPatternRule rule) throws IOException {
for (ErrorTriggeringExample example : rule.getErrorTriggeringExamples()) {
String sentence = cleanXML(example.getExample());
List<RuleMatch> matches = getMatches(rule, sentence, languageTool);
if (matches.size() == 0) {
fail(lang + ": " + rule.getFullId() + ": Example sentence marked with 'triggers_error' didn't actually trigger an error: '" + sentence + "'");
}
}
}
use of org.languagetool.rules.RuleMatch in project languagetool by languagetool-org.
the class PatternRuleTest method getMatches.
private List<RuleMatch> getMatches(Rule rule, String sentence, JLanguageTool languageTool) throws IOException {
AnalyzedSentence analyzedSentence = languageTool.getAnalyzedSentence(sentence);
RuleMatch[] matches = rule.match(analyzedSentence);
if (CHECK_WITH_SENTENCE_SPLITTING) {
// "real check" with sentence splitting:
for (Rule r : languageTool.getAllActiveRules()) {
languageTool.disableRule(r.getId());
}
languageTool.enableRule(rule.getId());
List<RuleMatch> realMatches = languageTool.check(sentence);
List<String> realMatchRuleIds = new ArrayList<>();
for (RuleMatch realMatch : realMatches) {
realMatchRuleIds.add(realMatch.getRule().getId());
}
for (RuleMatch match : matches) {
String ruleId = match.getRule().getId();
if (!match.getRule().isDefaultOff() && !realMatchRuleIds.contains(ruleId)) {
System.err.println("WARNING: " + languageTool.getLanguage().getName() + ": missing rule match " + ruleId + " when splitting sentences for test sentence '" + sentence + "'");
}
}
}
return Arrays.asList(matches);
}
use of org.languagetool.rules.RuleMatch in project languagetool by languagetool-org.
the class RegexPatternRuleTest method testMatchWithMark.
@Test
public void testMatchWithMark() throws IOException {
RegexPatternRule rule = new RegexPatternRule("ID", "desc", "msg: <suggestion>a suggestion \\1</suggestion>", "<suggestion>another suggestion \\2</suggestion>", TestTools.getDemoLanguage(), Pattern.compile("(fo.) (bar)"), 1);
JLanguageTool lt = new JLanguageTool(TestTools.getDemoLanguage());
RuleMatch[] matches2 = rule.match(lt.getAnalyzedSentence("This is foo bar"));
assertThat(matches2.length, is(1));
assertThat(matches2[0].getFromPos(), is(8));
assertThat(matches2[0].getToPos(), is(11));
}
use of org.languagetool.rules.RuleMatch in project languagetool by languagetool-org.
the class RegexPatternRuleTest method testMatch.
@Test
public void testMatch() throws IOException {
RegexPatternRule rule = new RegexPatternRule("ID", "desc", "msg: <suggestion>a suggestion \\1</suggestion>", "<suggestion>another suggestion \\2</suggestion>", TestTools.getDemoLanguage(), Pattern.compile("(fo.) (bar)"), 0);
JLanguageTool lt = new JLanguageTool(TestTools.getDemoLanguage());
RuleMatch[] matches1 = rule.match(lt.getAnalyzedSentence("This is a test"));
assertThat(matches1.length, is(0));
RuleMatch[] matches2 = rule.match(lt.getAnalyzedSentence("This is foo bar"));
assertThat(matches2.length, is(1));
assertThat(matches2[0].getFromPos(), is(8));
assertThat(matches2[0].getToPos(), is(15));
RuleMatch[] matches3 = rule.match(lt.getAnalyzedSentence("This is foo bar and fou bar"));
assertThat(matches3.length, is(2));
assertThat(matches3[0].getFromPos(), is(8));
assertThat(matches3[0].getToPos(), is(15));
assertThat(matches3[0].getMessage(), is("msg: <suggestion>a suggestion foo</suggestion>"));
assertThat(matches3[0].getSuggestedReplacements().toString(), is("[a suggestion foo, another suggestion bar]"));
assertThat(matches3[1].getFromPos(), is(20));
assertThat(matches3[1].getToPos(), is(27));
assertThat(matches3[1].getMessage(), is("msg: <suggestion>a suggestion fou</suggestion>"));
assertThat(matches3[1].getSuggestedReplacements().toString(), is("[a suggestion fou, another suggestion bar]"));
}
use of org.languagetool.rules.RuleMatch in project languagetool by languagetool-org.
the class DifferentPunctuationRuleTest method testRule.
@Test
public void testRule() throws IOException {
DifferentPunctuationRule rule = new DifferentPunctuationRule();
RuleMatch[] matches;
JLanguageTool srcLangTool = new JLanguageTool(TestTools.getDemoLanguage());
JLanguageTool trgLangTool = new JLanguageTool(new FakeLanguage());
rule.setSourceLanguage(TestTools.getDemoLanguage());
// correct sentences:
matches = rule.match(srcLangTool.getAnalyzedSentence("This is a test sentence!"), trgLangTool.getAnalyzedSentence("C'est la vie!"));
assertEquals(0, matches.length);
matches = rule.match(srcLangTool.getAnalyzedSentence("one sentence"), trgLangTool.getAnalyzedSentence("jedno zdanie"));
assertEquals(0, matches.length);
// incorrect sentences:
matches = rule.match(srcLangTool.getAnalyzedSentence("This this is a test sentence."), trgLangTool.getAnalyzedSentence("This this is a test sentence!"));
assertEquals(1, matches.length);
}
Aggregations