/** * Copyright (C) 2012 cogroo <cogroo@cogroo.org> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.cogroo.tools.checker.checkers; import static junit.framework.Assert.assertEquals; import java.io.IOException; import java.util.List; import opennlp.tools.dictionary.Dictionary; import opennlp.tools.util.InvalidFormatException; import opennlp.tools.util.Span; import org.cogroo.entities.Mistake; import org.cogroo.entities.Sentence; import org.cogroo.tools.checker.RuleDefinition; import org.junit.Test; public class SpaceCheckerTest { // private Dictionary loadAbbDict() throws InvalidFormatException, IOException { // Dictionary abbDict = new Dictionary(this.getClass().getResourceAsStream( // "/dictionaries/pt_br/abbr.xml")); // return abbDict; // } // // @Test // public void testEXTRA_BETWEEN_WORDS() throws InvalidFormatException, IOException { // SpaceChecker checker = createSpaceChecker(); // // String id = SpaceChecker.EXTRA_BETWEEN_WORDS_ID; // // RuleDefinitionI def = checker.getRuleDefinition(id); // // String correct = def.getExamples().get(0).getCorrect(); // String incorrect = def.getExamples().get(0).getIncorrect(); // // Sentence sentence = createSentence(incorrect); // List<Mistake> mistakes = checker.check(sentence); // // Mistake mistake = mistakes.get(0); // // String fixed = fix(mistake, incorrect); // // assertEquals(1, mistakes.size()); // assertEquals(correct, fixed); // assertEquals(id, mistake.getRuleIdentifier()); // assertEquals(def.getShortMessage(), mistake.getShortMessage()); // assertEquals(def.getMessage(), mistake.getLongMessage()); // } // // @Test // public void testEXTRA_BEFORE_RIGHT_PUNCT() throws InvalidFormatException, IOException { // SpaceChecker checker = createSpaceChecker(); // // String id = SpaceChecker.EXTRA_BEFORE_RIGHT_PUNCT_ID; // // RuleDefinitionI def = checker.getRuleDefinition(id); // // String correct = def.getExamples().get(0).getCorrect(); // String incorrect = def.getExamples().get(0).getIncorrect(); // // Sentence sentence = createSentence(incorrect); // List<Mistake> mistakes = checker.check(sentence); // // Mistake mistake = mistakes.get(0); // // String fixed = fix(mistake, incorrect); // // assertEquals(1, mistakes.size()); // assertEquals(correct, fixed); // assertEquals(id, mistake.getRuleIdentifier()); // assertEquals(def.getShortMessage(), mistake.getShortMessage()); // assertEquals(def.getMessage(), mistake.getLongMessage()); // } // // @Test // public void testEXTRA_AFTER_LEFT_PUNCT() throws InvalidFormatException, IOException { // SpaceChecker checker = createSpaceChecker(); // // String id = SpaceChecker.EXTRA_AFTER_LEFT_PUNCT_ID; // // RuleDefinitionI def = checker.getRuleDefinition(id); // // String correct = def.getExamples().get(0).getCorrect(); // String incorrect = def.getExamples().get(0).getIncorrect(); // // Sentence sentence = createSentence(incorrect); // List<Mistake> mistakes = checker.check(sentence); // // Mistake mistake = mistakes.get(0); // // String fixed = fix(mistake, incorrect); // // assertEquals(1, mistakes.size()); // assertEquals(correct, fixed); // assertEquals(id, mistake.getRuleIdentifier()); // assertEquals(def.getShortMessage(), mistake.getShortMessage()); // assertEquals(def.getMessage(), mistake.getLongMessage()); // } // // @Test // public void testMISSING_SPACE_AFTER_PUNCT() throws InvalidFormatException, IOException { // SpaceChecker checker = createSpaceChecker(); // // String id = SpaceChecker.MISSING_SPACE_AFTER_PUNCT_ID; // // RuleDefinitionI def = checker.getRuleDefinition(id); // // String correct = def.getExamples().get(0).getCorrect(); // String incorrect = def.getExamples().get(0).getIncorrect(); // // Sentence sentence = createSentence(incorrect); // List<Mistake> mistakes = checker.check(sentence); // // Mistake mistake = mistakes.get(0); // // String fixed = fix(mistake, incorrect); // // assertEquals(1, mistakes.size()); // assertEquals(correct, fixed); // assertEquals(id, mistake.getRuleIdentifier()); // assertEquals(def.getShortMessage(), mistake.getShortMessage()); // assertEquals(def.getMessage(), mistake.getLongMessage()); // } // // @Test // public void testNoError() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("Abc (abc)."); // SpaceChecker checker = createSpaceChecker(); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testParenthesisPeriod() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("Meu tel. é \"(12) 4789-4928\"!\n"); // SpaceChecker checker = createSpaceChecker(); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testEMail() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("Meu e-mail é asdf@linux.ime.usp.br!\n"); // // SpaceChecker checker = createSpaceChecker(); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testMoney() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("Eu tenho R$ 4,00\n"); // // SpaceChecker checker = createSpaceChecker(); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testNumber() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("Capítulo 2.1.4, seção 2.1.2!\n"); // // SpaceChecker checker = createSpaceChecker(); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testAbbreviation() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("O Sr. L.A.P. morreu.\n"); // // SpaceChecker checker = createSpaceChecker(); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testAbbreviation2() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("A palavra N.Sra. está no dicionário de abreviações.\n"); // // SpaceChecker checker = new SpaceChecker(loadAbbDict()); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testAbbreviation3() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("O Sr. L.P.D., e seu irmão (A.P.D.) morreram.\n"); // // SpaceChecker checker = new SpaceChecker(loadAbbDict()); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testURL() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("O site é: (http://www.ime.usp.br/~finger).\n"); // // SpaceChecker checker = new SpaceChecker(loadAbbDict()); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // @Test // public void testParenthesis() throws InvalidFormatException, IOException { // Sentence sentence = createSentence("Os sistemas (digestivo, respiratório, etc.)\n"); // // SpaceChecker checker = new SpaceChecker(loadAbbDict()); // List<Mistake> mistakes = checker.check(sentence); // // assertEquals(0, mistakes.size()); // } // // private String fix(Mistake mistake, String incorrect) { // int start = mistake.getStart(); // int end = mistake.getEnd(); // String replace = mistake.getSuggestions()[0]; // // String fixed = incorrect.substring(0, start) + replace // + incorrect.substring(end); // return fixed; // } // // private Sentence createSentence(String test) { // Sentence sentence = new Sentence(); // // sentence.setSentence(test); // sentence.setSpan(new Span(0, test.length())); // return sentence; // } // // private SpaceChecker createSpaceChecker() throws InvalidFormatException, IOException { // return new SpaceChecker(loadAbbDict()); // } }