[jboss-svn-commits] JBL Code SVN: r17126 - in labs/jbossrules/trunk/drools-analytics/src: main/java/org/drools/analytics/components and 6 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Dec 9 05:11:27 EST 2007


Author: Rikkola
Date: 2007-12-09 05:11:22 -0500 (Sun, 09 Dec 2007)
New Revision: 17126

Added:
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Consequence.drl
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/ConsequenceRedundancyTest.drl
Removed:
   labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RuleRedundancyTest.drl
Modified:
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl
   labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc3.drl
Log:
More redundancy tests and bug fixes for the old ones.

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -5,9 +5,10 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.WorkingMemory;
-import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.analytics.components.Pattern;
 import org.drools.analytics.dao.AnalyticsData;
 import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.ReportModeller;
 import org.drools.analytics.report.html.ComponentsReportModeller;
 import org.drools.lang.descr.PackageDescr;
@@ -44,7 +45,9 @@
 
 			WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
-			for (Object o : data.getAll()) {
+			Collection<? extends Object> c = data.getAll();
+
+			for (Object o : c) {
 				workingMemory.insert(o);
 			}
 

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleLoader.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -12,15 +12,44 @@
 class RuleLoader {
 
 	public static Collection<Package> loadPackages() {
-		Collection<Package> packages = new ArrayList<Package>();
 
-		Collection<InputStreamReader> readers = readInputStreamReaders();
+		String[] fileNames = new String[] {
+				// Incoherence
+				"incoherence/Patterns.drl",
+				"incoherence/Restrictions.drl",
+				// Missing equality
+				"missingEquality/MissingEquality.drl",
+				// Optimization
+				"optimisation/RestrictionOrder.drl",
+				"optimisation/PatternOrder.drl",
+				// Range checks
+				"rangeChecks/Dates.drl", "rangeChecks/Doubles.drl",
+				"rangeChecks/Integers.drl",
+				"rangeChecks/Patterns.drl",
+				"rangeChecks/Variables.drl",
+				"rangeChecks/Clean.drl",
+				// Redundancy
+				"redundancy/Restrictions.drl", "redundancy/Notes.drl",
+				"redundancy/Consequence.drl", "redundancy/Patterns.drl",
+				"redundancy/Possibilities.drl", "redundancy/Rules.drl",
+				"reports/RangeCheckReports.drl",
+				// Missing consequence
+				"Consequence.drl", };
 
-		for (InputStreamReader reader : readers) {
+		Collection<Package> packages = new ArrayList<Package>();
+
+		for (int i = 0; i < fileNames.length; i++) {
 			try {
+				InputStreamReader reader = new InputStreamReader(
+						RuleLoader.class.getResourceAsStream(fileNames[i]));
 				packages.add(loadPackage(reader));
+				reader.close();
 			} catch (DroolsParserException e) {
 				e.printStackTrace();
+			} catch (NullPointerException e) {
+				System.err.println("Error when opening file " + fileNames[i]
+						+ ".");
+				e.printStackTrace();
 			} catch (IOException e) {
 				e.printStackTrace();
 			}
@@ -38,44 +67,4 @@
 
 		return builder.getPackage();
 	}
-
-	private static Collection<InputStreamReader> readInputStreamReaders() {
-		Collection<InputStreamReader> list = new ArrayList<InputStreamReader>();
-
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("rangeChecks/Dates.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("rangeChecks/Doubles.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("rangeChecks/Integers.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("rangeChecks/Patterns.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("rangeChecks/Variables.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("rangeChecks/Clean.drl")));
-
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("Consequence.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("optimisation/RestrictionOrder.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("optimisation/PatternOrder.drl")));
-
-		// list.add(new InputStreamReader(RuleLoader.class
-		// .getResourceAsStream("redundancy/Possibilities.drl")));
-		//
-		// list.add(new InputStreamReader(RuleLoader.class
-		// .getResourceAsStream("redundancy/Patterns.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("redundancy/Restrictions.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("redundancy/Notes.drl")));
-		// list.add(new InputStreamReader(RuleLoader.class
-		// .getResourceAsStream("redundancy/Rules.drl")));
-		list.add(new InputStreamReader(RuleLoader.class
-				.getResourceAsStream("reports/RangeCheckReports.drl")));
-
-		return list;
-	}
 }

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -1,7 +1,10 @@
 package org.drools.analytics.components;
 
-public interface Consequence {
+import org.drools.analytics.report.components.Cause;
 
+
+public interface Consequence extends Cause{
+
 	public static enum ConsequenceType {
 		TEXT
 	}
@@ -9,9 +12,9 @@
 	public int getId();
 
 	public ConsequenceType getConsequenceType();
-	
+
 	public int getRuleId();
 
 	public String getRuleName();
-	
+
 }

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -18,6 +18,10 @@
 		return AnalyticsComponentType.CONSEQUENCE;
 	}
 
+	public CauseType getCauseType() {
+		return CauseType.CONSEQUENCE;
+	}
+
 	public void setText(String text) {
 		this.text = text;
 	}

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -17,7 +17,8 @@
 		REDUNDANCY, 
 		EVAL,
 		PREDICATE, 
-		CONSTRAINT
+		CONSTRAINT, 
+		CONSEQUENCE
 	}
 	
 	public int getId();

Added: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Consequence.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Consequence.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Consequence.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -0,0 +1,32 @@
+#created on: 29.11.2007
+package org.drools.analytics.redundancy.consequences
+
+#list any import classes here.
+import org.drools.analytics.components.TextConsequence;
+import org.drools.analytics.report.components.Redundancy;
+
+#declare any global variables here
+
+
+
+rule "Find redundant TextConsequences"
+	when
+		# Check that AnalyticsRule $left and $right have redundant fields.
+		$left :TextConsequence()
+		$right :TextConsequence( 
+			id != $left.id, 
+			text == $left.text
+		)
+		
+		# Check that there is not already a pair with these values.
+		not Redundancy( 
+			left == $left, 
+			right == $right 
+		)
+		not Redundancy( 
+			left == $right, 
+			right == $left 
+		)
+	then
+		insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
+end

Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -27,7 +27,7 @@
 			left.causeType == Cause.CauseType.RESTRICTION
 		)
 		
-		PatternPossibility(
+		$pp :PatternPossibility(
 			items contains $r.left, 
 			items contains $r.right 
 		)

Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Patterns.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -76,42 +76,3 @@
 	then
 		insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
 end
-
-
-/*
-#
-# When two patterns and all theyr possibilities are redundant.
-#
-rule "Find subsumption between patterns"
-	when
-		# $p1 :Pattern()
-		# $p2 :Pattern( id != $p1.id )
-		
-		$patternRedundancy :Redundancy( 
-			type == Redundancy.RedundancyType.WEAK,
-			causeType == Cause.CauseType.PATTERN 
-		)
-		
-		$set1 :HashSet()
-			from collect(
-				PartialRedundancy( patternId == $p1.id )
-			)
-		
-		# Check that sizes are the same.
-		eval( $set1.size() == $set2.size() )
-		
-		$redundancyList :ArrayList()
-			from collect(
-				Redundancy( 
-					eval( $set1.contains( left ) ),
-					eval( $set2.contains( right ) )
-				)
-			)
-		
-		eval( $set1.size() == $redundancyList.size() )
-		
-	then
-		# Type is set to strong because all the pattern possibilities are redundant.
-		insert( new Redundancy( Redundancy.Type.STRONG, $p1, $p2 ) );
-end
-*/
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -26,11 +26,11 @@
 
 		# Find two PatternPossibilities.
 		$pp1 :PatternPossibility(
-			eval( id == $ppr.getLeft().getId() )
+			eval( patternId == $ppr.getLeft().getId() )
 		)
 
 		$pp2 :PatternPossibility(
-			eval( id == $ppr.getRight().getId() )
+			eval( patternId == $ppr.getRight().getId() )
 		)
 		
 		# For every restriction in $pp1 there is a redundancy to $pp2. 
@@ -91,11 +91,11 @@
 
 		# Find two RulePossibilities.
 		$rp1 :RulePossibility(
-			eval( id == $redundancy.getLeft().getId() )
+			eval( ruleId == $redundancy.getLeft().getId() )
 		)
 
 		$rp2 :RulePossibility(
-			eval( id == $redundancy.getRight().getId() )
+			eval( ruleId == $redundancy.getRight().getId() )
 		)
 		
 		# For every pattern possibility in $pp1 there is a pattern possibility in $pp2. 

Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -42,7 +42,8 @@
 					booleanValue == $left.booleanValue
 				)
 			or
-				$right :LiteralRestriction( id != $left.id, 
+				$right :LiteralRestriction( 
+					id != $left.id, 
 					operator == $left.operator,
 					valueType == $left.valueType,
 					valueType == Field.FieldType.STRING,
@@ -106,66 +107,3 @@
 	then
 		insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
 end
-
-# TODO: And from and every object.
-//TODO: Also check that patterns and rules are redundant.
-/*
-rule "Find redundant ReturnValueRestriction"
-	when
-		# Check that Restrictions $left and $right have redundant fields.
-		$left :ReturnValueRestriction()
-		$right :ReturnValueRestriction( 
-			id != $left.id,
-			operator == $left.operator,
-			classMethodName matches $left.classMethodName,
-			compareStringArrays( declarations, $left.declarations )
-		)
-					
-		# Check that PatternPossibilities $pp1 and $pp2 have redundant fields
-		# and that they contain $left and $right.
-		$pp1 :PatternPossibility( restriction contains $left ) 
-		$pp2 :PatternPossibility( 
-					id != $pp1.id, 
-					restriction contains $right, 
-					exist == $pp1.exist, 
-					notExist == $pp1.notExist,
-					eval( restrictions.size() == $pp1.getRestrictions().size() ) 
-		)
-		# Check that there is not allready a pair with these values.
-		not RedundantPair( left == $left, right == $right )
-	then
-		insert( new RedundantPair( $pp1, $pp2, $left, $right ) );
-end
-*/
-/*
-XXX: Not sure if this can be done.
-rule "Find redundant QualifiedIdentifierRestriction"
-	when
-		# Check that Restrictions $left and $right have redundant fields.
-		$left :QualifiedIdentifierRestriction()
-		$right :QualifiedIdentifierRestriction( 
-			id != $left.id, 
-			operator == $left.operator 
-		)
-		
-		# Check that these two variables point to the same object.
-		$v :Variable( id == $left.variableId )
-		Variable( 
-			id == $right.variableId,
-			objectType == $v.objectType,
-			objectId == $v.objectId
-		)
-		
-		# Check that there is not already a pair with these values.
-		not Redundancy( 
-			left == $left, 
-			right == $right 
-		)
-		not Redundancy( 
-			left == $right, 
-			right == $left 
-		)
-	then
-		insert( new Redundancy( $left, $right ) );
-end
-*/

Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Rules.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -1,68 +1,37 @@
 #created on: 7.9.2007
 package org.drools.analytics.redundancy.rules
 
-import org.drools.analytics.components.*;
+import org.drools.analytics.components.AnalyticsRule;
 import org.drools.analytics.report.components.Redundancy;
 
 #
 # Only checks for redundant rule specifications, 
 # does not include actual pattern and restriction checks.
 #
-rule "Find redundant Rule shells"
+rule "Find redundant Rules, weak redundancy"
 	when
 		# Check that AnalyticsRule $left and $right have redundant fields.
 		$left :AnalyticsRule()
 		$right :AnalyticsRule( 
 			id != $left.id, 
-			ruleSalience == $left.ruleSalience,
-			ruleAgendaGroup == $left.ruleAgendaGroup,
-			consequence == $left.consequence # TODO: Check for redundancy when MVEL is solved.
+			ruleAgendaGroup == $left.ruleAgendaGroup
 		)
 		
+		exists Redundancy(
+			left == $left.consequence,
+			right == $right.consequence
+		)
+		
 		# Check that there is not already a pair with these values.
 		not Redundancy( 
 			left == $left, 
 			right == $right 
 		)
+		not Redundancy( 
+			left == $right, 
+			right == $left 
+		)
 	then
 		insert( new Redundancy( Redundancy.RedundancyType.WEAK, $left, $right ) );
 end
 
-/*
-#
-# When two rules and all theyr possibilities are redundant.
-#
-rule "Find redundant rule"
-	when
-		$r1 :AnalyticsRule()
-		$r2 :AnalyticsRule( id != $r1.id )
-		
-		# If all the patterns in rule 1 are strongly redundant to rule 2, and vice versa.
-		# Then the redundancy is strong.
-		$set1 :HashSet()
-			from collect(
-				Pattern( ruleId == $r1.id )
-			)
-
-		$set2 :HashSet()
-			from collect(
-				Pattern( ruleId == $r2.id )
-			)
-		
-		# Find only strong pattern
-		$redundancyList :ArrayList()
-			from collect(
-				Redundancy( 
-					type == Redundancy.Type.STRONG,
-					eval( $set1.contains( left ) ),
-					eval( $set2.contains( right ) )
-				)
-			)
-		 
-		eval( $set1.size() == $redundancyList.size() )
-		
-	then
-		# Type is set to strong because all the rule possibilities are redundant.
-		insert( new Redundancy( Redundancy.Type.STRONG, $r1, $r2 ) );
-end
-*/
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/AnalyticsTestStandalone.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -3,6 +3,8 @@
 import java.io.BufferedWriter;
 import java.io.FileWriter;
 import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collection;
 
 import org.drools.compiler.DrlParser;
 import org.drools.lang.descr.PackageDescr;
@@ -14,48 +16,30 @@
 
 	public static final void main(String[] args) {
 		try {
-			PackageDescr descr = new DrlParser().parse(new InputStreamReader(
-					Analyzer.class
-							.getResourceAsStream("MissingRangesForDates.drl")));
-			PackageDescr descr2 = new DrlParser()
-					.parse(new InputStreamReader(Analyzer.class
-							.getResourceAsStream("MissingRangesForDoubles.drl")));
-			PackageDescr descr3 = new DrlParser().parse(new InputStreamReader(
-					Analyzer.class
-							.getResourceAsStream("MissingRangesForInts.drl")));
-			PackageDescr descr4 = new DrlParser()
-					.parse(new InputStreamReader(
-							Analyzer.class
-									.getResourceAsStream("MissingRangesForVariables.drl")));
-			PackageDescr descr5 = new DrlParser().parse(new InputStreamReader(
-					Analyzer.class.getResourceAsStream("Misc.drl")));
-			PackageDescr descr6 = new DrlParser().parse(new InputStreamReader(
-					Analyzer.class.getResourceAsStream("Misc2.drl")));
-			PackageDescr descr7 = new DrlParser().parse(new InputStreamReader(
-					Analyzer.class.getResourceAsStream("Misc3.drl")));
-			PackageDescr descr8 = new DrlParser().parse(new InputStreamReader(
-					Analyzer.class.getResourceAsStream("ConsequenceTest.drl")));
-			PackageDescr descr9 = new DrlParser()
-					.parse(new InputStreamReader(
-							Analyzer.class
-									.getResourceAsStream("optimisation/OptimisationRestrictionOrderTest.drl")));
-			PackageDescr descr10 = new DrlParser()
-			.parse(new InputStreamReader(
-					Analyzer.class
-					.getResourceAsStream("optimisation/OptimisationPatternOrderTest.drl")));
 
+			Collection<String> fileNames = new ArrayList<String>();
+
+			// Test data
+//			fileNames.add("MissingRangesForDates.drl");
+//			fileNames.add("MissingRangesForDoubles.drl");
+//			fileNames.add("MissingRangesForInts.drl");
+//			fileNames.add("MissingRangesForVariables.drl");
+//			fileNames.add("Misc.drl");
+//			fileNames.add("Misc2.drl");
+			fileNames.add("Misc3.drl");
+//			fileNames.add("ConsequenceTest.drl");
+//			fileNames.add("optimisation/OptimisationRestrictionOrderTest.drl");
+//			fileNames.add("optimisation/OptimisationPatternOrderTest.drl");
+
+			DrlParser parser = new DrlParser();
 			Analyzer a = new Analyzer();
-			// a.addPackageDescr(descr);
-			// a.addPackageDescr(descr2);
-			// a.addPackageDescr(descr3);
-			// a.addPackageDescr(descr4);
-			a.addPackageDescr(descr5);
-			a.addPackageDescr(descr6);
-			a.addPackageDescr(descr7);
-			a.addPackageDescr(descr8);
-			a.addPackageDescr(descr9);
-			a.addPackageDescr(descr10);
-			
+
+			for (String s : fileNames) {
+				PackageDescr descr = parser.parse(new InputStreamReader(
+						Analyzer.class.getResourceAsStream(s)));
+				a.addPackageDescr(descr);
+			}
+
 			a.fireAnalysis();
 			// System.out.print(a.getResultAsPlainText());
 			// System.out.print(a.getResultAsXML());

Added: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -0,0 +1,56 @@
+package org.drools.analytics.redundancy;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.analytics.TestBase;
+import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+
+public class RedundantConsequencesTest extends RedundancyTestBase {
+
+	public void testRedundantTextConsequences() throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Consequence.drl"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Find redundant TextConsequences"));
+
+		AnalyticsDataFactory.clearAnalyticsData();
+		Collection<? extends Object> data = getTestData(this.getClass()
+				.getResourceAsStream("ConsequenceRedundancyTest.drl"));
+
+		AnalyticsDataFactory.clearAnalyticsResult();
+		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		session.setGlobal("result", result);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<String, Set<String>> map = createRedundancyMap(sessionResult
+				.iterateObjects());
+
+		assertTrue(TestBase.mapContains(map, "Redundant consiquence 1a",
+				"Redundant consiquence 1b")
+				^ TestBase.mapContains(map, "Redundant consiquence 1b",
+						"Redundant consiquence 1a"));
+
+		assertTrue(TestBase.mapContains(map, "Redundant consiquence 2a",
+				"Redundant consiquence 2b")
+				^ TestBase.mapContains(map, "Redundant consiquence 2b",
+						"Redundant consiquence 2a"));
+
+		assertTrue(TestBase.mapContains(map, "Redundant consiquence 3a",
+				"Redundant consiquence 3b")
+				^ TestBase.mapContains(map, "Redundant consiquence 3b",
+						"Redundant consiquence 3a"));
+
+		if (!map.isEmpty()) {
+			fail("More redundancies than was expected.");
+		}
+	}
+
+}

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -1,207 +1,18 @@
 package org.drools.analytics.redundancy;
 
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
 import org.drools.analytics.TestBase;
-import org.drools.analytics.components.AnalyticsComponent;
-import org.drools.analytics.components.AnalyticsRule;
-import org.drools.analytics.components.PatternPossibility;
-import org.drools.analytics.components.RulePossibility;
 import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.analytics.dao.AnalyticsResult;
-import org.drools.analytics.report.components.PartialRedundancy;
-import org.drools.analytics.report.components.Redundancy;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 
 public class RedundantRestrictionsTest extends RedundancyTestBase {
 
-	public void fixmetestPartOfRulePossibilityRedundancy() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Possibilities.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Find part of redundant RulePossibility combination"));
-
-		Collection<Object> data = new ArrayList<Object>();
-
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
-		session.setGlobal("result", result);
-
-		String ruleName1 = "Rule 1";
-		String ruleName2 = "Rule 2";
-
-		AnalyticsRule r1 = new AnalyticsRule();
-		r1.setRuleName(ruleName1);
-		AnalyticsRule r2 = new AnalyticsRule();
-		r2.setRuleName(ruleName2);
-
-		PatternPossibility pp1 = new PatternPossibility();
-		pp1.setRuleName(ruleName1);
-		PatternPossibility pp2 = new PatternPossibility();
-		pp2.setRuleName(ruleName2);
-
-		RulePossibility rp1 = new RulePossibility();
-		rp1.setRuleId(r1.getId());
-		rp1.setRuleName(ruleName1);
-		rp1.add(pp1);
-
-		RulePossibility rp2 = new RulePossibility();
-		rp2.setRuleId(r2.getId());
-		rp2.setRuleName(ruleName2);
-		rp2.add(pp2);
-
-		Redundancy redundancy1 = new Redundancy(pp1, pp2);
-		Redundancy redundancy2 = new Redundancy(r1, r2);
-
-		data.add(r1);
-		data.add(r2);
-		data.add(rp1);
-		data.add(rp2);
-		data.add(pp1);
-		data.add(pp2);
-		data.add(redundancy1);
-		data.add(redundancy2);
-
-		StatelessSessionResult sessionResult = session.executeWithResults(data);
-
-		Map<String, Set<Redundancy>> map = new HashMap<String, Set<Redundancy>>();
-
-		Iterator<Object> iter = sessionResult.iterateObjects();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof PartialRedundancy) {
-				PartialRedundancy pr = (PartialRedundancy) o;
-				AnalyticsComponent left = (AnalyticsComponent) pr.getLeft();
-				AnalyticsComponent right = (AnalyticsComponent) pr.getRight();
-
-				String key = left.getRuleName() + ":" + right.getRuleName();
-				if (map.containsKey(key)) {
-					Set<Redundancy> set = map.get(key);
-					set.add(pr.getRedundancy());
-				} else {
-					Set<Redundancy> set = new HashSet<Redundancy>();
-					set.add(pr.getRedundancy());
-					map.put(key, set);
-				}
-			}
-		}
-
-		assertTrue(RedundancyTestBase.mapContains(map, ruleName1 + ":"
-				+ ruleName2, redundancy1));
-
-		if (!map.isEmpty()) {
-			fail("More redundancies than was expected.");
-		}
-	}
-
-	public void testPatternRedundancyWithRestrictions() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Find redundant Patterns with restrictions"));
-
-		AnalyticsDataFactory.clearAnalyticsData();
-		Collection<? extends Object> data = getTestData(this.getClass()
-				.getResourceAsStream("PatternRedundancyTest.drl"));
-
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
-		session.setGlobal("result", result);
-
-		StatelessSessionResult sessionResult = session.executeWithResults(data);
-
-		Map<String, Set<String>> map = createRedundancyMap(sessionResult
-				.iterateObjects());
-
-		assertTrue(TestBase.mapContains(map,
-				"Pattern redundancy with restrictions 1a",
-				"Pattern redundancy with restrictions 1b")
-				^ TestBase.mapContains(map,
-						"Pattern redundancy with restrictions 1b",
-						"Pattern redundancy with restrictions 1a"));
-		assertTrue(TestBase.mapContains(map,
-				"Pattern redundancy with restrictions 2a",
-				"Pattern redundancy with restrictions 2b")
-				^ TestBase.mapContains(map,
-						"Pattern redundancy with restrictions 2b",
-						"Pattern redundancy with restrictions 2a"));
-		assertTrue(TestBase.mapContains(map,
-				"Pattern redundancy with restrictions 3a",
-				"Pattern redundancy with restrictions 3b")
-				^ TestBase.mapContains(map,
-						"Pattern redundancy with restrictions 3b",
-						"Pattern redundancy with restrictions 3a"));
-		assertTrue(TestBase.mapContains(map,
-				"Pattern redundancy with restrictions 4a",
-				"Pattern redundancy with restrictions 4b")
-				^ TestBase.mapContains(map,
-						"Pattern redundancy with restrictions 4b",
-						"Pattern redundancy with restrictions 4a"));
-
-		if (!map.isEmpty()) {
-			fail("More redundancies than was expected.");
-		}
-	}
-
-	public void testPatternRedundancyWithoutRestrictions() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
-
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Find redundant Patterns without restrictions"));
-
-		AnalyticsDataFactory.clearAnalyticsData();
-		Collection<? extends Object> data = getTestData(this.getClass()
-				.getResourceAsStream("PatternRedundancyTest.drl"));
-
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
-		session.setGlobal("result", result);
-
-		StatelessSessionResult sessionResult = session.executeWithResults(data);
-
-		Map<String, Set<String>> map = createRedundancyMap(sessionResult
-				.iterateObjects());
-
-		assertTrue(TestBase.mapContains(map,
-				"Pattern redundancy without restrictions 1a",
-				"Pattern redundancy without restrictions 1b")
-				^ TestBase.mapContains(map,
-						"Pattern redundancy without restrictions 1b",
-						"Pattern redundancy without restrictions 1a"));
-		assertTrue(TestBase.mapContains(map,
-				"Pattern redundancy without restrictions 2a",
-				"Pattern redundancy without restrictions 2b")
-				^ TestBase.mapContains(map,
-						"Pattern redundancy without restrictions 2b",
-						"Pattern redundancy without restrictions 2a"));
-		assertTrue(TestBase.mapContains(map,
-				"Pattern redundancy without restrictions 3a",
-				"Pattern redundancy without restrictions 3b")
-				^ TestBase.mapContains(map,
-						"Pattern redundancy without restrictions 3b",
-						"Pattern redundancy without restrictions 3a"));
-		assertTrue(TestBase.mapContains(map,
-				"Pattern redundancy without restrictions 4a",
-				"Pattern redundancy without restrictions 4b")
-				^ TestBase.mapContains(map,
-						"Pattern redundancy without restrictions 4b",
-						"Pattern redundancy without restrictions 4a"));
-
-		if (!map.isEmpty()) {
-			fail("More redundancies than was expected.");
-		}
-	}
-
 	public void testAnalyticsLiteralRestrictionRedundancy() throws Exception {
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Restrictions.drl"));

Added: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java	2007-12-09 10:11:22 UTC (rev 17126)
@@ -0,0 +1,170 @@
+package org.drools.analytics.redundancy;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.StatelessSession;
+import org.drools.StatelessSessionResult;
+import org.drools.analytics.TestBase;
+import org.drools.analytics.components.AnalyticsRule;
+import org.drools.analytics.components.TextConsequence;
+import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.analytics.report.components.Redundancy;
+import org.drools.base.RuleNameMatchesAgendaFilter;
+
+public class RedundantRulesAndPatternsTest extends RedundancyTestBase {
+
+	public void testRuleRedundancy() throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Rules.drl"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Find redundant Rules, weak redundancy"));
+
+		AnalyticsDataFactory.clearAnalyticsData();
+		Collection<Object> data = new ArrayList<Object>();
+
+		String ruleName1 = "Rule 1";
+		String ruleName2 = "Rule 2";
+
+		AnalyticsRule rule1 = new AnalyticsRule();
+		rule1.setRuleName(ruleName1);
+		AnalyticsRule rule2 = new AnalyticsRule();
+		rule2.setRuleName(ruleName2);
+
+		TextConsequence c1 = new TextConsequence();
+		c1.setRuleName(ruleName1);
+		TextConsequence c2 = new TextConsequence();
+		c2.setRuleName(ruleName2);
+
+		Redundancy r1 = new Redundancy(rule1, rule2);
+		Redundancy r2 = new Redundancy(c1, c2);
+
+		data.add(rule1);
+		data.add(rule2);
+		data.add(c1);
+		data.add(c2);
+		data.add(r1);
+		data.add(r2);
+
+		AnalyticsDataFactory.clearAnalyticsResult();
+		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		session.setGlobal("result", result);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<String, Set<String>> map = createRedundancyMap(sessionResult
+				.iterateObjects());
+
+		assertTrue(TestBase.mapContains(map, ruleName1, ruleName2)
+				^ TestBase.mapContains(map, ruleName2, ruleName1));
+
+		if (!map.isEmpty()) {
+			fail("More redundancies than was expected.");
+		}
+	}
+
+	public void testPatternRedundancyWithRestrictions() throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Patterns.drl"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Find redundant Patterns with restrictions"));
+
+		AnalyticsDataFactory.clearAnalyticsData();
+		Collection<? extends Object> data = getTestData(this.getClass()
+				.getResourceAsStream("PatternRedundancyTest.drl"));
+
+		AnalyticsDataFactory.clearAnalyticsResult();
+		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		session.setGlobal("result", result);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<String, Set<String>> map = createRedundancyMap(sessionResult
+				.iterateObjects());
+
+		assertTrue(TestBase.mapContains(map,
+				"Pattern redundancy with restrictions 1a",
+				"Pattern redundancy with restrictions 1b")
+				^ TestBase.mapContains(map,
+						"Pattern redundancy with restrictions 1b",
+						"Pattern redundancy with restrictions 1a"));
+		assertTrue(TestBase.mapContains(map,
+				"Pattern redundancy with restrictions 2a",
+				"Pattern redundancy with restrictions 2b")
+				^ TestBase.mapContains(map,
+						"Pattern redundancy with restrictions 2b",
+						"Pattern redundancy with restrictions 2a"));
+		assertTrue(TestBase.mapContains(map,
+				"Pattern redundancy with restrictions 3a",
+				"Pattern redundancy with restrictions 3b")
+				^ TestBase.mapContains(map,
+						"Pattern redundancy with restrictions 3b",
+						"Pattern redundancy with restrictions 3a"));
+		assertTrue(TestBase.mapContains(map,
+				"Pattern redundancy with restrictions 4a",
+				"Pattern redundancy with restrictions 4b")
+				^ TestBase.mapContains(map,
+						"Pattern redundancy with restrictions 4b",
+						"Pattern redundancy with restrictions 4a"));
+
+		if (!map.isEmpty()) {
+			fail("More redundancies than was expected.");
+		}
+	}
+
+	public void testPatternRedundancyWithoutRestrictions() throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Patterns.drl"));
+
+		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+				"Find redundant Patterns without restrictions"));
+
+		AnalyticsDataFactory.clearAnalyticsData();
+		Collection<? extends Object> data = getTestData(this.getClass()
+				.getResourceAsStream("PatternRedundancyTest.drl"));
+
+		AnalyticsDataFactory.clearAnalyticsResult();
+		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		session.setGlobal("result", result);
+
+		StatelessSessionResult sessionResult = session.executeWithResults(data);
+
+		Map<String, Set<String>> map = createRedundancyMap(sessionResult
+				.iterateObjects());
+
+		assertTrue(TestBase.mapContains(map,
+				"Pattern redundancy without restrictions 1a",
+				"Pattern redundancy without restrictions 1b")
+				^ TestBase.mapContains(map,
+						"Pattern redundancy without restrictions 1b",
+						"Pattern redundancy without restrictions 1a"));
+		assertTrue(TestBase.mapContains(map,
+				"Pattern redundancy without restrictions 2a",
+				"Pattern redundancy without restrictions 2b")
+				^ TestBase.mapContains(map,
+						"Pattern redundancy without restrictions 2b",
+						"Pattern redundancy without restrictions 2a"));
+		assertTrue(TestBase.mapContains(map,
+				"Pattern redundancy without restrictions 3a",
+				"Pattern redundancy without restrictions 3b")
+				^ TestBase.mapContains(map,
+						"Pattern redundancy without restrictions 3b",
+						"Pattern redundancy without restrictions 3a"));
+		assertTrue(TestBase.mapContains(map,
+				"Pattern redundancy without restrictions 4a",
+				"Pattern redundancy without restrictions 4b")
+				^ TestBase.mapContains(map,
+						"Pattern redundancy without restrictions 4b",
+						"Pattern redundancy without restrictions 4a"));
+
+		if (!map.isEmpty()) {
+			fail("More redundancies than was expected.");
+		}
+	}
+
+}

Modified: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -2,6 +2,7 @@
 
 import com.sample.DroolsTest.Message;
 
+
 rule "nro 1."
 	when
 		Foo( bar > 10 )
@@ -75,4 +76,4 @@
 		NumbersInPattern( x == 60 )
 	then
 		System.out.println( "Test" );
-end
\ No newline at end of file
+end

Modified: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc3.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc3.drl	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/Misc3.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -8,4 +8,20 @@
 		RedundancyPattern( a == 1, a == 1 )
 	then
 		// Something
-end
\ No newline at end of file
+end
+
+rule "Redundant rule 1, rules"
+	when
+		RedundancyPattern( a == 1 )
+		RedundancyPattern2( a == 1 )
+	then
+		System.println("TEST");
+end
+
+rule "Redundant rule 2, rules"
+	when
+		RedundancyPattern( a == 1 )
+		RedundancyPattern2( a == 1 )
+	then
+		System.println("TEST");
+end

Deleted: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RuleRedundancyTest.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RuleRedundancyTest.drl	2007-12-09 06:23:26 UTC (rev 17125)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RuleRedundancyTest.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -1,67 +0,0 @@
-package com.sample
-
-import com.sample.DroolsTest.Message;
-
-rule "Rule redundancy 1a"
-	when
-		    Foo1()
-	then
-		System.out.println( "Test" );
-end
-
-rule "Rule redundancy 1b"
-	when
-		    Foo1()
-	then
-		System.out.println( "Test" );
-end
-
-rule "Rule redundancy 2a"
-	salience 100
-	when
-		    Foo2()
-	then
-		System.out.println( "Test" );
-end
-
-rule "Rule redundancy 2b"
-	salience 100
-	when
-		    Foo2()
-	then
-		System.out.println( "Test" );
-end
-
-rule "Rule redundancy 3a"
-	agenda-group "group 1"
-	when
-		    Foo3()
-	then
-		System.out.println( "Test" );
-end
-
-rule "Rule redundancy 3b"
-	agenda-group "group 1"
-	when
-		    Foo3()
-	then
-		System.out.println( "Test" );
-end
-
-rule "Rule redundancy 4a"
-	salience 200
-	agenda-group "group 2"
-	when
-		    Foo4()
-	then
-		System.out.println( "Test" );
-end
-
-rule "Rule redundancy 4b"
-	salience 200
-	agenda-group "group 2"
-	when
-		    Foo4()
-	then
-		System.out.println( "Test" );
-end
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/ConsequenceRedundancyTest.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/ConsequenceRedundancyTest.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/ConsequenceRedundancyTest.drl	2007-12-09 10:11:22 UTC (rev 17126)
@@ -0,0 +1,79 @@
+package com.sample
+
+import com.sample.DroolsTest.Message;
+
+rule "Redundant consiquence 1a"
+	when
+		    $f :Foo1()
+	then
+		insert( new Test( Test.TestType.TESTING, $f, $f ) );
+end
+
+rule "Redundant consiquence 1b"
+	when
+		    $f :Foo1()
+	then
+		insert( new Test( Test.TestType.TESTING, $f, $f ) );
+end
+
+rule "Redundant consiquence 2a"
+	when
+		    $f :Foo1()
+	then
+		Collection c = new ArrayList();
+		c.add( "a" );
+		c.add( "b" );
+		c.add( "c" );
+		c.add( "d" );
+		c.add( "e" );
+		insert( new Test( c ) );
+end
+
+rule "Redundant consiquence 2b"
+	when
+		    $f :Foo1()
+	then
+		Collection c = new ArrayList();
+		c.add( "a" );
+		c.add( "b" );
+		c.add( "c" );
+		c.add( "d" );
+		c.add( "e" );
+		insert( new Test( c ) );
+end
+
+rule "Redundant consiquence 3a"
+	when
+		    $f :Foo1()
+	then
+		Collection c = new ArrayList();
+		c.add( "a" );
+		c.add( "b" );
+		
+		c.add( "c" );
+		
+		# comment
+		
+		c.add( "d" );
+		c.add( "e" );
+		c.add( "f" );
+		insert( new Test( c ) );
+end
+
+rule "Redundant consiquence 3b"
+	when
+		    $f :Foo1()
+	then
+		Collection c = new ArrayList();
+		c.add( "a" );
+		c.add( "b" );
+		
+		# comment
+		
+		c.add( "c" );
+		
+		c.add( "d" );
+		c.add( "e" );
+		c.add( "f" );
+		insert( new Test( c ) );
+end




More information about the jboss-svn-commits mailing list