Skip to content

Commit

Permalink
Add list property of JapaneseJoyoKanji (#805)
Browse files Browse the repository at this point in the history
  • Loading branch information
teaplanet authored and takahi-i committed Oct 18, 2017
1 parent 66a2726 commit a2206a8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@
import cc.redpen.model.Sentence;
import cc.redpen.validator.Validator;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

Expand All @@ -43,9 +45,13 @@ public class JapaneseJoyoKanjiValidator extends Validator {

@Override
public void validate(Sentence sentence) {
Set<String> customSkipList = getSet("list");
final Matcher m = nonJoyoKanji.matcher(sentence.getContent());
while (m.find()) {
addLocalizedError(sentence, m.group());
String kanji = m.group();
if (customSkipList == null || !customSkipList.contains(kanji)) {
addLocalizedError(sentence, kanji);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import static org.junit.jupiter.api.Assertions.assertEquals;

Expand Down Expand Up @@ -71,4 +72,22 @@ void testInvalid() throws RedPenException {
assertEquals("JapaneseJoyoKanji", errors.get(0).getValidatorName());
assertEquals("JapaneseJoyoKanji", errors.get(1).getValidatorName());
}

@Test
void testSkipWordList() throws RedPenException {
Configuration config = Configuration.builder("ja")
.addValidatorConfig(new ValidatorConfiguration("JapaneseJoyoKanji").addProperty("list", "圭,昌"))
.build();

List<Document> documents = new ArrayList<>();documents.add(
Document.builder(new JapaneseTokenizer())
.addSection(1)
.addParagraph()
.addSentence(new Sentence("圭や昌は常用漢字ではありませんが、人名漢字であるため許可します。", 1))
.build());

RedPen redPen = new RedPen(config);
List<ValidationError> errors = redPen.validate(documents).get(documents.get(0));
assertEquals(0, errors.size());
}
}

0 comments on commit a2206a8

Please sign in to comment.