String query = "a = load 'myfile' as (name:Chararray, age:Int, gpa:Float);" +
"b = group a by (name, age);" +
"store b into 'output';";
lp = buildPlan( query );
Operator store = lp.getSinks().get(0);
LOCogroup cogroup = (LOCogroup) lp.getPredecessors(store).get(0);
Schema.FieldSchema nameFs = new Schema.FieldSchema("name", DataType.CHARARRAY);
Schema.FieldSchema ageFs = new Schema.FieldSchema("age", DataType.INTEGER);
Schema.FieldSchema gpaFs = new Schema.FieldSchema("gpa", DataType.FLOAT);
Schema groupSchema = new Schema(nameFs);
groupSchema.add(ageFs);
Schema.FieldSchema groupFs = new Schema.FieldSchema("group", groupSchema, DataType.TUPLE);
Schema loadSchema = new Schema(nameFs);
loadSchema.add(ageFs);
loadSchema.add(gpaFs);
Schema.FieldSchema bagFs = new Schema.FieldSchema("a", loadSchema, DataType.BAG);
Schema cogroupExpectedSchema = new Schema(groupFs);
cogroupExpectedSchema.add(bagFs);
Assert.assertTrue(cogroup.getSchema().toString(false).equals("group:tuple(name:chararray,age:int),a:bag{:tuple(name:chararray,age:int,gpa:float)}"));
}