/* LanguageTool, a natural language style checker 
 * Copyright (C) 2005 Daniel Naber (http://www.danielnaber.de)
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
 * USA
 */
package org.languagetool.rules.en;

import junit.framework.TestCase;
import org.languagetool.JLanguageTool;
import org.languagetool.TestTools;
import org.languagetool.language.English;
import org.languagetool.rules.RuleMatch;
import org.languagetool.rules.WordRepeatRule;

import java.io.IOException;

public class WordRepeatRuleTest extends TestCase {

  public void testRule() throws IOException {
    final English english = new English();
    final WordRepeatRule rule = new WordRepeatRule(TestTools.getEnglishMessages(), english);
    RuleMatch[] matches;
    final JLanguageTool langTool = new JLanguageTool(english);
    // correct sentences:
    matches = rule.match(langTool.getAnalyzedSentence("This is a test sentence."));
    assertEquals(0, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("This is a test sentence..."));
    assertEquals(0, matches.length);
    // incorrect sentences:
    matches = rule.match(langTool.getAnalyzedSentence("This this is a test sentence."));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("This is a test sentence sentence."));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("This is is a a test sentence sentence."));
    assertEquals(3, matches.length);
  }

}

@@ -1215,54 +1215,14 @@
 %0A  p
-ublic void testRule() throws IOException %7B%0A   
+rivate
  fin
@@ -1255,25 +1255,31 @@
 nglish();%0A  
- 
+private
  final WordR
@@ -1362,34 +1362,15 @@
 ;%0A  
-  RuleMatch%5B%5D matches;%0A   
+private
  fin
@@ -1429,87 +1429,72 @@
 h);%0A
+%0A
   
-  // correct sentences:%0A    matches = rule.match(langTool.getAnalyzedSentence
+public void testRule() throws IOException %7B%0A    assertMatches
 (%22Th
@@ -1508,33 +1508,35 @@
  test sentence.%22
-)
+, 0
 );%0A    assertEqu
@@ -1536,88 +1536,15 @@
 sert
-Equals(0, matches.length);%0A    matches = rule.match(langTool.getAnalyzedSentence
+Matches
 (%22Th
@@ -1568,19 +1568,26 @@
 ence...%22
-));
+, 0);%0A    
 %0A    ass
@@ -1593,242 +1593,129 @@
 sert
-Equals(0, matches.length);%0A    // incorrect sentences:%0A    matches = rule.match(langTool.getAnalyzedSentence(%22This this is a test sentence.%22));%0A    assertEquals(1, matches.length);%0A    matches = rule.match(langTool.getAnalyzedSentence
+Matches(%22This this is a test sentence.%22, 1);%0A    assertMatches(%22This is a test sentence sentence.%22, 1);%0A    assertMatches
 (%22Th
@@ -1712,32 +1712,37 @@
 atches(%22This is 
+is 
+a 
 a test sentence 
@@ -1755,52 +1755,119 @@
 ce.%22
-)
+, 3
 );%0A  
-  assertEquals(1, matches.length);%0A   
+%7D%0A%0A  private void assertMatches(String input, int expectedMatches) throws IOException %7B%0A    RuleMatch%5B%5D
  mat
@@ -1917,48 +1917,13 @@
 nce(
-%22This is is a a test sentence sentence.%22
+input
 ));%0A
@@ -1939,17 +1939,31 @@
 tEquals(
-3
+expectedMatches
 , matche

simplify code