ObjectTypeNode otnC = getObjectTypeNode(kbase, "C" );
BetaNode betaNodeC1 = ( BetaNode ) otnC.getSinkPropagator().getSinks()[0];
BetaNode betaNodeC2 = ( BetaNode ) otnC.getSinkPropagator().getSinks()[1];
LeftInputAdapterNode lia1 = (LeftInputAdapterNode)alphaNode.getSinkPropagator().getSinks()[0];
assertSame(betaNodeC1, lia1.getSinkPropagator().getSinks()[0]);
LeftInputAdapterNode lia2 = (LeftInputAdapterNode)alphaNode.getSinkPropagator().getSinks()[1];
assertSame(betaNodeC2, lia2.getSinkPropagator().getSinks()[0]);
assertEquals( EmptyBitMask.get(), betaNodeC1.getRightDeclaredMask() );
assertEquals( EmptyBitMask.get(), betaNodeC1.getRightInferredMask() );
assertEquals( calculatePositiveMask(list("b"), sp), betaNodeC1.getLeftDeclaredMask() );
assertEquals( calculatePositiveMask(list("a", "b"), sp), betaNodeC1.getLeftInferredMask() );
assertEquals( EmptyBitMask.get(), betaNodeC2.getRightDeclaredMask() );
assertEquals( EmptyBitMask.get(), betaNodeC2.getRightInferredMask() );
assertEquals( calculatePositiveMask(list("c"), sp), betaNodeC2.getLeftDeclaredMask() );
assertEquals( calculatePositiveMask(list("a", "c"), sp), betaNodeC2.getLeftInferredMask() );
kbase.removeRule( "org.drools.compiler.integrationtests", "r0" );
assertEquals( calculatePositiveMask(list("a"), sp), alphaNode.getDeclaredMask( ) );
assertEquals( calculatePositiveMask(list("a", "c"), sp), alphaNode.getInferredMask());
assertEquals( 1, lia2.getSinkPropagator().getSinks().length );
BetaNode betaNodeC = ( BetaNode ) lia2.getSinkPropagator().getSinks()[0];
assertEquals( EmptyBitMask.get(), betaNodeC2.getRightDeclaredMask() );
assertEquals( EmptyBitMask.get(), betaNodeC2.getRightInferredMask() );
assertEquals( calculatePositiveMask(list("c"), sp), betaNodeC2.getLeftDeclaredMask() );
assertEquals( calculatePositiveMask(list("a", "c"), sp), betaNodeC2.getLeftInferredMask() );