Revision: 9353
http://languagetool.svn.sourceforge.net/languagetool/?rev=9353&view=rev
Author: dnaber
Date: 2013-02-11 22:04:41 +0000 (Mon, 11 Feb 2013)
Log Message:
-----------
re-activate the rule id uniqueness test - was lost sometimes back (just like
the regex check for the rule IDs, so that we now have rule ids with special
characters, but as no problem has been reported yet I will not re-enable that
test)
Modified Paths:
--------------
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/patterns/PatternRuleTest.java
Removed Paths:
-------------
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/RuleTest.java
Deleted:
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/RuleTest.java
===================================================================
---
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/RuleTest.java
2013-02-11 21:18:47 UTC (rev 9352)
+++
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/RuleTest.java
2013-02-11 22:04:41 UTC (rev 9353)
@@ -1,63 +0,0 @@
-/* LanguageTool, a natural language style checker
- * Copyright (C) 2011 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;
-
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.languagetool.JLanguageTool;
-import org.languagetool.Language;
-
-public class RuleTest extends TestCase {
-
- public void testJavaRuleIds() throws IOException {
- final Set<String> ids = new HashSet<String>();
- final Set<Class> ruleClasses = new HashSet<Class>();
- for (Language language : Language.LANGUAGES) {
- final JLanguageTool lt = new JLanguageTool(language);
- final List<Rule> allRules = lt.getAllRules();
- for (Rule rule : allRules) {
- assertIdUniqueness(ids, ruleClasses, language, rule);
- assertIdValidity(language, rule);
- }
- }
- }
-
- private void assertIdUniqueness(Set<String> ids, Set<Class> ruleClasses,
Language language, Rule rule) {
- final String ruleId = rule.getId();
- if (ids.contains(ruleId) && !ruleClasses.contains(rule.getClass())) {
- throw new RuntimeException("Rule id occurs more than once: '" + ruleId +
"', language: " + language);
- }
- ids.add(ruleId);
- ruleClasses.add(rule.getClass());
- }
-
- private void assertIdValidity(Language language, Rule rule) {
- final String ruleId = rule.getId();
- if (!ruleId.matches("^[A-Z_]+$")) {
- throw new RuntimeException("Invalid character in rule id: '" + ruleId +
"', language: "
- + language + ", only [A-Z_] are allowed");
- }
- }
-
-}
Modified:
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/patterns/PatternRuleTest.java
===================================================================
---
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/patterns/PatternRuleTest.java
2013-02-11 21:18:47 UTC (rev 9352)
+++
trunk/languagetool/languagetool-core/src/test/java/org/languagetool/rules/patterns/PatternRuleTest.java
2013-02-11 22:04:41 UTC (rev 9353)
@@ -120,6 +120,7 @@
}
final JLanguageTool allRulesLanguageTool = new JLanguageTool(lang);
allRulesLanguageTool.activateDefaultPatternRules();
+ validateRuleIds(lang, allRulesLanguageTool);
final List<PatternRule> rules = new ArrayList<PatternRule>();
for (String patternRuleFileName : lang.getRuleFileName()) {
rules.addAll(languageTool.loadPatternRules(patternRuleFileName));
@@ -128,7 +129,7 @@
testGrammarRulesFromXML(rules, languageTool, allRulesLanguageTool, lang);
System.out.println(rules.size() + " rules tested.");
}
-
+
private void validatePatternFile(Language lang) throws IOException {
final XMLValidator validator = new XMLValidator();
final String grammarFile = getGrammarFileName(lang);
@@ -143,6 +144,24 @@
}
}
+ private void validateRuleIds(Language lang, JLanguageTool languageTool) {
+ final List<Rule> allRules = languageTool.getAllRules();
+ final Set<String> ids = new HashSet<String>();
+ final Set<Class> ruleClasses = new HashSet<Class>();
+ for (Rule rule : allRules) {
+ assertIdUniqueness(ids, ruleClasses, lang, rule);
+ }
+ }
+
+ private void assertIdUniqueness(Set<String> ids, Set<Class> ruleClasses,
Language language, Rule rule) {
+ final String ruleId = rule.getId();
+ if (ids.contains(ruleId) && !ruleClasses.contains(rule.getClass())) {
+ throw new RuntimeException("Rule id occurs more than once: '" + ruleId +
"', language: " + language);
+ }
+ ids.add(ruleId);
+ ruleClasses.add(rule.getClass());
+ }
+
private void disableSpellingRules(JLanguageTool languageTool) {
final List<Rule> allRules = languageTool.getAllRules();
for (Rule rule : allRules) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits