public void testReadMapOfRecord1() throws IOException, ParseException {
String projection2 = new String("m1#{b}, m4#{a4|c4}");
BasicTable.Reader reader = new BasicTable.Reader(path, conf);
reader.setProjection(projection2);
List<RangeSplit> splits = reader.rangeSplit(1);
TableScanner scanner = reader.getScanner(splits.get(0), true);
BytesWritable key = new BytesWritable();
Tuple RowValue = TypesUtils.createTuple(scanner.getSchema());
scanner.getKey(key);
Assert.assertEquals(key, new BytesWritable("k11".getBytes()));
scanner.getValue(RowValue);
Assert.assertEquals("B", ((Map) RowValue.get(0)).get("b"));
System.out.println(RowValue.get(1).toString());
Assert.assertEquals(11, ((Tuple) ((Map) ((Map) RowValue.get(1)).get("a4"))
.get("ma4")).get(0));
Assert.assertEquals("record row 1.1", ((Tuple) ((Map) ((Map) RowValue
.get(1)).get("a4")).get("ma4")).get(1));
Assert.assertEquals(12, ((Tuple) ((Map) ((Map) RowValue.get(1)).get("a4"))
.get("mb4")).get(0));
Assert.assertEquals("record row 1.2", ((Tuple) ((Map) ((Map) RowValue
.get(1)).get("a4")).get("mb4")).get(1));
Assert.assertEquals(13, ((Tuple) ((Map) ((Map) RowValue.get(1)).get("a4"))
.get("mc4")).get(0));
Assert.assertEquals("record row 1.3", ((Tuple) ((Map) ((Map) RowValue
.get(1)).get("a4")).get("mc4")).get(1));
Assert.assertEquals(13, ((Tuple) ((Map) ((Map) RowValue.get(1)).get("c4"))
.get("ma43")).get(0));
Assert.assertEquals("record row 1.3", ((Tuple) ((Map) ((Map) RowValue
.get(1)).get("c4")).get("ma43")).get(1));
Assert.assertEquals(null, (((Map) ((Map) RowValue.get(1)).get("c4"))
.get("mc4")));
Assert.assertEquals(null, (((Map) ((Map) RowValue.get(1)).get("c4"))
.get("mb4")));
scanner.advance();
scanner.getKey(key);
Assert.assertEquals(key, new BytesWritable("k12".getBytes()));
scanner.getValue(RowValue);
System.out.println(RowValue.get(1).toString());
Assert.assertEquals(21, ((Tuple) ((Map) ((Map) RowValue.get(1)).get("a4"))
.get("ma4")).get(0));
Assert.assertEquals("record row 2.1", ((Tuple) ((Map) ((Map) RowValue
.get(1)).get("a4")).get("ma4")).get(1));