From: <jbo...@li...> - 2006-06-30 01:43:09
|
Author: tirelli Date: 2006-06-29 21:43:01 -0400 (Thu, 29 Jun 2006) New Revision: 4882 Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Eval.drl Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java Log: Adding integration test for JBRULES-318 Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java =================================================================== --- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-06-30 01:34:49 UTC (rev 4881) +++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-06-30 01:43:01 UTC (rev 4882) @@ -2496,37 +2496,20 @@ public void FIXME_testEval2() throws Exception { final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_Eval.drl" ) ); - WorkingMemoryFileLogger logger = null; - try { - final PackageBuilder builder = new PackageBuilder(); - builder.addPackageFromDrl( reader ); - final Package pkg1 = builder.getPackage(); + final PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( reader ); + final Package pkg1 = builder.getPackage(); - final RuleBase ruleBase = getRuleBase(); - ruleBase.addPackage( pkg1 ); - final WorkingMemory workingMemory = ruleBase.newWorkingMemory(); - -// logger = new WorkingMemoryFileLogger(workingMemory); -// logger.setFileName( "logger.log" ); -// DebugWorkingMemoryEventListener l1 = new DebugWorkingMemoryEventListener(); -// workingMemory.addEventListener( l1 ); -// DebugAgendaEventListener l2 = new DebugAgendaEventListener(); -// workingMemory.addEventListener( l2 ); - - final int MAX = 3; - for (int i=1 ; i<=MAX; i++) { - IndexedNumber n = new IndexedNumber(i, MAX - i + 1); - workingMemory.assertObject(n); - } - workingMemory.fireAllRules(); - - } catch ( RuntimeException e ) { - // TODO Auto-generated catch block - e.printStackTrace(); - } finally { -// logger.writeToDisk(); + final RuleBase ruleBase = getRuleBase(); + ruleBase.addPackage( pkg1 ); + final WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + + final int MAX = 3; + for (int i=1 ; i<=MAX; i++) { + IndexedNumber n = new IndexedNumber(i, MAX - i + 1); + workingMemory.assertObject(n); } - + workingMemory.fireAllRules(); } } Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Eval.drl =================================================================== --- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Eval.drl 2006-06-30 01:34:49 UTC (rev 4881) +++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Eval.drl 2006-06-30 01:43:01 UTC (rev 4882) @@ -0,0 +1,45 @@ +#created on: 12 juin 2006 +package Number + +import org.drools.IndexedNumber; + +rule "Order" +salience 200 + when + #Doesnt work + n1 : IndexedNumber($nb1 : number); + n2 : IndexedNumber(number < $nb1); + eval(n1.getIndex() < n2.getIndex()); + + #Works great + #n1 : IndexedNumber($nb1 : number, $index1 : index); + #n2 : IndexedNumber($nb2 : number -> ($nb2.compareTo($nb1) < 0), index > $index1); + then + System.out.println("Swapping " + n1 + " with " + n2); + check(n1, n2); + swap(n1, n2); + modify(n1); + modify(n2); +end + +rule "Debug" +salience 10 + when + n : IndexedNumber($idx : index); + not IndexedNumber(index < $idx); + then + System.out.println("Number is " + n); + retract(n); +end + +function void check(IndexedNumber n1, IndexedNumber n2) { + if ( ! (n1.getIndex() < n2.getIndex())) { + System.out.println("Shouldn't come here... " + n1 + " " + n2); + } +} + +function void swap(IndexedNumber n1, IndexedNumber n2) { + int tmp = n1.getIndex(); + n1.setIndex(n2.getIndex()); + n2.setIndex(tmp); +} \ No newline at end of file Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_Eval.drl ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native |