@Test
public void testNonForwardedNestedTuple() {

	String[] nonForwardedFields = {"f1.f0.*; f1.f2; f0"};
	SingleInputSemanticProperties sp = new SingleInputSemanticProperties();
	SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, nonForwardedFields, null, deepNestedTupleType, deepNestedTupleType);
	assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
	assertTrue(sp.getForwardingTargetFields(0, 5).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 6).contains(6));
	nonForwardedFields[0] = "f1.f0; f1.f2; f0";
	sp = new SingleInputSemanticProperties();
	SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, nonForwardedFields, null, deepNestedTupleType, deepNestedTupleType);
	assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
	assertTrue(sp.getForwardingTargetFields(0, 5).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 6).contains(6));
	nonForwardedFields[0] = "f2; f1.f1";
	sp = new SingleInputSemanticProperties();
	SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, nonForwardedFields, null, deepNestedTupleType, deepNestedTupleType);
	assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
	assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
	assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
	assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
	assertTrue(sp.getForwardingTargetFields(0, 4).size() == 0);
	assertTrue(sp.getForwardingTargetFields(0, 5).contains(5));
	assertTrue(sp.getForwardingTargetFields(0, 6).size() == 0);
}