[jboss-svn-commits] JBL Code SVN: r16789 - 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 Nov 25 04:59:53 EST 2007


Author: Rikkola
Date: 2007-11-25 04:59:53 -0500 (Sun, 25 Nov 2007)
New Revision: 16789

Added:
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java
   labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/RedundancyLiteralRestrictionTest.drl
   labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/SubsumptionVariableRestrictionTest.drl
Removed:
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consquence.java
   labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RedundancyLiteralRestrictionTest.drl
   labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/SubsumptionVariableRestrictionTest.drl
Modified:
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/PatternPossibility.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/RulePossibility.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/dao/AnalyticsData.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataMaps.java
   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/Redundancy.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/Possibilities.drl
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/NotesTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundancyTest.java
Log:
Redundancy test rules for pattern possibilities and redundant patterns.

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -15,7 +15,7 @@
 import org.drools.analytics.components.AnalyticsMethodAccessDescr;
 import org.drools.analytics.components.AnalyticsPredicateDescr;
 import org.drools.analytics.components.AnalyticsRule;
-import org.drools.analytics.components.Consquence;
+import org.drools.analytics.components.Consequence;
 import org.drools.analytics.components.Constraint;
 import org.drools.analytics.components.Field;
 import org.drools.analytics.components.LiteralRestriction;
@@ -400,7 +400,7 @@
 	 *            Consequence object.
 	 * @return Analytics object that implements the Consequence interface.
 	 */
-	private Consquence flattenConsequence(AnalyticsComponent parent, Object o) {
+	private Consequence flattenConsequence(AnalyticsComponent parent, Object o) {
 		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		TextConsequence consequence = new TextConsequence();

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/AnalyticsRule.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -12,7 +12,7 @@
 
 	private String ruleSalience;
 	private String ruleAgendaGroup;
-	private Consquence consequence;
+	private Consequence consequence;
 	private int lineNumber;
 
 	private int packageId;
@@ -47,11 +47,11 @@
 		this.ruleSalience = salience;
 	}
 
-	public Consquence getConsequence() {
+	public Consequence getConsequence() {
 		return consequence;
 	}
 
-	public void setConsequence(Consquence consequence) {
+	public void setConsequence(Consequence consequence) {
 		this.consequence = consequence;
 	}
 

Copied: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java (from rev 16750, labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consquence.java)
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consequence.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -0,0 +1,17 @@
+package org.drools.analytics.components;
+
+public interface Consequence {
+
+	public static enum ConsequenceType {
+		TEXT
+	}
+
+	public int getId();
+
+	public ConsequenceType getConsequenceType();
+	
+	public int getRuleId();
+
+	public String getRuleName();
+	
+}

Deleted: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consquence.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consquence.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/Consquence.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -1,17 +0,0 @@
-package org.drools.analytics.components;
-
-public interface Consquence {
-
-	public static enum ConsequenceType {
-		TEXT
-	}
-
-	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/PatternPossibility.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/PatternPossibility.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/PatternPossibility.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -32,7 +32,7 @@
 	}
 
 	public CauseType getCauseType() {
-		return Cause.CauseType.POSSIBILITY;
+		return Cause.CauseType.PATTERN_POSSIBILITY;
 	}
 
 	public Set<Cause> getItems() {

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/RulePossibility.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/RulePossibility.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/RulePossibility.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -32,7 +32,7 @@
 	}
 
 	public CauseType getCauseType() {
-		return Cause.CauseType.POSSIBILITY;
+		return Cause.CauseType.RULE_POSSIBILITY;
 	}
 
 	public Set<Cause> getItems() {

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-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/components/TextConsequence.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -1,6 +1,6 @@
 package org.drools.analytics.components;
 
-public class TextConsequence extends AnalyticsComponent implements Consquence {
+public class TextConsequence extends AnalyticsComponent implements Consequence {
 
 	private static int index = 0;
 	private String text;

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsData.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsData.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsData.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -6,7 +6,7 @@
 import org.drools.analytics.components.AnalyticsEvalDescr;
 import org.drools.analytics.components.AnalyticsPredicateDescr;
 import org.drools.analytics.components.AnalyticsRule;
-import org.drools.analytics.components.Consquence;
+import org.drools.analytics.components.Consequence;
 import org.drools.analytics.components.Constraint;
 import org.drools.analytics.components.Field;
 import org.drools.analytics.components.FieldClassLink;
@@ -24,7 +24,7 @@
  */
 public interface AnalyticsData {
 
-	public void save(Consquence consequence);
+	public void save(Consequence consequence);
 
 	public void save(AnalyticsClass clazz);
 

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataMaps.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataMaps.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataMaps.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -12,7 +12,7 @@
 import org.drools.analytics.components.AnalyticsEvalDescr;
 import org.drools.analytics.components.AnalyticsPredicateDescr;
 import org.drools.analytics.components.AnalyticsRule;
-import org.drools.analytics.components.Consquence;
+import org.drools.analytics.components.Consequence;
 import org.drools.analytics.components.Constraint;
 import org.drools.analytics.components.Field;
 import org.drools.analytics.components.FieldClassLink;
@@ -50,7 +50,7 @@
 	private Map<Integer, OperatorDescr> operatorsById = new TreeMap<Integer, OperatorDescr>();
 	private Map<Integer, AnalyticsEvalDescr> evalsById = new TreeMap<Integer, AnalyticsEvalDescr>();
 	private Map<Integer, AnalyticsPredicateDescr> predicatesById = new TreeMap<Integer, AnalyticsPredicateDescr>();
-	private Map<Integer, Consquence> consiquencesById = new TreeMap<Integer, Consquence>();
+	private Map<Integer, Consequence> consiquencesById = new TreeMap<Integer, Consequence>();
 
 	private Map<String, Variable> variablesByRuleAndVariableName = new TreeMap<String, Variable>();
 
@@ -235,7 +235,7 @@
 		predicatesById.put(predicate.getId(), predicate);
 	}
 
-	public void save(Consquence consequence) {
+	public void save(Consequence consequence) {
 		consiquencesById.put(consequence.getId(), consequence);
 	}
 }

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-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Cause.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -11,7 +11,8 @@
 		GAP,
 		PATTERN,
 		RESTRICTION,
-		POSSIBILITY,
+		PATTERN_POSSIBILITY,
+		RULE_POSSIBILITY,
 		RANGE_CHECK_CAUSE, 
 		REDUNDANCY, 
 		EVAL,

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Redundancy.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Redundancy.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/Redundancy.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -18,8 +18,8 @@
 	private static int index = 0;
 
 	private int id = index++;
-	private RedundancyType type = RedundancyType.WEAK; // By default the
-	// redundancy is weak.
+	// By default the redundancy is weak.
+	private RedundancyType type = RedundancyType.WEAK;
 	private Cause left;
 	private Cause right;
 

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-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Notes.drl	2007-11-25 09:59:53 UTC (rev 16789)
@@ -11,17 +11,22 @@
 import java.util.ArrayList;
 
 import org.drools.analytics.components.PatternPossibility;
+import org.drools.analytics.components.RulePossibility;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.Redundancy;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.Cause;
+import org.drools.analytics.report.components.Cause.CauseType;
 
 
 
 rule "Find redundant restrictions from pattern possibilities"
 	salience -100
 	when
-		$r :Redundancy()
+		$r :Redundancy(
+			left.causeType == Cause.CauseType.RESTRICTION
+		)
+		
 		PatternPossibility(
 			items contains $r.left, 
 			items contains $r.right 
@@ -36,3 +41,24 @@
 						$r, "Same restriction exists twice.", causes ) );
 end
 
+rule "Find redundant pattern possibilities from rule possibilities"
+	salience -100
+	when
+		$r :Redundancy(
+			left.causeType == Cause.CauseType.PATTERN_POSSIBILITY
+		)
+		
+		RulePossibility(
+			items contains $r.left, 
+			items contains $r.right 
+		)
+	then
+		Collection<Cause> causes = new ArrayList<Cause>();
+		causes.add( $r.getLeft() );
+		causes.add( $r.getRight() );
+		
+		result.save(new AnalyticsMessage( 
+						AnalyticsMessage.Severity.NOTE, AnalyticsMessage.MessageType.REDUNDANCY, 
+						$r, "Two pattern possibilities with redundant restrictions exists twice in the same rule.", causes ) );
+end
+

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-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Possibilities.drl	2007-11-25 09:59:53 UTC (rev 16789)
@@ -11,48 +11,69 @@
 
 import java.util.ArrayList;
 
-rule "Find part of redundant PatternPossibility combination"
+#
+# Fires when two PatternPossibilities are redundant.
+# Marks these possibilities as redundant.
+# 
+# Example 1: Pattern1( a == b) and Pattern1( a == b)
+# Example 2: Pattern1( a == b || a == c) and Pattern1( a == b)
+rule "Find pattern possibility redundancy"
 	when
-		$patternRedundancy :Redundancy( 
+		$ppr :Redundancy( 
 			type == Redundancy.RedundancyType.WEAK,
-			causeType == Cause.CauseType.PATTERN 
+			left.causeType == Cause.CauseType.PATTERN 
 		)
+
+		# Find two PatternPossibilities.
+		$pp1 :PatternPossibility(
+			eval( id == $ppr.getLeft().getId() )
+		)
+
+		$pp2 :PatternPossibility(
+			eval( id == $ppr.getRight().getId() )
+		)
 		
-		$r1 :Restriction( eval( patternId == $patternRedundancy.getLeft().getId() ) )
-		$r2 :Restriction( eval( patternId == $patternRedundancy.getRight().getId() ) )
-
-		$restrictionRedundancy :Redundancy( 
-			(
-				left == $r1 
+		# For every restriction in $pp1 there is a redundancy to $pp2. 
+		forall(
+			$r :Restriction(
+				patternId == $pp1.patternId,
+				this memberOf $pp1.items
+			)
+			
+			Redundancy(
+				(
+					left == $r
 					&&
-				right == $r2
-			) || (
-				left == $r2 
+					right memberOf $pp2.items
+				) || (
+					left memberOf $pp2.items
 					&&
-				right == $r1
+					right == $r
+				)
 			)
 		)
 		
-		# Find two PatternPossibilities.
-		$pp1 :PatternPossibility( 
-			eval( patternId == $patternRedundancy.getLeft().getId() ),
-			items contains $r1 
+		# For every restriction in $pp2 there is a redundancy to $pp1. 
+		forall(
+			$r :Restriction(
+				patternId == $pp2.patternId,
+				this memberOf $pp2.items
+			)
+			
+			Redundancy(
+				(
+					left == $r
+					&&
+					right memberOf $pp1.items
+				) || (
+					left memberOf $pp1.items
+					&&
+					right == $r
+				)
+			)
 		)
-		$pp2 :PatternPossibility( 
-			eval( patternId == $patternRedundancy.getRight().getId() ),
-			items contains $r2 
-		)
-	
-		not PartialRedundancy(
-			left == $pp1,
-			right == $pp2
-		)
-		not PartialRedundancy(
-			left == $pp2, 
-			right == $pp1 
-		)
 	then
-		insert( new PartialRedundancy( $pp1, $pp2, $restrictionRedundancy ) );
+		insert( new Redundancy( Redundancy.RedundancyType.STRONG, $pp1, $pp2 ) );
 end
 
 /*

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-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/redundancy/Restrictions.drl	2007-11-25 09:59:53 UTC (rev 16789)
@@ -23,14 +23,6 @@
 			left == $right, 
 			right == $left 
 		)
-		
-		# 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
-		#)
 	then
 		insert( new Redundancy( Redundancy.RedundancyType.STRONG, $left, $right ) );
 end

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/NotesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/NotesTest.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/NotesTest.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -7,6 +7,7 @@
 import org.drools.analytics.TestBase;
 import org.drools.analytics.components.LiteralRestriction;
 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.AnalyticsMessage;
@@ -56,4 +57,46 @@
 		AnalyticsMessageBase note = notes.iterator().next();
 		assertTrue(note.getFaulty().equals(redundancy));
 	}
+
+	public void testRedundantPatternPossibilitiesInRulePossibilities()
+			throws Exception {
+		StatelessSession session = getStatelessSession(this.getClass()
+				.getResourceAsStream("Notes.drl"));
+
+		session
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Find redundant pattern possibilities from rule possibilities"));
+
+		Collection<Object> objects = new ArrayList<Object>();
+		PatternPossibility left = new PatternPossibility();
+
+		PatternPossibility right = new PatternPossibility();
+
+		Redundancy redundancy = new Redundancy(
+				Redundancy.RedundancyType.STRONG, left, right);
+
+		RulePossibility possibility = new RulePossibility();
+		possibility.add(left);
+		possibility.add(right);
+
+		objects.add(left);
+		objects.add(right);
+		objects.add(redundancy);
+		objects.add(possibility);
+
+		AnalyticsDataFactory.clearAnalyticsResult();
+		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		session.setGlobal("result", result);
+
+		session.executeWithResults(objects);
+
+		Collection<AnalyticsMessageBase> notes = result
+				.getBySeverity(AnalyticsMessage.Severity.NOTE);
+
+		// Has at least one item.
+		assertEquals(1, notes.size());
+
+		AnalyticsMessageBase note = notes.iterator().next();
+		assertTrue(note.getFaulty().equals(redundancy));
+	}
 }

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundancyTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundancyTest.java	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundancyTest.java	2007-11-25 09:59:53 UTC (rev 16789)
@@ -156,15 +156,17 @@
 		}
 	}
 
-	public void fixmetestPartOfPatternPossibilityRedundancy() throws Exception {
+	public void testPatternPossibilityRedundancy() throws Exception {
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Possibilities.drl"));
 
+		AnalyticsDataFactory.clearAnalyticsData();
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Find part of redundant PatternPossibility combination"));
+				"Find pattern possibility redundancy"));
 
 		Collection<Object> data = new ArrayList<Object>();
 
+		AnalyticsDataFactory.clearAnalyticsResult();
 		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
@@ -205,31 +207,12 @@
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);
 
-		Map<String, Set<Redundancy>> map = new HashMap<String, Set<Redundancy>>();
+		Map<String, Set<String>> map = createRedundancyMap(sessionResult
+				.iterateObjects());
 
-		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();
+		assertTrue(TestBase.mapContains(map, ruleName1, ruleName2)
+				^ TestBase.mapContains(map, ruleName2, ruleName1));
 
-				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(RedundancyTest.mapContains(map, ruleName1 + ":" + ruleName2,
-				r1));
-
 		if (!map.isEmpty()) {
 			fail("More redundancies than was expected.");
 		}
@@ -309,17 +292,18 @@
 		}
 	}
 
-	public void fixmetestAnalyticsLiteralRestrictionRedundancy()
-			throws Exception {
+	public void testAnalyticsLiteralRestrictionRedundancy() throws Exception {
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Restrictions.drl"));
 
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant LiteralRestriction"));
 
+		AnalyticsDataFactory.clearAnalyticsData();
 		Collection<? extends Object> data = getTestData(this.getClass()
 				.getResourceAsStream("RedundancyLiteralRestrictionTest.drl"));
 
+		AnalyticsDataFactory.clearAnalyticsResult();
 		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
@@ -346,17 +330,18 @@
 		}
 	}
 
-	public void fixmetestAnalyticsVariableRestrictionRedundancy()
-			throws Exception {
+	public void testAnalyticsVariableRestrictionRedundancy() throws Exception {
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Restrictions.drl"));
 
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant VariableRestriction"));
 
+		AnalyticsDataFactory.clearAnalyticsData();
 		Collection<? extends Object> data = getTestData(this.getClass()
 				.getResourceAsStream("SubsumptionVariableRestrictionTest.drl"));
 
+		AnalyticsDataFactory.clearAnalyticsResult();
 		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
@@ -365,8 +350,8 @@
 		Map<String, Set<String>> map = createRedundancyMap(sessionResult
 				.iterateObjects());
 
-		assertTrue(TestBase.mapContains(map, "Redundant 1a", "Redundant 1b"));
-		assertTrue(TestBase.mapContains(map, "Redundant 1b", "Redundant 1a"));
+		assertTrue(TestBase.mapContains(map, "Redundant 1a", "Redundant 1b")
+				^ TestBase.mapContains(map, "Redundant 1b", "Redundant 1a"));
 		assertTrue(TestBase.mapContains(map, "Redundant 2a", "Redundant 2a"));
 
 		if (!map.isEmpty()) {

Deleted: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RedundancyLiteralRestrictionTest.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RedundancyLiteralRestrictionTest.drl	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RedundancyLiteralRestrictionTest.drl	2007-11-25 09:59:53 UTC (rev 16789)
@@ -1,87 +0,0 @@
-package com.sample
-
-import com.sample.DroolsTest.Message;
-
-rule "Redundant 1a"
-	when
-		    Foo1( bar == "baz" )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 1b"
-	when
-		    Foo1( bar == "baz" )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 2a"
-	when
-		    Foo2( bar == 123 )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 2b"
-	when
-		    Foo2( bar == 123 )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 3a"
-	when
-		    Foo3( bar == "27-Oct-2007" )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 3b"
-	when
-		    Foo3( bar == "27-Oct-2007" )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 4a"
-	when
-		    Foo4( bar != "baz" )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 4b"
-	when
-		    Foo4( bar != "baz" )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 5a"
-	when
-		    Foo5( bar > 123 )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 5b"
-	when
-		    Foo5( bar > 123 )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 6a"
-	when
-		    Foo6( bar < "27-Oct-2007" )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 6b"
-	when
-		    Foo6( bar < "27-Oct-2007" )
-	then
-		System.out.println( "Test" );
-end
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/SubsumptionVariableRestrictionTest.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/SubsumptionVariableRestrictionTest.drl	2007-11-25 06:20:56 UTC (rev 16788)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/SubsumptionVariableRestrictionTest.drl	2007-11-25 09:59:53 UTC (rev 16789)
@@ -1,37 +0,0 @@
-package com.sample
-
-import com.sample.DroolsTest.Message;
-
-rule "Redundant 1a"
-	when
-		    $f :Foo1()
-		    Bar1( foo == $f )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 1b"
-	when
-		    $f :Foo1()
-		    Bar1( foo == $f )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Redundant 2a"
-	when
-		    $f :Foo2()
-		    Bar2( foo == $f && xyz == 123 )
-		    or 
-		    Bar2( foo == $f && xyz == 321 )
-	then
-		System.out.println( "Test" );
-end
-
-rule "Not Redundant 1a"
-	when
-		    $f :Foo1a()
-		    Bar1a( foo == $f && xyz == 123 )
-	then
-		System.out.println( "Test" );
-end

Copied: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/RedundancyLiteralRestrictionTest.drl (from rev 16750, labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/RedundancyLiteralRestrictionTest.drl)
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/RedundancyLiteralRestrictionTest.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/RedundancyLiteralRestrictionTest.drl	2007-11-25 09:59:53 UTC (rev 16789)
@@ -0,0 +1,87 @@
+package com.sample
+
+import com.sample.DroolsTest.Message;
+
+rule "Redundant 1a"
+	when
+		    Foo1( bar == "baz" )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 1b"
+	when
+		    Foo1( bar == "baz" )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 2a"
+	when
+		    Foo2( bar == 123 )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 2b"
+	when
+		    Foo2( bar == 123 )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 3a"
+	when
+		    Foo3( bar == "27-Oct-2007" )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 3b"
+	when
+		    Foo3( bar == "27-Oct-2007" )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 4a"
+	when
+		    Foo4( bar != "baz" )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 4b"
+	when
+		    Foo4( bar != "baz" )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 5a"
+	when
+		    Foo5( bar > 123 )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 5b"
+	when
+		    Foo5( bar > 123 )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 6a"
+	when
+		    Foo6( bar < "27-Oct-2007" )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 6b"
+	when
+		    Foo6( bar < "27-Oct-2007" )
+	then
+		System.out.println( "Test" );
+end
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/SubsumptionVariableRestrictionTest.drl (from rev 16750, labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/SubsumptionVariableRestrictionTest.drl)
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/SubsumptionVariableRestrictionTest.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/resources/org/drools/analytics/redundancy/SubsumptionVariableRestrictionTest.drl	2007-11-25 09:59:53 UTC (rev 16789)
@@ -0,0 +1,37 @@
+package com.sample
+
+import com.sample.DroolsTest.Message;
+
+rule "Redundant 1a"
+	when
+		    $f :Foo1()
+		    Bar1( foo == $f )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 1b"
+	when
+		    $f :Foo1()
+		    Bar1( foo == $f )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Redundant 2a"
+	when
+		    $f :Foo2()
+		    Bar2( foo == $f && xyz == 123 )
+		    or 
+		    Bar2( foo == $f && xyz == 321 )
+	then
+		System.out.println( "Test" );
+end
+
+rule "Not Redundant 1a"
+	when
+		    $f :Foo1a()
+		    Bar1a( foo == $f && xyz == 123 )
+	then
+		System.out.println( "Test" );
+end




More information about the jboss-svn-commits mailing list