[jboss-svn-commits] JBL Code SVN: r30153 - in labs/jbossrules/trunk/drools-core/src/test: resources/org/drools/reteoo/test and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Nov 15 02:43:12 EST 2009


Author: mark.proctor at jboss.com
Date: 2009-11-15 02:43:11 -0500 (Sun, 15 Nov 2009)
New Revision: 30153

Modified:
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngine.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngineTest.java
   labs/jbossrules/trunk/drools-core/src/test/resources/org/drools/reteoo/test/JoinNode.data
Log:
JBRULES-2339 Rete DSL test harness
-updated commented out test for CommandBuilder

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngine.java	2009-11-15 07:18:56 UTC (rev 30152)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngine.java	2009-11-15 07:43:11 UTC (rev 30153)
@@ -322,6 +322,7 @@
 
             for ( String line : lines ) {
                 if ( StringUtils.isEmpty( line ) ) {
+                    lineCount++;
                     continue;
                 }
 

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngineTest.java	2009-11-15 07:18:56 UTC (rev 30152)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/test/ReteDslTestEngineTest.java	2009-11-15 07:43:11 UTC (rev 30153)
@@ -119,57 +119,124 @@
     public void testDslCommandBuilder() {
         InputStream stream = getClass().getResourceAsStream( "JoinNode.data" );
         assertNotNull( stream );
-        DslStep[] step = (DslStep[]) ReteDslTestEngine.buildDslCommands( new InputStreamReader( stream ) ).toArray( new DslStep[0] );
-        //        assertEquals( 10, cmds.length );
+        DslStep[] steps = (DslStep[]) ReteDslTestEngine.buildDslCommands( new InputStreamReader( stream ) ).toArray( new DslStep[0] );
+        assertEquals( 14,
+                      steps.length );
 
-        //        assertEquals( 1, step[0].getLine() );
-        //        assertEquals( "LeftInputAdapter", step[0].getName() );
-        //        assertEquals( "node0", step[0].getCommands().get( 0 ) );
-        //        
-        //        assertEquals( 3, step[1].getLine() );
-        //        assertEquals( "JoinNode", step[1].getName() );
-        //        assertEquals( "node0, node1, ==", step[1].getCommands().get( 0 ) ); 
-        //        
-        //        assertEquals( 5, step[2].getLine() );
-        //        assertEquals( "JoinNode", step[2].getName() );
-        //        assertEquals( "node1, node2, ==", step[2].getCommands().get( 0 ) );  
-        //        
-        //        assertEquals( 7, step[3].getLine() );
-        //        assertEquals( "Facts", step[3].getName() );
-        //        assertEquals( "0, 0, 0, 0", step[3].getCommands().get( 0 ) );  
-        //        
-        //        assertEquals( 9, step[4].getLine() );
-        //        assertEquals( "node1", step[4].getName() );
-        //        assertEquals( "assertObject, h0", step[4].getCommands().get( 0 ) );
-        //        assertEquals( "assertLeftTuple, h1, h2", step[4].getCommands().get( 1 ) );          
-        //        assertEquals( "assertObject, h3, h4", step[4].getCommands().get( 2 ) );          
-        //        assertEquals( "leftMemory, 2,[ [h1], [h2] ]", step[4].getCommands().get( 3 ) );          
-        //        assertEquals( "rightMemory, 3, [ [h0], [h3], [h4] ]", step[4].getCommands().get( 4 ) );          
-        //        
-        //        assertEquals( 15, step[5].getLine() );
-        //        assertEquals( "node2", step[5].getName() );
-        //        assertEquals( "leftMemory, 6, [ [h0, h1], [h0, h2],[h3, h1], [h3, h2],[h4, h1], [h4, h2] ]", step[5].getCommands().get( 0 ) );
-        //        assertEquals( "rightMemory, 0, []", step[5].getCommands().get( 1 ) );
-        //     
-        //        assertEquals( 20, step[6].getLine() );
-        //        assertEquals( "node1", step[6].getName() );
-        //        assertEquals( "retractRightTuple, h0", step[6].getCommands().get( 0 ) );
-        //        assertEquals( "leftMemory, 2, [ [h1], [h2] ]", step[6].getCommands().get( 1 ) );          
-        //        assertEquals( "rightMemory, 2, [ [h3], [h4] ]", step[6].getCommands().get( 2 ) );
-        //        
-        //        assertEquals( 24, step[7].getLine() );
-        //        assertEquals( "node2", step[7].getName() );
-        //        assertEquals( "leftMemory, 4, [ [h3, h1], [h3, h2], [h4, h1], [h4, h2] ]", step[7].getCommands().get( 0 ) );
-        //        
-        //        assertEquals( 26, step[8].getLine() );
-        //        assertEquals( "node1", step[8].getName() );
-        //        assertEquals( "retractLeftTuple, h2", step[8].getCommands().get( 0 ) );
-        //        assertEquals( "leftMemory, 1, [ [h1] ]", step[8].getCommands().get( 1 ) );          
-        //        assertEquals( "rightMemory, 2, [ [h3], [h4] ]", step[8].getCommands().get( 2 ) );        
-        //
-        //        assertEquals( 30, step[9].getLine() );
-        //        assertEquals( "node2", step[9].getName() );
-        //        assertEquals( "leftMemory, 4, [ [h3, h1], [h4, h1] ]", step[9].getCommands().get( 0 ) );        
+        assertEquals( 2,
+                      steps[0].getLine() );
+        assertEquals( "ObjectTypeNode",
+                      steps[0].getName() );
+        assertEquals( "otn1, java.lang.Integer",
+                      steps[0].getCommands().get( 0 ) );
+
+        assertEquals( 4,
+                      steps[1].getLine() );
+        assertEquals( "LeftInputAdapterNode",
+                      steps[1].getName() );
+        assertEquals( "lian0, otn1",
+                      steps[1].getCommands().get( 0 ) );
+
+        assertEquals( 6,
+                      steps[2].getLine() );
+        assertEquals( "ObjectTypeNode",
+                      steps[2].getName() );
+        assertEquals( "otn2, java.lang.Integer",
+                      steps[2].getCommands().get( 0 ) );
+        assertEquals( 8,
+                      steps[3].getLine() );
+        assertEquals( "ObjectTypeNode",
+                      steps[3].getName() );
+        assertEquals( "otn3, java.lang.Integer",
+                      steps[3].getCommands().get( 0 ) );
+
+        assertEquals( 12,
+                      steps[4].getLine() );
+        assertEquals( "Binding",
+                      steps[4].getName() );
+        assertEquals( "p1, 0, java.lang.Integer, intValue",
+                      steps[4].getCommands().get( 0 ) );
+
+        assertEquals( 15,
+                      steps[5].getLine() );
+        assertEquals( "JoinNode",
+                      steps[5].getName() );
+        assertEquals( "join1, lian0, otn2",
+                      steps[5].getCommands().get( 0 ) );
+        assertEquals( "intValue, !=, p1",
+                      steps[5].getCommands().get( 1 ) );
+
+        assertEquals( 18,
+                      steps[6].getLine() );
+        assertEquals( "JoinNode",
+                      steps[6].getName() );
+        assertEquals( "join2, join1, otn3",
+                      steps[6].getCommands().get( 0 ) );
+        assertEquals( "intValue, !=, p1",
+                      steps[6].getCommands().get( 1 ) );
+
+        assertEquals( 23,
+                      steps[7].getLine() );
+        assertEquals( "Facts",
+                      steps[7].getName() );
+        assertEquals( "0, 1, 2, 3, 4",
+                      steps[7].getCommands().get( 0 ) );
+
+        assertEquals( 28,
+                      steps[8].getLine() );
+        assertEquals( "assert",
+                      steps[8].getName() );
+        assertEquals( "otn1 [h1, h3]",
+                      steps[8].getCommands().get( 0 ) );   
+        assertEquals( "otn2 [h0, h2]",
+                      steps[8].getCommands().get( 1 ) ); 
+        assertEquals( "otn3 [h4]",
+                      steps[8].getCommands().get( 2 ) );
+
+        assertEquals( 34,
+                      steps[9].getLine() );
+        assertEquals( "join1",
+                      steps[9].getName() );
+        assertEquals( "leftMemory [[h1], [h3]]",
+                      steps[9].getCommands().get( 0 ) );   
+        assertEquals( "rightMemory [h0, h2]",
+                      steps[9].getCommands().get( 1 ) );              
+        
+        assertEquals( 37,
+                      steps[10].getLine() );
+        assertEquals( "join2",
+                      steps[10].getName() );
+        assertEquals( "leftMemory [[h1, h0], [h3, h0],[h1, h2], [h3, h2]]",
+                      steps[10].getCommands().get( 0 ) );   
+        assertEquals( "rightMemory [h4]",
+                      steps[10].getCommands().get( 1 ) );       
+ 
+        assertEquals( 41,
+                      steps[11].getLine() );
+        assertEquals( "retract",
+                      steps[11].getName() );
+        assertEquals( "otn1 [h1]",
+                      steps[11].getCommands().get( 0 ) );   
+        assertEquals( "otn2 [h2]",
+                      steps[11].getCommands().get( 1 ) );        
+        
+        assertEquals( 44,
+                      steps[12].getLine() );
+        assertEquals( "join1",
+                      steps[12].getName() );
+        assertEquals( "leftMemory [ [h3] ]",
+                      steps[12].getCommands().get( 0 ) );   
+        assertEquals( "rightMemory [h0]",
+                      steps[12].getCommands().get( 1 ) );         
+        
+        assertEquals( 47,
+                      steps[13].getLine() );
+        assertEquals( "join2",
+                      steps[13].getName() );
+        assertEquals( "leftMemory  [[h3, h0]]",
+                      steps[13].getCommands().get( 0 ) );   
+        assertEquals( "rightMemory [h4]",
+                      steps[13].getCommands().get( 1 ) );                  
     }
 
     public void testObjectTypeNodeStep() {
@@ -268,7 +335,7 @@
 
         // assert tuple, should add left memory should be 2
         final DefaultFactHandle f1 = new DefaultFactHandle( 1,
-                                                            0);
+                                                            0 );
         final LeftTuple tuple1 = new LeftTuple( f1,
                                                 join1,
                                                 true );
@@ -284,7 +351,7 @@
         assertEquals( tuple1,
                       leftTuple.getNext() );
     }
-    
+
     public void testFactsStep() {
         String str = "Facts\n";
         str += "    1, 2, 'hello'\n";
@@ -297,19 +364,25 @@
 
         WorkingMemory wm = (WorkingMemory) map.get( "WorkingMemory" );
         List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );
-        
+
         assertNotNull( wm );
         assertNotNull( handles );
-        
-        assertEquals( 5, handles.size() );
-        
-        assertEquals( 1, handles.get( 0 ).getObject() );
-        assertEquals( 2, handles.get( 1 ).getObject() );
-        assertEquals( "hello", handles.get( 2 ).getObject() );
-        assertEquals( "good bye", handles.get( 3 ).getObject() );
-        assertEquals( new ArrayList<FactHandle>(), handles.get( 4 ).getObject() );
-    }    
-    
+
+        assertEquals( 5,
+                      handles.size() );
+
+        assertEquals( 1,
+                      handles.get( 0 ).getObject() );
+        assertEquals( 2,
+                      handles.get( 1 ).getObject() );
+        assertEquals( "hello",
+                      handles.get( 2 ).getObject() );
+        assertEquals( "good bye",
+                      handles.get( 3 ).getObject() );
+        assertEquals( new ArrayList<FactHandle>(),
+                      handles.get( 4 ).getObject() );
+    }
+
     public void testBetaNodeAssertOperations() {
         String str = "ObjectTypeNode\n";
         str += "    otn1, java.lang.Integer\n";
@@ -327,26 +400,25 @@
         str += "assert\n";
         str += "    otn2 [h0, h2]\n";
         str += "    otn1 [h1, h3]\n";
-        
-        
+
         List<DslStep> steps = ReteDslTestEngine.buildDslCommands( new StringReader( str ) );
 
         ReteDslTestEngine tester = new ReteDslTestEngine();
         Map<String, Object> map = tester.run( steps );
 
         InternalWorkingMemory wm = (InternalWorkingMemory) map.get( "WorkingMemory" );
-        List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );       
-        
+        List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );
+
         JoinNode join1 = (JoinNode) map.get( "join1" );
-        
+
         BetaMemory memory = (BetaMemory) wm.getNodeMemory( join1 );
         assertEquals( 2,
                       memory.getRightTupleMemory().size() );
-        
+
         assertEquals( 2,
-                      memory.getLeftTupleMemory().size() );        
+                      memory.getLeftTupleMemory().size() );
     }
-    
+
     public void testBetaNodeRetractOperations() {
         String str = "ObjectTypeNode\n";
         str += "    otn1, java.lang.Integer\n";
@@ -362,31 +434,30 @@
         str += "Facts\n";
         str += "    0, 1, 2, 3\n";
         str += "assert\n";
-        str += "    otn1 [h1, h3]\n";        
+        str += "    otn1 [h1, h3]\n";
         str += "    otn2 [h0, h2]\n";
         str += "retract\n";
-        str += "    otn1 [h1]\n";                
+        str += "    otn1 [h1]\n";
         str += "    otn2 [h2]\n";
-        
-        
+
         List<DslStep> steps = ReteDslTestEngine.buildDslCommands( new StringReader( str ) );
 
         ReteDslTestEngine tester = new ReteDslTestEngine();
         Map<String, Object> map = tester.run( steps );
 
         InternalWorkingMemory wm = (InternalWorkingMemory) map.get( "WorkingMemory" );
-        List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );       
-        
+        List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );
+
         JoinNode join1 = (JoinNode) map.get( "join1" );
-        
+
         BetaMemory memory = (BetaMemory) wm.getNodeMemory( join1 );
         assertEquals( 1,
                       memory.getRightTupleMemory().size() );
-        
+
         assertEquals( 1,
-                      memory.getLeftTupleMemory().size() );        
-    }    
-    
+                      memory.getLeftTupleMemory().size() );
+    }
+
     public void testBetaNodeSimpleMemoryChecks() {
         String str = "ObjectTypeNode\n";
         str += "    otn1, java.lang.Integer\n";
@@ -402,37 +473,36 @@
         str += "Facts\n";
         str += "    0, 1, 2, 3\n";
         str += "assert\n";
-        str += "    otn1 [h1, h3]\n";        
+        str += "    otn1 [h1, h3]\n";
         str += "    otn2 [h0, h2]\n";
         str += "join1\n";
         str += "    leftMemory [[h1], [h3]]\n";
         str += "    rightMemory [h0, h2]\n";
         str += "retract\n";
-        str += "    otn1 [h1]\n";        
-        str += "    otn2 [h2]\n";; 
+        str += "    otn1 [h1]\n";
+        str += "    otn2 [h2]\n";;
         str += "join1\n";
         str += "    leftMemory [ [h3] ]\n";
-        str += "    rightMemory [h0]\n";      
-        
-        
+        str += "    rightMemory [h0]\n";
+
         List<DslStep> steps = ReteDslTestEngine.buildDslCommands( new StringReader( str ) );
 
         ReteDslTestEngine tester = new ReteDslTestEngine();
         Map<String, Object> map = tester.run( steps );
 
         InternalWorkingMemory wm = (InternalWorkingMemory) map.get( "WorkingMemory" );
-        List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );       
-        
+        List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );
+
         JoinNode join1 = (JoinNode) map.get( "join1" );
-        
+
         BetaMemory memory = (BetaMemory) wm.getNodeMemory( join1 );
         assertEquals( 1,
                       memory.getRightTupleMemory().size() );
-        
+
         assertEquals( 1,
-                      memory.getLeftTupleMemory().size() );        
-    }     
-    
+                      memory.getLeftTupleMemory().size() );
+    }
+
     public void testBetaNodeChainedMemoryChecks() {
         String str = "ObjectTypeNode\n";
         str += "    otn1, java.lang.Integer\n";
@@ -441,7 +511,7 @@
         str += "ObjectTypeNode\n";
         str += "    otn2, java.lang.Integer\n";
         str += "ObjectTypeNode\n";
-        str += "    otn3, java.lang.Integer\n";        
+        str += "    otn3, java.lang.Integer\n";
         str += "Binding\n";
         str += "     p1, 0, java.lang.Integer, intValue\n";
         str += "JoinNode\n";
@@ -449,48 +519,47 @@
         str += "    intValue, !=, p1\n";
         str += "JoinNode\n";
         str += "    join2, join1, otn3\n";
-        str += "    intValue, !=, p1\n";        
+        str += "    intValue, !=, p1\n";
         str += "Facts\n";
         str += "    0, 1, 2, 3, 4\n";
         str += "assert\n";
-        str += "    otn1 [h1, h3]\n";        
+        str += "    otn1 [h1, h3]\n";
         str += "    otn2 [h0, h2]\n";
-        str += "    otn3 [h4]\n";        
+        str += "    otn3 [h4]\n";
         str += "join1\n";
         str += "    leftMemory [[h1], [h3]]\n";
         str += "    rightMemory [h0, h2]\n";
         str += "join2\n";
         str += "    leftMemory [[h1, h0], [h3, h0],\n";
         str += "                [h1, h2], [h3, h2]]\n";
-        str += "    rightMemory [h4]\n";        
+        str += "    rightMemory [h4]\n";
         str += "retract\n";
-        str += "    otn1 [h1]\n";        
-        str += "    otn2 [h2]\n";; 
+        str += "    otn1 [h1]\n";
+        str += "    otn2 [h2]\n";;
         str += "join1\n";
         str += "    leftMemory [ [h3] ]\n";
-        str += "    rightMemory [h0]\n";      
+        str += "    rightMemory [h0]\n";
         str += "join2\n";
         str += "    leftMemory  [[h3, h0]]\n";
-        str += "    rightMemory [h4]\n";         
-        
-        
+        str += "    rightMemory [h4]\n";
+
         List<DslStep> steps = ReteDslTestEngine.buildDslCommands( new StringReader( str ) );
 
         ReteDslTestEngine tester = new ReteDslTestEngine();
         Map<String, Object> map = tester.run( steps );
 
         InternalWorkingMemory wm = (InternalWorkingMemory) map.get( "WorkingMemory" );
-        List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );       
-        
+        List<InternalFactHandle> handles = (List<InternalFactHandle>) map.get( "Handles" );
+
         JoinNode join1 = (JoinNode) map.get( "join1" );
-        
+
         BetaMemory memory = (BetaMemory) wm.getNodeMemory( join1 );
         assertEquals( 1,
                       memory.getRightTupleMemory().size() );
-        
+
         assertEquals( 1,
-                      memory.getLeftTupleMemory().size() );        
-    }       
+                      memory.getLeftTupleMemory().size() );
+    }
 
     private void print(DslStep[] steps) {
         for ( DslStep command : steps ) {

Modified: labs/jbossrules/trunk/drools-core/src/test/resources/org/drools/reteoo/test/JoinNode.data
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/resources/org/drools/reteoo/test/JoinNode.data	2009-11-15 07:18:56 UTC (rev 30152)
+++ labs/jbossrules/trunk/drools-core/src/test/resources/org/drools/reteoo/test/JoinNode.data	2009-11-15 07:43:11 UTC (rev 30153)
@@ -1,38 +1,49 @@
+// setup the nodes
 ObjectTypeNode
-    otn1, java.lang.Integer
+   otn1, java.lang.Integer
 LeftInputAdapterNode
-    lian0, otn1
+   lian0, otn1
 ObjectTypeNode
-    otn2, java.lang.Integer
+   otn2, java.lang.Integer
 ObjectTypeNode
-    otn3, java.lang.Integer        
+   otn3, java.lang.Integer       
+
+// creating a binding to be used in the JoinNode creation
 Binding
-     p1, 0, java.lang.Integer, intValue
+    p1, 0, java.lang.Integer, intValue
+
 JoinNode
-    join1, lian0, otn2
-    intValue, !=, p1
+   join1, lian0, otn2
+   intValue, !=, p1
 JoinNode
-    join2, join1, otn3
-    intValue, !=, p1        
+   join2, join1, otn3
+   intValue, !=, p1
+
+//insert some facts, this returns and stores an array called "h"      
 Facts
-    0, 1, 2, 3, 4
+   0, 1, 2, 3, 4
+
+// h\d+ is used for compactness (not too many brackets) but is internally rewritten
+// as h[\d+] and evaluated with MVEL against a "h"
 assert
-    otn1 [h1, h3]        
-    otn2 [h0, h2]
-    otn3 [h4]        
+   otn1 [h1, h3]       
+   otn2 [h0, h2]
+   otn3 [h4] 
+
+// we can now test some memories, memory order is deterministic     
 join1
-    leftMemory [[h1], [h3]]
-    rightMemory [h0, h2]
+   leftMemory [[h1], [h3]] // matches with only one fact
+   rightMemory [h0, h2]
 join2
-    leftMemory [[h1, h0], [h3, h0],
-                [h1, h2], [h3, h2]]
-    rightMemory [h4]        
+   leftMemory [[h1, h0], [h3, h0],
+               [h1, h2], [h3, h2]] // matches with two chained facts
+   rightMemory [h4]       
 retract
-    otn1 [h1]        
-    otn2 [h2]; 
+   otn1 [h1]       
+   otn2 [h2]
 join1
-    leftMemory [ [h3] ]
-    rightMemory [h0]      
+   leftMemory [ [h3] ]
+   rightMemory [h0]     
 join2
-    leftMemory  [[h3, h0]]
-    rightMemory [h4]  
\ No newline at end of file
+   leftMemory  [[h3, h0]]
+   rightMemory [h4] 
\ No newline at end of file



More information about the jboss-svn-commits mailing list