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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Dec 12 04:21:02 EST 2007


Author: Rikkola
Date: 2007-12-12 04:21:01 -0500 (Wed, 12 Dec 2007)
New Revision: 17195

Added:
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/FindMissingNumber.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResultFactory.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/FindMissingNumberTest.java
Removed:
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/accumulateFunction/
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataFactory.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/accumulateFunction/
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/PackageDescrFlattener.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PatternSolver.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleSolver.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Solvers.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResult.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResultNormal.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/ReportModeller.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/MissingRange.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/AnalyticsMessagesVisitor.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ComponentsReportModeller.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ComponentsReportVisitor.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/MissingRangesReportVisitor.java
   labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ReportModeller.java
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Patterns.drl
   labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Variables.drl
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/ConsequenceTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckCleanTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckDatesTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckDoublesTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckIntegersTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/TestBase.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/incoherence/IncoherentPatternsTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/incoherence/IncoherentRestrictionsTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/missingEquality/MissingEqualityTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/optimisation/PatternOrderTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/optimisation/RestrictionOrderTest.java
   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/RedundantConsequencesTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantPossibilitiesTest.java
   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/RedundantRulesAndPatternsTest.java
   labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/WarningsTest.java
Log:
Changed some classes from public to package private. Changed static result classes to non static classes.

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-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Analyzer.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -5,9 +5,8 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.WorkingMemory;
-import org.drools.analytics.dao.AnalyticsData;
-import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.report.ReportModeller;
 import org.drools.analytics.report.html.ComponentsReportModeller;
 import org.drools.lang.descr.PackageDescr;
@@ -19,12 +18,16 @@
  */
 public class Analyzer {
 
+	private AnalyticsResult result = AnalyticsResultFactory
+			.createAnalyticsResult();
+
 	public void addPackageDescr(PackageDescr descr) {
 		try {
 
 			PackageDescrFlattener ruleFlattener = new PackageDescrFlattener();
 
-			ruleFlattener.insert(descr);
+			ruleFlattener.addPackageDescrToData(descr, result
+					.getAnalyticsData());
 
 		} catch (Throwable t) {
 			t.printStackTrace();
@@ -33,18 +36,13 @@
 
 	public void fireAnalysis() {
 		try {
-			AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
-			AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 
-			System.setProperty("drools.accumulate.function.validatePattern",
-					"org.drools.analytics.accumulateFunction.ValidatePattern");
-
 			// load up the rule base
 			RuleBase ruleBase = createRuleBase();
 
 			WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
-			Collection<? extends Object> c = data.getAll();
+			Collection<? extends Object> c = result.getAnalyticsData().getAll();
 
 			for (Object o : c) {
 				workingMemory.insert(o);
@@ -65,7 +63,7 @@
 	 * @return Analysis results as plain text.
 	 */
 	public String getResultAsPlainText() {
-		return ReportModeller.writePlainText();
+		return ReportModeller.writePlainText(result);
 	}
 
 	/**
@@ -74,7 +72,7 @@
 	 * @return Analysis results as XML
 	 */
 	public String getResultAsXML() {
-		return ReportModeller.writeXML();
+		return ReportModeller.writeXML(result);
 	}
 
 	/**
@@ -83,7 +81,7 @@
 	 * @return Analysis results as HTML
 	 */
 	public void writeComponentsHTML(String path) {
-		ComponentsReportModeller.writeHTML(path);
+		ComponentsReportModeller.writeHTML(path, result);
 	}
 
 	/**
@@ -92,7 +90,6 @@
 	 * @return Analysis result
 	 */
 	public AnalyticsResult getResult() {
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		return result;
 	}
 

Copied: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/FindMissingNumber.java (from rev 17194, labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/accumulateFunction/FindMissingNumber.java)
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/FindMissingNumber.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/FindMissingNumber.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -0,0 +1,160 @@
+package org.drools.analytics;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.drools.analytics.components.Field;
+import org.drools.analytics.components.LiteralRestriction;
+
+public class FindMissingNumber {
+
+	public static final int MIN_NUMBER_OF_RESTRICTIONS = 4;
+
+	/**
+	 * Test if the values in constraints are in pattern.
+	 * 
+	 * @param restrictions
+	 * @return false if can't find a pattern or constraints list is null or size
+	 *         of the list is under 3.
+	 */
+	public static Number testForPattern(
+			Collection<LiteralRestriction> restrictions) {
+
+		if (restrictions == null
+				|| restrictions.size() < MIN_NUMBER_OF_RESTRICTIONS) {
+			return null;
+		}
+
+		BigDecimal[] numbers = new BigDecimal[restrictions.size()];
+
+		int index = 0;
+		for (LiteralRestriction restriction : restrictions) {
+			if (restriction.getValueType() == Field.FieldType.DOUBLE) {
+				numbers[index++] = BigDecimal.valueOf(restriction
+						.getDoubleValue());
+			} else if (restriction.getValueType() == Field.FieldType.INT) {
+				numbers[index++] = BigDecimal
+						.valueOf(restriction.getIntValue());
+			}
+		}
+
+		Arrays.sort(numbers);
+
+		Number missingNumber = findSumPattern(numbers);
+		if (missingNumber != null) {
+			return missingNumber;
+		} else {
+			missingNumber = findMultiplicationPattern(numbers);
+			if (missingNumber != null) {
+				return missingNumber;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * Looks for sum pattern, on each step x is added or removed. -x is the same
+	 * as +(-x) so this works for both.
+	 * 
+	 * @param numbers
+	 * @return true if pattern is found.
+	 */
+	protected static Number findSumPattern(BigDecimal[] numbers) {
+		if (numbers == null || numbers.length < MIN_NUMBER_OF_RESTRICTIONS) {
+			return null;
+		}
+		BigDecimal gap = null;
+		Number missingNumber = null;
+
+		BigDecimal a = numbers[0];
+		BigDecimal b = numbers[1];
+		BigDecimal c = numbers[2];
+		BigDecimal d = numbers[3];
+
+		// Uses first four numbers to check if there is a pattern and to
+		// calculate the gap between them. One missing value is allowed.
+		if (b.subtract(a).equals(c.subtract(b))) {
+			gap = b.subtract(a);
+		} else if (c.subtract(b).equals(d.subtract(c))) {
+			gap = c.subtract(b);
+		} else if (b.subtract(a).equals(d.subtract(c))) {
+			gap = b.subtract(a);
+		} else {
+			// No pattern found.
+			return null;
+		}
+
+		for (int i = 0; i < (numbers.length - 1); i++) {
+			BigDecimal first = numbers[i];
+			BigDecimal second = numbers[i + 1];
+
+			if (missingNumber == null && !second.subtract(first).equals(gap)) {
+				missingNumber = second.subtract(gap);
+			} else if (!second.subtract(first).equals(gap)
+					&& missingNumber != null) {
+				// Happends if there is no pattern found, or more than 1
+				// missing number.
+				return null;
+			}
+		}
+
+		return missingNumber;
+	}
+
+	/**
+	 * Looks for multiplication pattern, on each step x multiplied or divided.
+	 * *x is the same as *(1/x) so this works for both.
+	 * 
+	 * @param numbers
+	 * @return true if pattern is found.
+	 */
+	protected static Number findMultiplicationPattern(BigDecimal[] numbers) {
+		if (numbers == null || numbers.length < MIN_NUMBER_OF_RESTRICTIONS) {
+			return null;
+		}
+		try {
+
+			BigDecimal gap = null;
+			Number missingNumber = null;
+
+			BigDecimal a = numbers[0];
+			BigDecimal b = numbers[1];
+			BigDecimal c = numbers[2];
+			BigDecimal d = numbers[3];
+
+			// Uses first four numbers to check if there is a pattern and to
+			// calculate the gap between them. One missing value is allowed.
+			if (b.divide(a).equals(c.divide(b))) {
+				gap = b.divide(a);
+			} else if (c.divide(b).equals(d.divide(c))) {
+				gap = c.divide(b);
+			} else if (b.divide(a).equals(d.divide(c))) {
+				gap = b.divide(a);
+			} else {
+				// No pattern found.
+				return null;
+			}
+
+			BigDecimal first = null;
+			BigDecimal second = null;
+			for (int i = 0; i < (numbers.length - 1); i++) {
+				first = numbers[i];
+				second = numbers[i + 1];
+
+				if (missingNumber == null && !second.divide(first).equals(gap)) {
+					missingNumber = first.multiply(gap);
+				} else if (!second.divide(first).equals(gap)
+						&& missingNumber != null) {
+					// Happends if there is no pattern found, or more than 1
+					// missing number.
+					return null;
+				}
+			}
+			return missingNumber;
+		} catch (Exception e) {
+			return null;
+		}
+	}
+}

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-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -30,7 +30,6 @@
 import org.drools.analytics.components.Variable;
 import org.drools.analytics.components.VariableRestriction;
 import org.drools.analytics.dao.AnalyticsData;
-import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.base.evaluators.Operator;
 import org.drools.lang.descr.AccessorDescr;
 import org.drools.lang.descr.AccumulateDescr;
@@ -65,10 +64,12 @@
  * @author Toni Rikkola
  * 
  */
-public class PackageDescrFlattener {
+class PackageDescrFlattener {
 
 	private Solvers solvers = new Solvers();
 
+	private AnalyticsData data;
+
 	private RulePackage currentPackage = null;
 	private AnalyticsRule currentRule = null;
 	private Pattern currentPattern = null;
@@ -76,8 +77,19 @@
 	private AnalyticsClass currentClass = null;
 	private Field currentField = null;
 
-	public void insert(PackageDescr packageDescr) {
+	/**
+	 * Adds packageDescr to given AnalyticsData object
+	 * 
+	 * @param packageDescr
+	 *            PackageDescr that will be flattened.
+	 * @param data
+	 *            AnalyticsData where the flattened objects are added.
+	 */
+	public void addPackageDescrToData(PackageDescr packageDescr,
+			AnalyticsData data) {
 
+		this.data = data;
+
 		flatten(packageDescr);
 
 		formPossibilities();
@@ -223,7 +235,6 @@
 	 */
 	private AnalyticsPredicateDescr flatten(PredicateDescr descr,
 			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		AnalyticsPredicateDescr predicate = new AnalyticsPredicateDescr();
 		predicate.setRuleName(currentRule.getRuleName());
@@ -246,7 +257,6 @@
 	 */
 	private AnalyticsEvalDescr flatten(EvalDescr descr,
 			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		AnalyticsEvalDescr eval = new AnalyticsEvalDescr();
 		eval.setRuleId(currentRule.getId());
@@ -355,7 +365,6 @@
 	}
 
 	private void flatten(PackageDescr descr) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 		RulePackage rulePackage = data.getRulePackageByName(descr.getName());
 
 		if (rulePackage == null) {
@@ -371,7 +380,6 @@
 	}
 
 	private void flatten(RuleDescr descr, AnalyticsComponent parent) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		AnalyticsRule rule = new AnalyticsRule();
 		currentRule = rule;
@@ -401,7 +409,6 @@
 	 * @return Analytics object that implements the Consequence interface.
 	 */
 	private Consequence flattenConsequence(AnalyticsComponent parent, Object o) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		TextConsequence consequence = new TextConsequence();
 
@@ -441,7 +448,6 @@
 
 	private void flatten(OrDescr descr, AnalyticsComponent parent,
 			int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 		OperatorDescr operatorDescr = new OperatorDescr(OperatorDescr.Type.OR);
 		operatorDescr.setOrderNumber(orderNumber);
 		operatorDescr.setParent(parent);
@@ -455,7 +461,6 @@
 
 	private void flatten(AndDescr descr, AnalyticsComponent parent,
 			int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 		OperatorDescr operatorDescr = new OperatorDescr(OperatorDescr.Type.AND);
 		operatorDescr.setOrderNumber(orderNumber);
 		operatorDescr.setParent(parent);
@@ -469,7 +474,6 @@
 
 	private int flatten(PatternDescr descr, AnalyticsComponent parent,
 			int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		AnalyticsClass clazz = data.getClassByPackageAndName(descr
 				.getObjectType());
@@ -525,7 +529,6 @@
 
 	private void flatten(FieldConstraintDescr descr, AnalyticsComponent parent,
 			int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		Field field = data.getFieldByClassAndFieldName(currentClass.getName(),
 				descr.getFieldName());
@@ -567,7 +570,6 @@
 	 */
 	private void flatten(FieldBindingDescr descr, AnalyticsComponent parent,
 			int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		Variable variable = new Variable();
 		variable.setRuleId(currentRule.getId());
@@ -591,7 +593,6 @@
 	 */
 	private void flatten(VariableRestrictionDescr descr,
 			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		Variable variable = data.getVariableByRuleAndVariableName(currentRule
 				.getRuleName(), descr.getIdentifier());
@@ -603,8 +604,8 @@
 		restriction.setPatternIsNot(currentPattern.isPatternNot());
 		restriction.setConstraintId(currentConstraint.getId());
 		restriction.setFieldId(currentConstraint.getFieldId());
-		restriction.setOperator(Operator
-				.determineOperator(descr.getEvaluator(), descr.isNegated()));
+		restriction.setOperator(Operator.determineOperator(
+				descr.getEvaluator(), descr.isNegated()));
 		restriction.setVariable(variable);
 		restriction.setOrderNumber(orderNumber);
 		restriction.setParent(parent);
@@ -623,7 +624,6 @@
 	 */
 	private void flatten(ReturnValueRestrictionDescr descr,
 			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		ReturnValueRestriction restriction = new ReturnValueRestriction();
 
@@ -633,8 +633,8 @@
 		restriction.setPatternIsNot(currentPattern.isPatternNot());
 		restriction.setConstraintId(currentConstraint.getId());
 		restriction.setFieldId(currentConstraint.getFieldId());
-		restriction.setOperator(Operator
-				.determineOperator(descr.getEvaluator(), descr.isNegated()));
+		restriction.setOperator(Operator.determineOperator(
+				descr.getEvaluator(), descr.isNegated()));
 		restriction.setClassMethodName(descr.getClassMethodName());
 		restriction.setContent(descr.getContent());
 		restriction.setDeclarations(descr.getDeclarations());
@@ -653,7 +653,6 @@
 	 */
 	private void flatten(LiteralRestrictionDescr descr,
 			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		LiteralRestriction restriction = new LiteralRestriction();
 
@@ -664,8 +663,8 @@
 		restriction.setPatternIsNot(currentPattern.isPatternNot());
 		restriction.setConstraintId(currentConstraint.getId());
 		restriction.setFieldId(currentConstraint.getFieldId());
-		restriction.setOperator(Operator
-				.determineOperator(descr.getEvaluator(), descr.isNegated()));
+		restriction.setOperator(Operator.determineOperator(
+				descr.getEvaluator(), descr.isNegated()));
 		restriction.setValue(descr.getText());
 		restriction.setOrderNumber(orderNumber);
 		restriction.setParent(parent);
@@ -684,7 +683,6 @@
 	 */
 	private void flatten(QualifiedIdentifierRestrictionDescr descr,
 			AnalyticsComponent parent, int orderNumber) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		String text = descr.getText();
 		Variable variable = data.getVariableByRuleAndVariableName(currentRule
@@ -697,8 +695,8 @@
 		restriction.setPatternIsNot(currentPattern.isPatternNot());
 		restriction.setConstraintId(currentConstraint.getId());
 		restriction.setFieldId(currentConstraint.getFieldId());
-		restriction.setOperator(Operator
-				.determineOperator(descr.getEvaluator(), descr.isNegated()));
+		restriction.setOperator(Operator.determineOperator(
+				descr.getEvaluator(), descr.isNegated()));
 		restriction.setVariableId(variable.getId());
 		restriction.setVariableName(text.substring(0, text.indexOf(".")));
 		restriction.setVariablePath(text.substring(text.indexOf(".")));
@@ -727,7 +725,6 @@
 	}
 
 	private void formPossibilities() {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
 
 		for (PatternPossibility possibility : solvers.getPatternPossibilities()) {
 			data.save(possibility);

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PatternSolver.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PatternSolver.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PatternSolver.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -8,7 +8,7 @@
  * 
  * @author Toni Rikkola
  */
-public class PatternSolver extends Solver {
+class PatternSolver extends Solver {
 
 	private Pattern pattern;
 

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleSolver.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleSolver.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/RuleSolver.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -8,7 +8,7 @@
  * 
  * @author Toni Rikkola
  */
-public class RuleSolver extends Solver {
+class RuleSolver extends Solver {
 
 	private AnalyticsRule rule;
 

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Solvers.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Solvers.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/Solvers.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -16,7 +16,7 @@
  * 
  * @author Toni Rikkola
  */
-public class Solvers {
+ class Solvers {
 
 	private RuleSolver ruleSolver = null;
 	private PatternSolver patternSolver = null;

Deleted: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataFactory.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataFactory.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -1,31 +0,0 @@
-package org.drools.analytics.dao;
-
-public class AnalyticsDataFactory {
-
-	private static AnalyticsData data;
-	private static AnalyticsResult result;
-
-	public static AnalyticsData getAnalyticsData() {
-		if (data == null) {
-			data = new AnalyticsDataMaps();
-		}
-
-		return data;
-	}
-
-	public static AnalyticsResult getAnalyticsResult() {
-		if (result == null) {
-			result = new AnalyticsResultNormal();
-		}
-
-		return result;
-	}
-
-	public static void clearAnalyticsResult() {
-		result = new AnalyticsResultNormal();
-	}
-
-	public static void clearAnalyticsData() {
-		data = new AnalyticsDataMaps();
-	}
-}

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResult.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResult.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResult.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -20,6 +20,8 @@
 
 	public void save(MissingNumberPattern missingNumberPattern);
 
+	public AnalyticsData getAnalyticsData();
+
 	public Collection<RangeCheckCause> getRangeCheckCauses();
 
 	public Collection<RangeCheckCause> getRangeCheckCausesByFieldId(int id);

Copied: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResultFactory.java (from rev 17194, labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsDataFactory.java)
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResultFactory.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResultFactory.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -0,0 +1,9 @@
+package org.drools.analytics.dao;
+
+public class AnalyticsResultFactory {
+
+	public static AnalyticsResult createAnalyticsResult() {
+
+		return new AnalyticsResultNormal();
+	}
+}

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResultNormal.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResultNormal.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/dao/AnalyticsResultNormal.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -27,6 +27,8 @@
 	private List<AnalyticsMessageBase> messages = new ArrayList<AnalyticsMessageBase>();
 	private DataTree<AnalyticsMessageBase.Severity, AnalyticsMessageBase> messagesBySeverity = new DataTree<AnalyticsMessageBase.Severity, AnalyticsMessageBase>();
 
+	private AnalyticsData data = new AnalyticsDataMaps();
+
 	public void save(AnalyticsMessageBase message) {
 		messages.add(message);
 		messagesBySeverity.put(message.getSeverity(), message);
@@ -88,4 +90,8 @@
 
 		return result;
 	}
+
+	public AnalyticsData getAnalyticsData() {
+		return data;
+	}
 }

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/ReportModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/ReportModeller.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/ReportModeller.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -3,7 +3,6 @@
 import java.util.Collection;
 
 import org.drools.analytics.components.LiteralRestriction;
-import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -18,8 +17,7 @@
  */
 public class ReportModeller {
 
-	public static String writeXML() {
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+	public static String writeXML(AnalyticsResult result) {
 		XStream xstream = new XStream();
 
 		xstream.alias("result", AnalyticsResult.class);
@@ -35,8 +33,7 @@
 		return "<?xml version=\"1.0\"?>\n" + xstream.toXML(result);
 	}
 
-	public static String writePlainText() {
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+	public static String writePlainText(AnalyticsResult result) {
 
 		StringBuffer str = new StringBuffer();
 

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/MissingRange.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/MissingRange.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/MissingRange.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -32,14 +32,21 @@
 		} else if (e.equals(Operator.LESS_OR_EQUAL)) {
 			return Operator.GREATER;
 		} else {
-            return Operator.determineOperator( e.getOperatorString(), !e.isNegated() );
-        }
+			return Operator.determineOperator(e.getOperatorString(), !e
+					.isNegated());
+		}
 	}
 
 	public int compareTo(MissingRange another) {
-		MissingRange anotherMissingRange = ((MissingRange) another);
+		int value = this.id - another.getId();
 
-		return this.id - anotherMissingRange.getId();
+		if (value > 0) {
+			return 1;
+		} else if (value < 0) {
+			return -1;
+		} else {
+			return 0;
+		}
 	}
 
 	public int getId() {

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/AnalyticsMessagesVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/AnalyticsMessagesVisitor.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/AnalyticsMessagesVisitor.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -5,6 +5,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.drools.analytics.dao.AnalyticsData;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
 import org.drools.analytics.report.components.AnalyticsRangeCheckMessage;
@@ -15,7 +16,7 @@
  * 
  * @author Toni Rikkola
  */
-public class AnalyticsMessagesVisitor extends ReportVisitor {
+class AnalyticsMessagesVisitor extends ReportVisitor {
 
 	private static String ANALYSIS_MESSAGES_TEMPLATE = "analyticsMessages.htm";
 	private static String ANALYSIS_MESSAGE_TEMPLATE = "analyticsMessage.htm";
@@ -25,13 +26,13 @@
 	public static String ERRORS = "Errors";
 
 	public static String visitAnalyticsMessagesCollection(String title,
-			Collection<AnalyticsMessageBase> messages) {
+			Collection<AnalyticsMessageBase> messages, AnalyticsData data) {
 		Map<String, Object> map = new HashMap<String, Object>();
 		Collection<String> messageTemplates = new ArrayList<String>();
 		String myTemplate = readFile(ANALYSIS_MESSAGES_TEMPLATE);
 
 		for (AnalyticsMessageBase message : messages) {
-			messageTemplates.add(visitAnalyticsMessage(message));
+			messageTemplates.add(visitAnalyticsMessage(message, data));
 		}
 
 		map.put("title", title);
@@ -40,9 +41,11 @@
 		return TemplateInterpreter.evalToString(myTemplate, map);
 	}
 
-	public static String visitAnalyticsMessage(AnalyticsMessageBase message) {
+	public static String visitAnalyticsMessage(AnalyticsMessageBase message,
+			AnalyticsData data) {
 		if (message instanceof AnalyticsRangeCheckMessage) {
-			return visitAnalyticsMessage((AnalyticsRangeCheckMessage) message);
+			return visitAnalyticsMessage((AnalyticsRangeCheckMessage) message,
+					data);
 		} else if (message instanceof AnalyticsMessage) {
 			return visitAnalyticsMessage((AnalyticsMessage) message);
 		}
@@ -51,10 +54,10 @@
 	}
 
 	public static String visitAnalyticsMessage(
-			AnalyticsRangeCheckMessage message) {
+			AnalyticsRangeCheckMessage message, AnalyticsData data) {
 
 		return MissingRangesReportVisitor.visitRangeCheckMessage(
-				UrlFactory.THIS_FOLDER, message);
+				UrlFactory.THIS_FOLDER, message, data);
 	}
 
 	public static String visitAnalyticsMessage(AnalyticsMessage message) {

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ComponentsReportModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ComponentsReportModeller.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ComponentsReportModeller.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,14 +7,13 @@
 import org.drools.analytics.components.AnalyticsRule;
 import org.drools.analytics.components.Field;
 import org.drools.analytics.dao.AnalyticsData;
-import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 
 public class ComponentsReportModeller extends ReportModeller {
 
-	public static void writeHTML(String path) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
+	public static void writeHTML(String path, AnalyticsResult result) {
+		AnalyticsData data = result.getAnalyticsData();
 
 		// Source folder
 		File sourceFolder = new File(path + UrlFactory.SOURCE_FOLDER);
@@ -43,7 +42,7 @@
 			writeToFile(ruleFolder + File.separator + rule.getId() + ".htm",
 					formPage(UrlFactory.PREVIOUS_FOLDER,
 							ComponentsReportVisitor.visitRule(
-									UrlFactory.PREVIOUS_FOLDER, rule)));
+									UrlFactory.PREVIOUS_FOLDER, rule, data)));
 		}
 
 		// ObjectTypes
@@ -55,7 +54,7 @@
 			writeToFile(objectTypeFolder + File.separator + objectType.getId()
 					+ ".htm", formPage(UrlFactory.PREVIOUS_FOLDER,
 					ComponentsReportVisitor.visitObjectType(
-							UrlFactory.PREVIOUS_FOLDER, objectType)));
+							UrlFactory.PREVIOUS_FOLDER, objectType, data)));
 		}
 
 		// Fields
@@ -67,11 +66,11 @@
 			writeToFile(fieldFolder + File.separator + field.getId() + ".htm",
 					formPage(UrlFactory.PREVIOUS_FOLDER,
 							ComponentsReportVisitor.visitField(
-									UrlFactory.PREVIOUS_FOLDER, field)));
+									UrlFactory.PREVIOUS_FOLDER, field, result)));
 		}
 
 		// Analytics messages
-		writeMessages(path);
+		writeMessages(path, result);
 
 		// css files
 		String cssFolder = path + UrlFactory.SOURCE_FOLDER + File.separator
@@ -96,20 +95,24 @@
 		}
 	}
 
-	private static void writeMessages(String path) {
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+	private static void writeMessages(String path, AnalyticsResult result) {
+		AnalyticsData data = result.getAnalyticsData();
+
 		String errors = AnalyticsMessagesVisitor
 				.visitAnalyticsMessagesCollection(
-						AnalyticsMessage.Severity.ERROR.getTuple(), result
-								.getBySeverity(AnalyticsMessage.Severity.ERROR));
+						AnalyticsMessage.Severity.ERROR.getTuple(),
+						result.getBySeverity(AnalyticsMessage.Severity.ERROR),
+						data);
 		String warnings = AnalyticsMessagesVisitor
 				.visitAnalyticsMessagesCollection(
 						AnalyticsMessage.Severity.WARNING.getTuple(),
-						result.getBySeverity(AnalyticsMessage.Severity.WARNING));
+						result.getBySeverity(AnalyticsMessage.Severity.WARNING),
+						data);
 		String notes = AnalyticsMessagesVisitor
 				.visitAnalyticsMessagesCollection(
 						AnalyticsMessage.Severity.NOTE.getTuple(), result
-								.getBySeverity(AnalyticsMessage.Severity.NOTE));
+								.getBySeverity(AnalyticsMessage.Severity.NOTE),
+						data);
 
 		writeToFile(path + UrlFactory.SOURCE_FOLDER + File.separator
 				+ UrlFactory.HTML_FILE_ANALYTICS_MESSAGES, formPage(

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ComponentsReportVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ComponentsReportVisitor.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ComponentsReportVisitor.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -10,12 +10,11 @@
 import org.drools.analytics.components.Restriction;
 import org.drools.analytics.components.RulePackage;
 import org.drools.analytics.dao.AnalyticsData;
-import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.RangeCheckCause;
 import org.mvel.TemplateInterpreter;
 
-public class ComponentsReportVisitor extends ReportVisitor {
+class ComponentsReportVisitor extends ReportVisitor {
 
 	public static String getCss(String fileName) {
 		return readFile(fileName);
@@ -50,8 +49,8 @@
 		return TemplateInterpreter.evalToString(myTemplate, map);
 	}
 
-	public static String visitRule(String sourceFolder, AnalyticsRule rule) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
+	public static String visitRule(String sourceFolder, AnalyticsRule rule,
+			AnalyticsData data) {
 		Collection<AnalyticsClass> objectTypes = data.getClassesByRuleName(rule
 				.getRuleName());
 
@@ -68,8 +67,7 @@
 	}
 
 	public static String visitObjectType(String sourceFolder,
-			AnalyticsClass objectType) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
+			AnalyticsClass objectType, AnalyticsData data) {
 		Collection<AnalyticsRule> rules = data.getRulesByClassId(objectType
 				.getId());
 
@@ -86,9 +84,9 @@
 		return TemplateInterpreter.evalToString(myTemplate, map);
 	}
 
-	public static String visitField(String sourceFolder, Field field) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+	public static String visitField(String sourceFolder, Field field,
+			AnalyticsResult result) {
+		AnalyticsData data = result.getAnalyticsData();
 		AnalyticsClass objectType = data.getClassById(field.getClassId());
 		Collection<AnalyticsRule> rules = data.getRulesByFieldId(field.getId());
 

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/MissingRangesReportVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/MissingRangesReportVisitor.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/MissingRangesReportVisitor.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -10,14 +10,13 @@
 import org.drools.analytics.components.LiteralRestriction;
 import org.drools.analytics.components.Restriction;
 import org.drools.analytics.dao.AnalyticsData;
-import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.analytics.dao.DataTree;
 import org.drools.analytics.report.components.AnalyticsRangeCheckMessage;
 import org.drools.analytics.report.components.RangeCheckCause;
 import org.drools.base.evaluators.Operator;
 import org.mvel.TemplateInterpreter;
 
-public class MissingRangesReportVisitor extends ReportVisitor {
+class MissingRangesReportVisitor extends ReportVisitor {
 
 	public static Collection<String> visitRestrictionsCollection(
 			String sourceFolder, Collection<Restriction> restrictions,
@@ -122,8 +121,7 @@
 	}
 
 	public static String visitRangeCheckMessage(String sourceFolder,
-			AnalyticsRangeCheckMessage message) {
-		AnalyticsData data = AnalyticsDataFactory.getAnalyticsData();
+			AnalyticsRangeCheckMessage message, AnalyticsData data) {
 		Collection<Restriction> restrictions = data
 				.getRestrictionsByFieldId(message.getFaulty().getId());
 		Field field = (Field) message.getFaulty();

Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ReportModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ReportModeller.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/html/ReportModeller.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -13,7 +13,7 @@
 
 import org.mvel.TemplateInterpreter;
 
-public abstract class ReportModeller {
+abstract class ReportModeller {
 
 	protected static String formPage(String sourceFolder, String content) {
 		Map<String, Object> map = new HashMap<String, Object>();

Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Patterns.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Patterns.drl	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Patterns.drl	2007-12-12 09:21:01 UTC (rev 17195)
@@ -5,12 +5,10 @@
 import org.drools.base.evaluators.Operator;
 
 import org.drools.analytics.components.*;
-import org.drools.analytics.accumulateFunction.ValidatePattern;
-import org.drools.analytics.accumulateFunction.ValidatePatternResult;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.MissingNumberPattern;
 import org.drools.analytics.report.components.Cause;
-import org.drools.analytics.accumulateFunction.FindMissingNumber;
+import org.drools.analytics.FindMissingNumber;
 
 import java.util.ArrayList;
 import java.util.List;

Modified: labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Variables.drl
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Variables.drl	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/main/resources/org/drools/analytics/rangeChecks/Variables.drl	2007-12-12 09:21:01 UTC (rev 17195)
@@ -2,8 +2,6 @@
 
 #list any import classes here.
 import org.drools.analytics.components.*;
-import org.drools.analytics.accumulateFunction.ValidatePattern;
-import org.drools.analytics.accumulateFunction.ValidatePatternResult;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.Gap;
 

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/ConsequenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/ConsequenceTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/ConsequenceTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,7 +7,7 @@
 
 import org.drools.StatelessSession;
 import org.drools.analytics.components.AnalyticsRule;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -27,12 +27,12 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"No action - possibly commented out"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
+
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("ConsequenceTest.drl"));
+				.getResourceAsStream("ConsequenceTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);

Added: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/FindMissingNumberTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/FindMissingNumberTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/FindMissingNumberTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -0,0 +1,131 @@
+package org.drools.analytics;
+
+import java.math.BigDecimal;
+
+import org.drools.analytics.FindMissingNumber;
+
+import junit.framework.TestCase;
+
+public class FindMissingNumberTest extends TestCase {
+
+	public void testfindSumPattern() {
+		// Sum +2 missing number 4
+		assertTrue(FindMissingNumber.findSumPattern(
+				new BigDecimal[] { BigDecimal.valueOf(2),
+						BigDecimal.valueOf(6), BigDecimal.valueOf(8),
+						BigDecimal.valueOf(10) }).doubleValue() == 4);
+		// +10 missing number 50
+		assertTrue(FindMissingNumber.findSumPattern(
+				new BigDecimal[] { BigDecimal.valueOf(10),
+						BigDecimal.valueOf(20), BigDecimal.valueOf(30),
+						BigDecimal.valueOf(40), BigDecimal.valueOf(60),
+						BigDecimal.valueOf(70) }).doubleValue() == 50);
+		// +66 missing number 308
+		assertTrue(FindMissingNumber.findSumPattern(
+				new BigDecimal[] { BigDecimal.valueOf(110),
+						BigDecimal.valueOf(176), BigDecimal.valueOf(242),
+						BigDecimal.valueOf(374) }).doubleValue() == 308);
+
+		// Deduction -2 missing number 8
+		assertTrue(FindMissingNumber.findSumPattern(
+				new BigDecimal[] { BigDecimal.valueOf(10),
+						BigDecimal.valueOf(6), BigDecimal.valueOf(4),
+						BigDecimal.valueOf(2) }).doubleValue() == 8);
+		// -337 missing number -11
+		assertTrue(FindMissingNumber.findSumPattern(
+				new BigDecimal[] { BigDecimal.valueOf(663),
+						BigDecimal.valueOf(326), BigDecimal.valueOf(-348),
+						BigDecimal.valueOf(-685) }).doubleValue() == -11);
+		// -31 missing number 4350
+		assertTrue(FindMissingNumber.findSumPattern(
+				new BigDecimal[] { BigDecimal.valueOf(4443),
+						BigDecimal.valueOf(4412), BigDecimal.valueOf(4381),
+						BigDecimal.valueOf(4319) }).doubleValue() == 4350);
+
+		// Not valid
+		// Not in pattern.
+		assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+				BigDecimal.valueOf(1), BigDecimal.valueOf(2),
+				BigDecimal.valueOf(4), BigDecimal.valueOf(6),
+				BigDecimal.valueOf(8), BigDecimal.valueOf(11) }) == null);
+		assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+				BigDecimal.valueOf(5), BigDecimal.valueOf(3),
+				BigDecimal.valueOf(54353), BigDecimal.valueOf(54554),
+				BigDecimal.valueOf(232), BigDecimal.valueOf(123) }) == null);
+		// No missing values.
+		assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+				BigDecimal.valueOf(2), BigDecimal.valueOf(4),
+				BigDecimal.valueOf(6), BigDecimal.valueOf(8),
+				BigDecimal.valueOf(10), BigDecimal.valueOf(12),
+				BigDecimal.valueOf(14) }) == null);
+		assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+				BigDecimal.valueOf(10), BigDecimal.valueOf(20),
+				BigDecimal.valueOf(30), BigDecimal.valueOf(40),
+				BigDecimal.valueOf(50), BigDecimal.valueOf(60) }) == null);
+		assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+				BigDecimal.valueOf(-15), BigDecimal.valueOf(-10),
+				BigDecimal.valueOf(-5), BigDecimal.valueOf(0),
+				BigDecimal.valueOf(5), BigDecimal.valueOf(10),
+				BigDecimal.valueOf(15) }) == null);
+		// Under 4 values always returns null.
+		assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+				BigDecimal.valueOf(2), BigDecimal.valueOf(4),
+				BigDecimal.valueOf(6) }) == null);
+		assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] {
+				BigDecimal.valueOf(2), BigDecimal.valueOf(4) }) == null);
+		assertTrue(FindMissingNumber.findSumPattern(new BigDecimal[] { BigDecimal
+				.valueOf(2) }) == null);
+	}
+
+	public void testFindMultiplicationPattern() {
+
+		// Multiplication
+		// *2 missing number 4
+		assertTrue(FindMissingNumber.findMultiplicationPattern(
+				new BigDecimal[] { BigDecimal.valueOf(2),
+						BigDecimal.valueOf(8), BigDecimal.valueOf(16),
+						BigDecimal.valueOf(32), BigDecimal.valueOf(64) })
+				.doubleValue() == 4);
+		// *17 missing number 383214
+		assertTrue(FindMissingNumber.findMultiplicationPattern(
+				new BigDecimal[] { BigDecimal.valueOf(78),
+						BigDecimal.valueOf(1326), BigDecimal.valueOf(22542),
+						BigDecimal.valueOf(6514638) }).doubleValue() == 383214);
+		// *1,23 missing number 2016.6957
+		assertTrue(FindMissingNumber.findMultiplicationPattern(
+				new BigDecimal[] { BigDecimal.valueOf(1333),
+						BigDecimal.valueOf(1639.59),
+						BigDecimal.valueOf(2480.535711),
+						BigDecimal.valueOf(3051.05892453) }).doubleValue() == 2016.6957);
+
+		// Division
+		// /2 (*0.5) missing number 128
+		assertTrue(FindMissingNumber.findMultiplicationPattern(
+				new BigDecimal[] { BigDecimal.valueOf(256),
+						BigDecimal.valueOf(64), BigDecimal.valueOf(32),
+						BigDecimal.valueOf(16), BigDecimal.valueOf(8),
+						BigDecimal.valueOf(4), BigDecimal.valueOf(2) })
+				.doubleValue() == 128);
+		// /10 (*0.1) missing number 1
+		assertTrue(FindMissingNumber.findMultiplicationPattern(
+				new BigDecimal[] { BigDecimal.valueOf(10000),
+						BigDecimal.valueOf(1000), BigDecimal.valueOf(100),
+						BigDecimal.valueOf(10), BigDecimal.valueOf(0.1),
+						BigDecimal.valueOf(0.01) }).doubleValue() == 1);
+
+		// Not valid
+		// Not in pattern.
+		assertTrue(FindMissingNumber.findMultiplicationPattern(new BigDecimal[] {
+				BigDecimal.valueOf(111.2), BigDecimal.valueOf(3323),
+				BigDecimal.valueOf(234.434), BigDecimal.valueOf(44343),
+				BigDecimal.valueOf(434) }) == null);
+		assertTrue(FindMissingNumber.findMultiplicationPattern(new BigDecimal[] {
+				BigDecimal.valueOf(1), BigDecimal.valueOf(2),
+				BigDecimal.valueOf(3), BigDecimal.valueOf(4),
+				BigDecimal.valueOf(5), BigDecimal.valueOf(6),
+				BigDecimal.valueOf(7), BigDecimal.valueOf(5),
+				BigDecimal.valueOf(4), BigDecimal.valueOf(3),
+				BigDecimal.valueOf(2), BigDecimal.valueOf(1),
+				BigDecimal.valueOf(1), BigDecimal.valueOf(1) }) == null);
+	}
+}

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckCleanTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckCleanTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckCleanTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -11,7 +11,7 @@
 import org.drools.analytics.components.AnalyticsComponent;
 import org.drools.analytics.components.Field;
 import org.drools.analytics.components.LiteralRestriction;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.Gap;
 import org.drools.base.RuleNameMatchesAgendaFilter;
@@ -83,7 +83,7 @@
 		higher.setValue("100");
 		testData.add(higher);
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -178,7 +178,7 @@
 		higher.setValue("100");
 		testData.add(higher);
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -273,7 +273,7 @@
 		higher.setValue("100.0");
 		testData.add(higher);
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -368,7 +368,7 @@
 		higher.setValue("100.0");
 		testData.add(higher);
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -463,7 +463,7 @@
 		higher.setValue("20-Oct-2007");
 		testData.add(higher);
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -558,7 +558,7 @@
 		higher.setValue("20-Oct-2007");
 		testData.add(higher);
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckDatesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckDatesTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckDatesTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,8 +7,8 @@
 
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
-import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.report.components.Gap;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 
@@ -30,11 +30,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for dates, if smaller than or equal is missing"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForDates.drl"));
+				.getResourceAsStream("MissingRangesForDates.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -68,11 +68,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for dates, if greater than or equal is missing"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForDates.drl"));
+				.getResourceAsStream("MissingRangesForDates.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -106,11 +106,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for dates, equal and greater than"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForDates.drl"));
+				.getResourceAsStream("MissingRangesForDates.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -145,11 +145,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for dates, equal and smaller than"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForDates.drl"));
+				.getResourceAsStream("MissingRangesForDates.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckDoublesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckDoublesTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckDoublesTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,8 +7,8 @@
 
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
-import org.drools.analytics.dao.AnalyticsDataFactory;
 import org.drools.analytics.dao.AnalyticsResult;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.report.components.Gap;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 
@@ -27,11 +27,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Range check for doubles, if smaller than or equal is missing"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForDoubles.drl"));
+				.getResourceAsStream("MissingRangesForDoubles.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -66,11 +66,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Range check for doubles, if greater than or equal is missing"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForDoubles.drl"));
+				.getResourceAsStream("MissingRangesForDoubles.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -104,11 +104,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for doubles, equal and greater than"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForDoubles.drl"));
+				.getResourceAsStream("MissingRangesForDoubles.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -144,11 +144,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for doubles, equal and smaller than"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForDoubles.drl"));
+				.getResourceAsStream("MissingRangesForDoubles.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckIntegersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckIntegersTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/RangeCheckIntegersTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,7 +7,7 @@
 
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.Gap;
 import org.drools.base.RuleNameMatchesAgendaFilter;
@@ -27,12 +27,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Range check for integers, if smaller than or equal is missing"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForInts.drl"));
+				.getResourceAsStream("MissingRangesForInts.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -67,12 +66,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Range check for integers, if greater than or equal is missing"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForInts.drl"));
+				.getResourceAsStream("MissingRangesForInts.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -106,12 +104,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for integers, equal and greater than"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForInts.drl"));
+				.getResourceAsStream("MissingRangesForInts.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session
@@ -146,12 +143,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Range check for integers, equal and smaller than"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingRangesForInts.drl"));
+				.getResourceAsStream("MissingRangesForInts.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/TestBase.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/TestBase.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/TestBase.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -12,7 +12,7 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseFactory;
 import org.drools.StatelessSession;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsData;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.PackageBuilder;
 import org.drools.lang.descr.PackageDescr;
@@ -29,9 +29,6 @@
 	protected void setUp() throws Exception {
 		super.setUp();
 
-		System.setProperty("drools.accumulate.function.validatePattern",
-				"com.analytics.accumulateFunction.ValidatePattern");
-		
 		System.setProperty("drools.dateformat", "dd-MMM-yyyy");
 	}
 
@@ -76,16 +73,16 @@
 		return false;
 	}
 
-	public Collection<? extends Object> getTestData(InputStream stream)
-			throws Exception {
+	public Collection<? extends Object> getTestData(InputStream stream,
+			AnalyticsData data) throws Exception {
 		Reader drlReader = new InputStreamReader(stream);
 		PackageDescr descr = new DrlParser().parse(drlReader);
 
 		PackageDescrFlattener ruleFlattener = new PackageDescrFlattener();
 
-		ruleFlattener.insert(descr);
+		ruleFlattener.addPackageDescrToData(descr, data);
 
 		// Rules with relations
-		return AnalyticsDataFactory.getAnalyticsData().getAll();
+		return data.getAll();
 	}
 }

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/incoherence/IncoherentPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/incoherence/IncoherentPatternsTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/incoherence/IncoherentPatternsTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -8,7 +8,7 @@
 import org.drools.StatelessSession;
 import org.drools.analytics.TestBase;
 import org.drools.analytics.components.AnalyticsRule;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -28,12 +28,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Incoherent Patterns in rule possibility"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"));
+				.getResourceAsStream("PatternsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -70,12 +69,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Incoherent Patterns in rule possibility, variables"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"));
+				.getResourceAsStream("PatternsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -114,12 +112,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with lesser value"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"));
+				.getResourceAsStream("PatternsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -156,12 +153,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with greater value"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"));
+				.getResourceAsStream("PatternsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -198,12 +194,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal value"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"));
+				.getResourceAsStream("PatternsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -240,12 +235,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal variables"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"));
+				.getResourceAsStream("PatternsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -281,12 +275,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal value"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"));
+				.getResourceAsStream("PatternsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -312,41 +305,40 @@
 			}
 		}
 	}
-	
+
 	public void testIncoherentPatternsInRulePossibilityRangesEqualVariable()
-	throws Exception {
+			throws Exception {
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Patterns.drl"));
-		
+
 		session
-		.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Incoherent Patterns in rule possibility, ranges when not conflicts with equal variable"));
-		
-		AnalyticsDataFactory.clearAnalyticsData();
+				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
+						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal variable"));
+
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"));
-		
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+				.getResourceAsStream("PatternsTest.drl"), result
+				.getAnalyticsData());
+
 		session.setGlobal("result", result);
-		
+
 		session.executeWithResults(testData);
-		
+
 		Iterator<AnalyticsMessageBase> iter = result.getBySeverity(
 				AnalyticsMessageBase.Severity.WARNING).iterator();
-		
+
 		Set<String> rulesThatHadErrors = new HashSet<String>();
 		while (iter.hasNext()) {
 			Object o = (Object) iter.next();
 			if (o instanceof AnalyticsMessage) {
 				AnalyticsRule rule = (AnalyticsRule) ((AnalyticsMessage) o)
-				.getFaulty();
+						.getFaulty();
 				rulesThatHadErrors.add(rule.getRuleName());
 			}
 		}
-		
+
 		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 13"));
-		
+
 		if (!rulesThatHadErrors.isEmpty()) {
 			for (String string : rulesThatHadErrors) {
 				fail("Rule " + string + " caused an error.");

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/incoherence/IncoherentRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/incoherence/IncoherentRestrictionsTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/incoherence/IncoherentRestrictionsTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -8,7 +8,7 @@
 import org.drools.StatelessSession;
 import org.drools.analytics.TestBase;
 import org.drools.analytics.components.Pattern;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -29,12 +29,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Incoherent LiteralRestrictions in pattern possibility"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("RestrictionsTest.drl"));
+				.getResourceAsStream("RestrictionsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -70,12 +69,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent LiteralRestrictions with ranges in pattern possibility, impossible ranges"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("RestrictionsTest.drl"));
+				.getResourceAsStream("RestrictionsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -110,12 +108,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent LiteralRestrictions with ranges in pattern possibility, impossible equality less or equal"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("RestrictionsTest.drl"));
+				.getResourceAsStream("RestrictionsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -151,12 +148,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent LiteralRestrictions with ranges in pattern possibility, impossible equality greater"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("RestrictionsTest.drl"));
+				.getResourceAsStream("RestrictionsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -191,12 +187,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent LiteralRestrictions with ranges in pattern possibility, impossible range"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("RestrictionsTest.drl"));
+				.getResourceAsStream("RestrictionsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -230,12 +225,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Incoherent VariableRestrictions in pattern possibility"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("RestrictionsTest.drl"));
+				.getResourceAsStream("RestrictionsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -272,12 +266,11 @@
 				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 						"Incoherent VariableRestrictions in pattern possibility, impossible range"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("RestrictionsTest.drl"));
+				.getResourceAsStream("RestrictionsTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/missingEquality/MissingEqualityTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/missingEquality/MissingEqualityTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/missingEquality/MissingEqualityTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -8,7 +8,7 @@
 import org.drools.analytics.TestBase;
 import org.drools.analytics.components.LiteralRestriction;
 import org.drools.analytics.components.VariableRestriction;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -24,14 +24,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Missing restriction in LiteralRestrictions"));
 
-		// Clear data so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingEqualityTest.drl"));
+				.getResourceAsStream("MissingEqualityTest.drl"), result
+				.getAnalyticsData());
 
-		// Clear result so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -67,14 +64,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Missing restriction in VariableRestrictions"));
 
-		// Clear data so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("MissingEqualityTest.drl"));
+				.getResourceAsStream("MissingEqualityTest.drl"), result
+				.getAnalyticsData());
 
-		// Clear result so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/optimisation/PatternOrderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/optimisation/PatternOrderTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/optimisation/PatternOrderTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,7 +7,7 @@
 import org.drools.StatelessSession;
 import org.drools.analytics.TestBase;
 import org.drools.analytics.components.AnalyticsComponent;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -22,14 +22,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Optimise evals inside pattern"));
 
-		// Clear data so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("OptimisationPatternOrderTest.drl"));
+				.getResourceAsStream("OptimisationPatternOrderTest.drl"),
+				result.getAnalyticsData());
 
-		// Clear result so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/optimisation/RestrictionOrderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/optimisation/RestrictionOrderTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/optimisation/RestrictionOrderTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -13,7 +13,7 @@
 import org.drools.analytics.components.OperatorDescr;
 import org.drools.analytics.components.Pattern;
 import org.drools.analytics.components.Restriction;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -30,14 +30,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Optimise restrictions inside operator"));
 
-		// Clear data so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("OptimisationRestrictionOrderTest.drl"));
+				.getResourceAsStream("OptimisationRestrictionOrderTest.drl"),
+				result.getAnalyticsData());
 
-		// Clear result so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -132,9 +129,7 @@
 		r6.setOrderNumber(3);
 		testData.add(r6);
 
-		// Clear result so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);
@@ -174,14 +169,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Optimise predicates inside operator"));
 
-		// Clear data so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("OptimisationRestrictionOrderTest.drl"));
+				.getResourceAsStream("OptimisationRestrictionOrderTest.drl"),
+				result.getAnalyticsData());
 
-		// Clear result so that test data doesn't mix.
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(testData);

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-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/NotesTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -8,7 +8,7 @@
 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.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -42,8 +42,7 @@
 		objects.add(redundancy);
 		objects.add(possibility);
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(objects);
@@ -84,8 +83,7 @@
 		objects.add(redundancy);
 		objects.add(possibility);
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(objects);

Modified: 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	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantConsequencesTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,7 +7,7 @@
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
 import org.drools.analytics.TestBase;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 
@@ -20,12 +20,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant TextConsequences"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
-				.getResourceAsStream("ConsequenceRedundancyTest.drl"));
+				.getResourceAsStream("ConsequenceRedundancyTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantPossibilitiesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantPossibilitiesTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantPossibilitiesTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -13,7 +13,7 @@
 import org.drools.analytics.components.Pattern;
 import org.drools.analytics.components.PatternPossibility;
 import org.drools.analytics.components.RulePossibility;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.Redundancy;
 import org.drools.base.RuleNameMatchesAgendaFilter;
@@ -24,14 +24,12 @@
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Possibilities.drl"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find pattern possibility redundancy"));
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		String ruleName1 = "Rule 1";
@@ -86,14 +84,12 @@
 		StatelessSession session = getStatelessSession(this.getClass()
 				.getResourceAsStream("Possibilities.drl"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find rule possibility redundancy"));
 
 		Collection<Object> data = new ArrayList<Object>();
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		String ruleName1 = "Rule 1";

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-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRestrictionsTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,7 +7,7 @@
 import org.drools.StatelessSession;
 import org.drools.StatelessSessionResult;
 import org.drools.analytics.TestBase;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.base.RuleNameMatchesAgendaFilter;
 
@@ -20,12 +20,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant LiteralRestriction"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
-				.getResourceAsStream("RedundancyLiteralRestrictionTest.drl"));
+				.getResourceAsStream("RedundancyLiteralRestrictionTest.drl"),
+				result.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);
@@ -58,12 +57,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant VariableRestriction"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
-				.getResourceAsStream("SubsumptionVariableRestrictionTest.drl"));
+				.getResourceAsStream("SubsumptionVariableRestrictionTest.drl"),
+				result.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);

Modified: 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	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/RedundantRulesAndPatternsTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -10,7 +10,7 @@
 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.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.Redundancy;
 import org.drools.base.RuleNameMatchesAgendaFilter;
@@ -24,7 +24,6 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant Rules, weak redundancy"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
 		Collection<Object> data = new ArrayList<Object>();
 
 		String ruleName1 = "Rule 1";
@@ -50,8 +49,7 @@
 		data.add(r1);
 		data.add(r2);
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);
@@ -74,12 +72,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant Patterns with restrictions"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
-				.getResourceAsStream("PatternRedundancyTest.drl"));
+				.getResourceAsStream("PatternRedundancyTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);
@@ -124,12 +121,11 @@
 		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
 				"Find redundant Patterns without restrictions"));
 
-		AnalyticsDataFactory.clearAnalyticsData();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		Collection<? extends Object> data = getTestData(this.getClass()
-				.getResourceAsStream("PatternRedundancyTest.drl"));
+				.getResourceAsStream("PatternRedundancyTest.drl"), result
+				.getAnalyticsData());
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
 		session.setGlobal("result", result);
 
 		StatelessSessionResult sessionResult = session.executeWithResults(data);

Modified: labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/WarningsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/WarningsTest.java	2007-12-12 06:20:44 UTC (rev 17194)
+++ labs/jbossrules/trunk/drools-analytics/src/test/java/org/drools/analytics/redundancy/WarningsTest.java	2007-12-12 09:21:01 UTC (rev 17195)
@@ -7,7 +7,7 @@
 import org.drools.analytics.TestBase;
 import org.drools.analytics.components.AnalyticsRule;
 import org.drools.analytics.components.RulePossibility;
-import org.drools.analytics.dao.AnalyticsDataFactory;
+import org.drools.analytics.dao.AnalyticsResultFactory;
 import org.drools.analytics.dao.AnalyticsResult;
 import org.drools.analytics.report.components.AnalyticsMessage;
 import org.drools.analytics.report.components.AnalyticsMessageBase;
@@ -51,8 +51,7 @@
 		objects.add(rulePossibilityRedundancy1);
 		objects.add(rulePossibilityRedundancy2);
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(objects);
@@ -98,8 +97,7 @@
 		objects.add(rp2);
 		objects.add(rulePossibilityRedundancy1);
 
-		AnalyticsDataFactory.clearAnalyticsResult();
-		AnalyticsResult result = AnalyticsDataFactory.getAnalyticsResult();
+		AnalyticsResult result = AnalyticsResultFactory.createAnalyticsResult();
 		session.setGlobal("result", result);
 
 		session.executeWithResults(objects);




More information about the jboss-svn-commits mailing list