}
@Test
public void testRange() throws Exception {
RangeBasedStringConcat rbsc = new RangeBasedStringConcat("0,1", " ");
Tuple input = new DefaultTuple();
for (String field : fields) {
input.append(field);
}
String result = rbsc.exec(input);
assertEquals("a b", result);
rbsc = new RangeBasedStringConcat("2,6", " ");
result = rbsc.exec(input);
assertEquals("c g", result);
//test out of range
rbsc = new RangeBasedStringConcat("0,9,1000", " ");
result = rbsc.exec(input);
assertEquals("a", result);
Tuple innerTuple = new DefaultTuple();
innerTuple.append("j");
innerTuple.append("k");
input.append(innerTuple);
rbsc = new RangeBasedStringConcat("0,9", " ");
result = rbsc.exec(input);
assertEquals("a j k", result);
DataBag db = new DefaultDataBag();
Tuple dbTuple = new DefaultTuple();
dbTuple.append("l");
dbTuple.append("m");
db.add(dbTuple);
innerTuple.append(db);
rbsc = new RangeBasedStringConcat("0,9,10", " ");
result = rbsc.exec(input);
assertEquals("a j k l m", result);