@Test
public void testConstantMixedOneString() {

	// no spaces
	{
		String[] constantFields = {"2,3;0->1,4;4->0"};

		TypeInformation<?> type = new TupleTypeInfo<Tuple5<Integer, Integer, Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
				BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO);
		SingleInputSemanticProperties sp = SemanticPropUtil.getSemanticPropsSingleFromString(constantFields, null, null, type, type);

		FieldSet fs = sp.getForwardedField(0);
		Assert.assertTrue(fs.size() == 2);
		Assert.assertTrue(fs.contains(1));
		Assert.assertTrue(fs.contains(4));

		fs = sp.getForwardedField(2);
		Assert.assertTrue(fs.size() == 1);
		Assert.assertTrue(fs.contains(2));

		fs = sp.getForwardedField(3);
		Assert.assertTrue(fs.size() == 1);
		Assert.assertTrue(fs.contains(3));

		fs = sp.getForwardedField(4);
		Assert.assertTrue(fs.size() == 1);
		Assert.assertTrue(fs.contains(0));
	}
	
	// with spaces
	{
		String[] constantFields = {" 2  ,  3   ;  0 -> 1  , 4 ; 4 ->  0"};

		TypeInformation<?> type = new TupleTypeInfo<Tuple5<Integer, Integer, Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
				BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO);
		SingleInputSemanticProperties sp = SemanticPropUtil.getSemanticPropsSingleFromString(constantFields, null, null, type, type);

		FieldSet fs = sp.getForwardedField(0);
		Assert.assertTrue(fs.size() == 2);
		Assert.assertTrue(fs.contains(1));
		Assert.assertTrue(fs.contains(4));

		fs = sp.getForwardedField(2);
		Assert.assertTrue(fs.size() == 1);
		Assert.assertTrue(fs.contains(2));

		fs = sp.getForwardedField(3);
		Assert.assertTrue(fs.size() == 1);
		Assert.assertTrue(fs.contains(3));

		fs = sp.getForwardedField(4);
		Assert.assertTrue(fs.size() == 1);
		Assert.assertTrue(fs.contains(0));
	}
}