}
@Test
public void testPigScriptForBagToTupleUDF() throws Exception {
PigServer pigServer = new PigServer(ExecType.LOCAL);
Data data = resetData(pigServer);
// bag of chararray
data.set("foo", "myBag:bag{t:(l:chararray)}",
tuple(bag(tuple("a"), tuple("b"), tuple("c"))));
pigServer.registerQuery("A = LOAD 'foo' USING mock.Storage();");
pigServer.registerQuery("B = FOREACH A GENERATE BagToTuple(myBag) as myBag;");
pigServer.registerQuery("STORE B INTO 'bar' USING mock.Storage();");
assertEquals(schema("myBag:(l:chararray)"), data.getSchema("bar"));
List<Tuple> out = data.get("bar");
assertEquals(tuple("a", "b","c"), out.get(0).get(0));
// bag of longs
data = resetData(pigServer);
data.set("foo", "myBag:bag{t:(l:long)}",
tuple(bag(tuple(1), tuple(2), tuple(3))));
pigServer.registerQuery("A = LOAD 'foo' USING mock.Storage();");
pigServer.registerQuery("B = FOREACH A GENERATE BagToTuple(myBag) as myBag;");
pigServer.registerQuery("STORE B INTO 'bar' USING mock.Storage();");
out = data.get("bar");
assertEquals(tuple(1, 2, 3), out.get(0).get(0));
}