RuleTerminalNode rtn1 = getRtn( "r1", kbase1 );
RuleTerminalNode rtn2 = getRtn( "r2", kbase1 );
RuleTerminalNode rtn3 = getRtn( "r3", kbase1 );
RuleTerminalNode rtn4 = getRtn( "r4", kbase1 );
PathMemory pm1 = (PathMemory) wm.getNodeMemory(rtn1);
SegmentMemory[] smems = pm1.getSegmentMemories();
assertEquals(4, smems.length);
assertNull( smems[0]);
assertNull( smems[2]);
assertNull( smems[3]);
SegmentMemory sm = smems[1];
assertEquals( 1, sm.getPos() );
assertEquals( 2, sm.getSegmentPosMaskBit() );
assertEquals( 2, pm1.getLinkedSegmentMask() );
PathMemory pm3 = (PathMemory) wm.getNodeMemory(rtn3);
SegmentMemory[] smemsP3 = pm3.getSegmentMemories();
assertEquals(3, smemsP3.length);
assertNull( smemsP3[0]);
assertNull( smemsP3[2]);
sm = smems[1];
assertEquals( 1, sm.getPos() );
assertEquals( 2, sm.getSegmentPosMaskBit() );
assertEquals( 2, pm1.getLinkedSegmentMask() );
kbase1.addKnowledgePackages( buildKnowledgePackage("r5", " A(1;) A(2;) B(1;) B(2;) \n") );
smems = pm1.getSegmentMemories();
assertEquals(5, smems.length);
assertNull( smems[0]);
assertNull( smems[1]);
assertNull( smems[3]);
assertNull( smems[4]);
sm = smems[2];
assertEquals( 2, sm.getPos() );
assertEquals( 4, sm.getSegmentPosMaskBit() );
assertEquals( 4, pm1.getLinkedSegmentMask() );
smems = pm3.getSegmentMemories();
assertEquals(4, smems.length);
assertNull( smems[0]);
assertNull( smems[1]);
assertNull( smems[3]);
sm = smems[2];
assertEquals( 2, sm.getPos() );
assertEquals( 4, sm.getSegmentPosMaskBit() );
assertEquals( 4, pm1.getLinkedSegmentMask() );
RuleTerminalNode rtn5 = getRtn( "r5", kbase1 );
PathMemory pm5 = (PathMemory) wm.getNodeMemory(rtn5);
smems = pm5.getSegmentMemories();
assertEquals(2, smems.length);
assertNull( smems[0]);
assertNull( smems[1]);
}