assertEquals("Cheese", ((FactPattern)rm.lhs[1]).factType);
assertEquals("c", ((FactPattern)rm.lhs[1]).boundName);
//examine the first pattern
FactPattern person = (FactPattern) rm.lhs[0];
assertEquals(3, person.constraintList.constraints.length);
SingleFieldConstraint cons = (SingleFieldConstraint) person.constraintList.constraints[0];
assertEquals(ISingleFieldConstraint.TYPE_LITERAL, cons.constraintValueType);
assertEquals("name", cons.fieldName);
assertEquals("==", cons.operator);
assertEquals("mike", cons.value);
cons = (SingleFieldConstraint) person.constraintList.constraints[1];
assertEquals(ISingleFieldConstraint.TYPE_RET_VALUE, cons.constraintValueType);
assertEquals("age", cons.fieldName);
assertEquals("<", cons.operator);
assertEquals("33 + 1", cons.value);
cons = (SingleFieldConstraint) person.constraintList.constraints[2];
assertEquals(ISingleFieldConstraint.TYPE_PREDICATE, cons.constraintValueType);
assertEquals("age > 6", cons.value);
//examine the second pattern
FactPattern cheese = (FactPattern) rm.lhs[1];
assertEquals(1, cheese.constraintList.constraints.length);
cons = (SingleFieldConstraint) cheese.constraintList.constraints[0];
assertEquals("type", cons.fieldName);
assertEquals("==", cons.operator);
assertEquals("stilton", cons.value);