/** * Copyright 2010 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.verifier; import junit.framework.TestCase; /** * * @author Toni Rikkola * */ public class RangeCheckCleanTest extends TestCase { public void testDummy() { // this is needed as eclipse will try to run this and produce a failure // if its not here. assertTrue(true); } // public void testUselessIntegerGapsLesser() throws Exception { // StatelessSession session = getStatelessSession(this.getClass() // .getResourceAsStream("rangeChecks/Clean.drl")); // // session.setAgendaFilter(new RuleNameMatchesAgendaFilter( // "Remove useless integer gaps lesser or lesser and equal")); // // Collection<Object> testData = new ArrayList<Object>(); // // Field f = new Field(); // testData.add(f); // // // > 10 covered // LiteralRestriction lower = new LiteralRestriction(); // lower.setRuleName("> 10 covered"); // lower.setFieldId(f.getId()); // lower.setOperator(Operator.GREATER); // lower.setValue("10"); // testData.add(lower); // // // == 50 covered // LiteralRestriction r1 = new LiteralRestriction(); // r1.setRuleName("== 50 covered"); // r1.setFieldId(f.getId()); // r1.setOperator(Operator.EQUAL); // r1.setValue("50"); // testData.add(r1); // // // > 50 gap // Gap g1 = new Gap(f, Operator.GREATER, r1); // // g1.setFiredRuleName("above"); // testData.add(g1); // // // < 50 gap // Gap g2 = new Gap(f, Operator.LESS, r1); // // g2.setFiredRuleName("below"); // testData.add(g2); // // // > 70 covered // LiteralRestriction r2 = new LiteralRestriction(); // r2.setRuleName("> 70 covered"); // r2.setFieldId(f.getId()); // r2.setOperator(Operator.GREATER); // r2.setValue("70"); // testData.add(r2); // // // <= 70 gap // Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2); // // g3.setFiredRuleName("70gap"); // testData.add(g3); // // // < 100 covered // LiteralRestriction higher = new LiteralRestriction(); // higher.setRuleName("< 100 covered"); // higher.setFieldId(f.getId()); // higher.setOperator(Operator.LESS); // higher.setValue("100"); // testData.add(higher); // // VerifierResult result = VerifierResultFactory.createVerifierResult(); // session.setGlobal("result", result); // // StatelessSessionResult sessionResult = session // .executeWithResults(testData); // // Iterator<Object> iter = sessionResult.iterateObjects(); // // Set<Object> rulesThatHadErrors = new HashSet<Object>(); // while (iter.hasNext()) { // Object o = (Object) iter.next(); // if (o instanceof Gap || o instanceof VerifierComponent) { // rulesThatHadErrors.add(o); // } // } // // assertTrue(rulesThatHadErrors.remove("> 10 covered")); // assertTrue(rulesThatHadErrors.remove("== 50 covered")); // assertTrue(rulesThatHadErrors.remove("> 70 covered")); // assertTrue(rulesThatHadErrors.remove("< 100 covered")); // assertFalse(rulesThatHadErrors.contains("below")); // assertFalse(rulesThatHadErrors.contains("above")); // assertFalse(rulesThatHadErrors.contains("70gap")); // // if (!rulesThatHadErrors.isEmpty()) { // for (String string : rulesThatHadErrors) { // fail("Rule " + string + " caused an error."); // } // } // } // // public void testUselessIntegerGapsGreater() throws Exception { // StatelessSession session = getStatelessSession(this.getClass() // .getResourceAsStream("rangeChecks/Clean.drl")); // // session.setAgendaFilter(new RuleNameMatchesAgendaFilter( // "Remove useless integer gaps greater or greater and equal")); // // Collection<Object> testData = new ArrayList<Object>(); // // Field f = new Field(); // testData.add(f); // // // > 10 covered // LiteralRestriction lower = new LiteralRestriction(); // lower.setRuleName("> 10 covered"); // lower.setFieldId(f.getId()); // lower.setOperator(Operator.GREATER); // lower.setValue("10"); // testData.add(lower); // // // == 50 covered // LiteralRestriction r1 = new LiteralRestriction(); // r1.setRuleName("== 50 covered"); // r1.setFieldId(f.getId()); // r1.setOperator(Operator.EQUAL); // r1.setValue("50"); // testData.add(r1); // // // > 50 gap // Gap g1 = new Gap(f, Operator.GREATER, r1); // g1.setFiredRuleName("above"); // testData.add(g1); // // // < 50 gap // Gap g2 = new Gap(f, Operator.LESS, r1); // g2.setFiredRuleName("below"); // testData.add(g2); // // // < 70 covered // LiteralRestriction r2 = new LiteralRestriction(); // r2.setRuleName("< 70 covered"); // r2.setFieldId(f.getId()); // r2.setOperator(Operator.LESS); // r2.setValue("70"); // testData.add(r2); // // // >= 70 gap // Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2); // g3.setFiredRuleName("70gap"); // testData.add(g3); // // // < 100 covered // LiteralRestriction higher = new LiteralRestriction(); // higher.setRuleName("< 100 covered"); // higher.setFieldId(f.getId()); // higher.setOperator(Operator.LESS); // higher.setValue("100"); // testData.add(higher); // // VerifierResult result = VerifierResultFactory.createVerifierResult(); // session.setGlobal("result", result); // // StatelessSessionResult sessionResult = session // .executeWithResults(testData); // // Iterator<Object> iter = sessionResult.iterateObjects(); // // Set<String> rulesThatHadErrors = new HashSet<String>(); // while (iter.hasNext()) { // Object o = (Object) iter.next(); // if (o instanceof Field) { // // Do nothing // } else if (o instanceof Gap) { // rulesThatHadErrors.add(((Gap) o).getFiredRuleName()); // } else if (o instanceof VerifierComponent) { // rulesThatHadErrors.add(((VerifierComponent) o).getRuleName()); // } // // System.out.println(o); // } // // assertTrue(rulesThatHadErrors.remove("> 10 covered")); // assertTrue(rulesThatHadErrors.remove("== 50 covered")); // assertTrue(rulesThatHadErrors.remove("< 70 covered")); // assertTrue(rulesThatHadErrors.remove("< 100 covered")); // assertFalse(rulesThatHadErrors.contains("below")); // assertFalse(rulesThatHadErrors.contains("above")); // assertFalse(rulesThatHadErrors.contains("70gap")); // // if (!rulesThatHadErrors.isEmpty()) { // for (String string : rulesThatHadErrors) { // fail("Rule " + string + " caused an error."); // } // } // } // // public void testUselessDoubleGapsLesser() throws Exception { // StatelessSession session = getStatelessSession(this.getClass() // .getResourceAsStream("rangeChecks/Clean.drl")); // // session.setAgendaFilter(new RuleNameMatchesAgendaFilter( // "Remove useless double gaps lesser or lesser and equal")); // // Collection<Object> testData = new ArrayList<Object>(); // // Field f = new Field(); // testData.add(f); // // // > 10.0 covered // LiteralRestriction lower = new LiteralRestriction(); // lower.setRuleName("> 10.0 covered"); // lower.setFieldId(f.getId()); // lower.setOperator(Operator.GREATER); // lower.setValue("10.0"); // testData.add(lower); // // // == 50.0 covered // LiteralRestriction r1 = new LiteralRestriction(); // r1.setRuleName("== 50.0 covered"); // r1.setFieldId(f.getId()); // r1.setOperator(Operator.EQUAL); // r1.setValue("50.0"); // testData.add(r1); // // // > 50.0 gap // Gap g1 = new Gap(f, Operator.GREATER, r1); // g1.setFiredRuleName("above"); // testData.add(g1); // // // < 50.0 gap // Gap g2 = new Gap(f, Operator.LESS, r1); // g2.setFiredRuleName("below"); // testData.add(g2); // // // > 70.0 covered // LiteralRestriction r2 = new LiteralRestriction(); // r2.setRuleName("> 70.0 covered"); // r2.setFieldId(f.getId()); // r2.setOperator(Operator.GREATER); // r2.setValue("70.0"); // testData.add(r2); // // // <= 70.0 gap // Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2); // g3.setFiredRuleName("70gap"); // testData.add(g3); // // // < 100.0 covered // LiteralRestriction higher = new LiteralRestriction(); // higher.setRuleName("< 100.0 covered"); // higher.setFieldId(f.getId()); // higher.setOperator(Operator.LESS); // higher.setValue("100.0"); // testData.add(higher); // // VerifierResult result = VerifierResultFactory.createVerifierResult(); // session.setGlobal("result", result); // // StatelessSessionResult sessionResult = session // .executeWithResults(testData); // // Iterator<Object> iter = sessionResult.iterateObjects(); // // Set<String> rulesThatHadErrors = new HashSet<String>(); // while (iter.hasNext()) { // Object o = (Object) iter.next(); // if (o instanceof Field) { // // Do nothing // } else if (o instanceof Gap) { // rulesThatHadErrors.add(((Gap) o).getFiredRuleName()); // } else if (o instanceof VerifierComponent) { // rulesThatHadErrors.add(((VerifierComponent) o).getRuleName()); // } // // System.out.println(o); // } // // assertTrue(rulesThatHadErrors.remove("> 10.0 covered")); // assertTrue(rulesThatHadErrors.remove("== 50.0 covered")); // assertTrue(rulesThatHadErrors.remove("> 70.0 covered")); // assertTrue(rulesThatHadErrors.remove("< 100.0 covered")); // assertFalse(rulesThatHadErrors.contains("below")); // assertFalse(rulesThatHadErrors.contains("above")); // assertFalse(rulesThatHadErrors.contains("70gap")); // // if (!rulesThatHadErrors.isEmpty()) { // for (String string : rulesThatHadErrors) { // fail("Rule " + string + " caused an error."); // } // } // } // // public void testUselessDoubleGapsGreater() throws Exception { // StatelessSession session = getStatelessSession(this.getClass() // .getResourceAsStream("rangeChecks/Clean.drl")); // // session.setAgendaFilter(new RuleNameMatchesAgendaFilter( // "Remove useless double gaps greater or greater and equal")); // // Collection<Object> testData = new ArrayList<Object>(); // // Field f = new Field(); // testData.add(f); // // // > 10.0 covered // LiteralRestriction lower = new LiteralRestriction(); // lower.setRuleName("> 10.0 covered"); // lower.setFieldId(f.getId()); // lower.setOperator(Operator.GREATER); // lower.setValue("10.0"); // testData.add(lower); // // // == 50.0 covered // LiteralRestriction r1 = new LiteralRestriction(); // r1.setRuleName("== 50.0 covered"); // r1.setFieldId(f.getId()); // r1.setOperator(Operator.EQUAL); // r1.setValue("50.0"); // testData.add(r1); // // // > 50.0 gap // Gap g1 = new Gap(f, Operator.GREATER, r1); // // g1.setFiredRuleName("above"); // testData.add(g1); // // // < 50.0 gap // Gap g2 = new Gap(f, Operator.LESS, r1); // // g2.setFiredRuleName("below"); // testData.add(g2); // // // < 70.0 covered // LiteralRestriction r2 = new LiteralRestriction(); // r2.setRuleName("< 70.0 covered"); // r2.setFieldId(f.getId()); // r2.setOperator(Operator.LESS); // r2.setValue("70.0"); // testData.add(r2); // // // >= 70.0 gap // Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2); // // g3.setFiredRuleName("70gap"); // testData.add(g3); // // // < 100.0 covered // LiteralRestriction higher = new LiteralRestriction(); // higher.setRuleName("< 100.0 covered"); // higher.setFieldId(f.getId()); // higher.setOperator(Operator.LESS); // higher.setValue("100.0"); // testData.add(higher); // // VerifierResult result = VerifierResultFactory.createVerifierResult(); // session.setGlobal("result", result); // // StatelessSessionResult sessionResult = session // .executeWithResults(testData); // // Iterator<Object> iter = sessionResult.iterateObjects(); // // Set<String> rulesThatHadErrors = new HashSet<String>(); // while (iter.hasNext()) { // Object o = (Object) iter.next(); // if (o instanceof Field) { // // Do nothing // } else if (o instanceof Gap) { // rulesThatHadErrors.add(((Gap) o).getFiredRuleName()); // } else if (o instanceof VerifierComponent) { // rulesThatHadErrors.add(((VerifierComponent) o).getRuleName()); // } // // System.out.println(o); // } // // assertTrue(rulesThatHadErrors.remove("> 10.0 covered")); // assertTrue(rulesThatHadErrors.remove("== 50.0 covered")); // assertTrue(rulesThatHadErrors.remove("< 70.0 covered")); // assertTrue(rulesThatHadErrors.remove("< 100.0 covered")); // assertFalse(rulesThatHadErrors.contains("below")); // assertFalse(rulesThatHadErrors.contains("above")); // assertFalse(rulesThatHadErrors.contains("70gap")); // // if (!rulesThatHadErrors.isEmpty()) { // for (String string : rulesThatHadErrors) { // fail("Rule " + string + " caused an error."); // } // } // } // // public void testUselessDateGapsLesser() throws Exception { // StatelessSession session = getStatelessSession(this.getClass() // .getResourceAsStream("rangeChecks/Clean.drl")); // // session.setAgendaFilter(new RuleNameMatchesAgendaFilter( // "Remove useless date gaps lesser or lesser and equal")); // // Collection<Object> testData = new ArrayList<Object>(); // // Field f = new Field(); // testData.add(f); // // // > "01-Oct-2007" covered // LiteralRestriction lower = new LiteralRestriction(); // lower.setRuleName("> 01-Oct-2007 covered"); // lower.setFieldId(f.getId()); // lower.setOperator(Operator.GREATER); // lower.setValue("01-Oct-2007"); // testData.add(lower); // // // == "10-Oct-2007" covered // LiteralRestriction r1 = new LiteralRestriction(); // r1.setRuleName("== 10-Oct-2007 covered"); // r1.setFieldId(f.getId()); // r1.setOperator(Operator.EQUAL); // r1.setValue("10-Oct-2007"); // testData.add(r1); // // // > "10-Oct-2007" gap // Gap g1 = new Gap(f, Operator.GREATER, r1); // g1.setFiredRuleName("above"); // testData.add(g1); // // // < "10-Oct-2007" gap // Gap g2 = new Gap(f, Operator.LESS, r1); // g2.setFiredRuleName("below"); // testData.add(g2); // // // > "15-Oct-2007" covered // LiteralRestriction r2 = new LiteralRestriction(); // r2.setRuleName("> 15-Oct-2007 covered"); // r2.setFieldId(f.getId()); // r2.setOperator(Operator.GREATER); // r2.setValue("15-Oct-2007"); // testData.add(r2); // // // <= "15-Oct-2007" gap // Gap g3 = new Gap(f, Operator.LESS_OR_EQUAL, r2); // g3.setFiredRuleName("15-Oct-2007gap"); // testData.add(g3); // // // < "20-Oct-2007" covered // LiteralRestriction higher = new LiteralRestriction(); // higher.setRuleName("< 20-Oct-2007 covered"); // higher.setFieldId(f.getId()); // higher.setOperator(Operator.LESS); // higher.setValue("20-Oct-2007"); // testData.add(higher); // // VerifierResult result = VerifierResultFactory.createVerifierResult(); // session.setGlobal("result", result); // // StatelessSessionResult sessionResult = session // .executeWithResults(testData); // // Iterator<Object> iter = sessionResult.iterateObjects(); // // Set<String> rulesThatHadErrors = new HashSet<String>(); // while (iter.hasNext()) { // Object o = (Object) iter.next(); // if (o instanceof Field) { // // Do nothing // } else if (o instanceof Gap) { // rulesThatHadErrors.add(((Gap) o).getFiredRuleName()); // } else if (o instanceof VerifierComponent) { // rulesThatHadErrors.add(((VerifierComponent) o).getRuleName()); // } // // System.out.println(o); // } // // assertTrue(rulesThatHadErrors.remove("> 01-Oct-2007 covered")); // assertTrue(rulesThatHadErrors.remove("== 10-Oct-2007 covered")); // assertTrue(rulesThatHadErrors.remove("> 15-Oct-2007 covered")); // assertTrue(rulesThatHadErrors.remove("< 20-Oct-2007 covered")); // assertFalse(rulesThatHadErrors.contains("below")); // assertFalse(rulesThatHadErrors.contains("above")); // assertFalse(rulesThatHadErrors.contains("15-Oct-2007gap")); // // if (!rulesThatHadErrors.isEmpty()) { // for (String string : rulesThatHadErrors) { // fail("Rule " + string + " caused an error."); // } // } // } // // public void testUselessDateGapsGreater() throws Exception { // StatelessSession session = getStatelessSession(this.getClass() // .getResourceAsStream("rangeChecks/Clean.drl")); // // session.setAgendaFilter(new RuleNameMatchesAgendaFilter( // "Remove useless date gaps greater or greater and equal")); // // Collection<Object> testData = new ArrayList<Object>(); // // Field f = new Field(); // testData.add(f); // // // > "01-Oct-2007" covered // LiteralRestriction lower = new LiteralRestriction(); // lower.setRuleName("> 01-Oct-2007 covered"); // lower.setFieldId(f.getId()); // lower.setOperator(Operator.GREATER); // lower.setValue("01-Oct-2007"); // testData.add(lower); // // // == "10-Oct-2007" covered // LiteralRestriction r1 = new LiteralRestriction(); // r1.setRuleName("== 10-Oct-2007 covered"); // r1.setFieldId(f.getId()); // r1.setOperator(Operator.EQUAL); // r1.setValue("10-Oct-2007"); // testData.add(r1); // // // > "10-Oct-2007" gap // Gap g1 = new Gap(f, Operator.GREATER, r1); // g1.setFiredRuleName("above"); // testData.add(g1); // // // < "10-Oct-2007" gap // Gap g2 = new Gap(f, Operator.LESS, r1); // g2.setFiredRuleName("below"); // testData.add(g2); // // // < "15-Oct-2007" covered // LiteralRestriction r2 = new LiteralRestriction(); // r2.setRuleName("< 15-Oct-2007 covered"); // r2.setFieldId(f.getId()); // r2.setOperator(Operator.LESS); // r2.setValue("15-Oct-2007"); // testData.add(r2); // // // >= "15-Oct-2007" gap // Gap g3 = new Gap(f, Operator.GREATER_OR_EQUAL, r2); // g3.setFiredRuleName("15-Oct-2007gap"); // testData.add(g3); // // // < "20-Oct-2007" covered // LiteralRestriction higher = new LiteralRestriction(); // higher.setRuleName("< 20-Oct-2007 covered"); // higher.setFieldId(f.getId()); // higher.setOperator(Operator.LESS); // higher.setValue("20-Oct-2007"); // testData.add(higher); // // VerifierResult result = VerifierResultFactory.createVerifierResult(); // session.setGlobal("result", result); // // StatelessSessionResult sessionResult = session // .executeWithResults(testData); // // Iterator<Object> iter = sessionResult.iterateObjects(); // // Set<String> rulesThatHadErrors = new HashSet<String>(); // while (iter.hasNext()) { // Object o = (Object) iter.next(); // if (o instanceof Field) { // // Do nothing // } else if (o instanceof Gap) { // rulesThatHadErrors.add(((Gap) o).getFiredRuleName()); // } else if (o instanceof VerifierComponent) { // rulesThatHadErrors.add(((VerifierComponent) o).getRuleName()); // } // // System.out.println(o); // } // // assertTrue(rulesThatHadErrors.remove("> 01-Oct-2007 covered")); // assertTrue(rulesThatHadErrors.remove("== 10-Oct-2007 covered")); // assertTrue(rulesThatHadErrors.remove("< 15-Oct-2007 covered")); // assertTrue(rulesThatHadErrors.remove("< 20-Oct-2007 covered")); // assertFalse(rulesThatHadErrors.contains("below")); // assertFalse(rulesThatHadErrors.contains("above")); // assertFalse(rulesThatHadErrors.contains("15-Oct-2007gap")); // // if (!rulesThatHadErrors.isEmpty()) { // for (String string : rulesThatHadErrors) { // fail("Rule " + string + " caused an error."); // } // } // } }