private static BetaMemory createSegmentMemory(BetaNode node, InternalWorkingMemory wm) { BetaMemory betaMemory = (BetaMemory) wm.getNodeMemory( node ); if ( betaMemory.getSegmentMemory() == null ) { SegmentUtilities.createSegmentMemory( node, wm ); } return betaMemory; }
private static BetaMemory createSegmentMemory(BetaNode node, InternalWorkingMemory wm) { BetaMemory betaMemory = (BetaMemory) wm.getNodeMemory( node ); if ( betaMemory.getSegmentMemory() == null ) { SegmentUtilities.createSegmentMemory( node, wm ); } return betaMemory; }
@Test public void testAllLinkedInWithJoinNodesOnly() { setUp( JOIN_NODE ); assertEquals( JoinNode.class, n3.getClass() ); // make sure it created JoinNodes KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(kconf); StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); DefaultFactHandle f1 = (DefaultFactHandle) ksession.insert( "test1" ); n3.assertObject( f1, context, ksession ); BetaMemory bm = (BetaMemory) ksession.getNodeMemory( n3 ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); n4.assertObject( f1, context, ksession ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); n5.assertObject( f1, context, ksession ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); n6.assertObject( f1, context, ksession ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); // only after all 4 nodes are populated, is the segment linked in }
@Test public void testAllLinkedInWithExistsNodesOnly() { setUp( EXISTS_NODE ); assertEquals( ExistsNode.class, n3.getClass() ); // make sure it created ExistsNodes KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(kconf); StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); DefaultFactHandle f1 = (DefaultFactHandle) ksession.insert( "test1" ); n3.assertObject( f1, context, ksession ); BetaMemory bm = (BetaMemory) ksession.getNodeMemory( n3 ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); n4.assertObject( f1, context, ksession ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); n5.assertObject( f1, context, ksession ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); n6.assertObject( f1, context, ksession ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); // only after all 4 nodes are populated, is the segment linked in }
BetaNode beta = (BetaNode)alpha.getObjectSinkPropagator().getSinks()[0]; BetaMemory memory = (BetaMemory) wm.getNodeMemory(beta); memory.getSegmentMemory();
@Test public void testAllLinkedInWithNotNodesOnly() { setUp( NOT_NODE ); assertEquals( NotNode.class, n3.getClass() ); // make sure it created NotNodes KieBaseConfiguration kconf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(kconf); StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); BetaMemory bm = (BetaMemory) ksession.getNodeMemory( n3 ); createSegmentMemory( n3, ksession ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); // not nodes start off linked DefaultFactHandle f1 = (DefaultFactHandle) ksession.insert( "test1" ); // unlinked after first assertion n3.assertObject( f1, context, ksession ); // this doesn't unlink on the assertObject, as the node's memory must be processed. So use the helper method the main network evaluator uses. PhreakNotNode.unlinkNotNodeOnRightInsert( (NotNode) n3, bm, ksession ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); n3.retractRightTuple( f1.getFirstRightTuple(), context, ksession ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); //assertFalse( bm.getSegmentMemory().isSigmentLinked() ); // check retraction unlinks again }
assertSame( sm.getFirst(), b1Mem.getSegmentMemory()); assertEquals( 3, b1Mem.getLeftTupleMemory().size() ); assertEquals( 1, b1Mem.getRightTupleMemory().size() ); assertSame( b2Smem, b2Mem.getSegmentMemory()); assertEquals( 3, b2Mem.getLeftTupleMemory().size() ); assertEquals( 1, b2Mem.getRightTupleMemory().size() ); assertSame( b1Mem.getSegmentMemory(), c1Mem.getSegmentMemory() ); assertNotSame(b1Mem.getSegmentMemory(), b2Mem.getSegmentMemory()); assertEquals( 12, countNodeMemories(wm.getNodeMemories())); assertSame( sm, b1Mem.getSegmentMemory()); assertSame( sm, c1Mem.getSegmentMemory()); assertNull(sm.getFirst()); assertEquals( 3, b1Mem.getLeftTupleMemory().size() ); assertSame( b2Smem, b2Mem.getSegmentMemory());
assertSame( sm.getFirst(), c1Mem.getSegmentMemory()); assertEquals( 3, c1Mem.getLeftTupleMemory().size() ); assertEquals( 1, c1Mem.getRightTupleMemory().size() ); assertSame( c2Smem, c2Mem.getSegmentMemory()); assertEquals( 3, c2Mem.getLeftTupleMemory().size() ); assertEquals( 1, c2Mem.getRightTupleMemory().size() ); assertSame( sm, c1Mem.getSegmentMemory()); // c1SMem repoints back to original Smem
assertNull(bm.getSegmentMemory()); // check lazy initialization wm.insert(new D()); wm.flushPropagations(); assertEquals(2, bm.getSegmentMemory().getAllLinkedMaskTest()); // only D can be linked in
assertSame( sm.getFirst(), c1Mem.getSegmentMemory()); assertEquals( 3, c1Mem.getLeftTupleMemory().size() ); assertEquals( 1, c1Mem.getRightTupleMemory().size() ); assertSame( c2Smem, c2Mem.getSegmentMemory()); assertEquals( 3, c2Mem.getLeftTupleMemory().size() ); assertEquals( 1, c2Mem.getRightTupleMemory().size() ); assertSame( sm, c1Mem.getSegmentMemory()); // c1SMem repoints back to original Smem
SegmentMemory sm = bm.getSegmentMemory(); assertNotNull( sm.getStagedLeftTuples().getInsertFirst() ); assertNotNull( sm.getStagedLeftTuples().getInsertFirst().getStagedNext() );
public Scenario run() { previousResultTuples = bm.getSegmentMemory().getFirst().getStagedLeftTuples(); actualResultLeftTuples = new TupleSetsImpl<LeftTuple>(); SegmentMemory smem = bm.getSegmentMemory(); SegmentPropagator.propagate(smem, actualResultLeftTuples, wm); if ( testLeftMemory ) {
assertFalse( bm.getSegmentMemory().isSegmentLinked() ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); assertTrue( bm.getSegmentMemory().isSegmentLinked() );
assertFalse( bm.getSegmentMemory().isSegmentLinked() ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); assertFalse( bm.getSegmentMemory().isSegmentLinked() ); assertTrue( bm.getSegmentMemory().isSegmentLinked() ); assertTrue( bm.getSegmentMemory().isSegmentLinked() );
assertEquals( 3, bm1.getSegmentMemory().getAllLinkedMaskTest() ); assertEquals( 3, bm1.getSegmentMemory().getAllLinkedMaskTest() );
assertNull( bm.getSegmentMemory() ); assertNull( bm.getSegmentMemory() ); assertNull( bm.getSegmentMemory() ); assertEquals( 1, bm.getSegmentMemory().getAllLinkedMaskTest() );
assertSame( sm.getFirst(), c1Mem.getSegmentMemory()); assertEquals( 3, c1Mem.getLeftTupleMemory().size() ); assertEquals( 1, c1Mem.getRightTupleMemory().size() ); assertSame( c2Smem, c2Mem.getSegmentMemory()); assertEquals( 0, c2Mem.getLeftTupleMemory().size() ); assertEquals( 0, c2Mem.getRightTupleMemory().size() );
SegmentMemory bNodeSmem = bNodeBm.getSegmentMemory(); assertEquals( 0, bNodeSmem.getAllLinkedMaskTest() ); // no beta nodes before branch CE, so never unlinks assertEquals( 2, bNodeSmem.getLinkedNodeMask() ); SegmentMemory cNodeSmem = cNodeBm.getSegmentMemory();
assertEquals( bm.getSegmentMemory(), smem.getNext() );
assertEquals( 3, bm1.getSegmentMemory().getAllLinkedMaskTest() );