@Test
public void testStatsSplitPolicy() {
SplitOnLeadingVarCharColumnsPolicy policy = new SystemStatsSplitPolicy();
byte[] splitOn;
byte[] rowKey;
byte[] table;
ImmutableBytesWritable family;
table = PVarchar.INSTANCE.toBytes("FOO.BAR");
family = QueryConstants.DEFAULT_COLUMN_FAMILY_BYTES_PTR;
rowKey = ByteUtil.concat(
PLong.INSTANCE.toBytes(20L),
PVarchar.INSTANCE.toBytes("BAS"),
QueryConstants.SEPARATOR_BYTE_ARRAY,
PInteger.INSTANCE.toBytes(100));
splitOn = StatisticsUtil.getRowKey(table, family, rowKey);
splitOn = policy.getSplitPoint(splitOn);
assertArrayEquals(ByteUtil.concat(table, QueryConstants.SEPARATOR_BYTE_ARRAY), splitOn);
table = PVarchar.INSTANCE.toBytes("MY_TABLE");
family = new ImmutableBytesWritable(Bytes.toBytes("ABC"));
rowKey = ByteUtil.concat(
PVarchar.INSTANCE.toBytes("BAS"),
QueryConstants.SEPARATOR_BYTE_ARRAY,
PInteger.INSTANCE.toBytes(100),
PLong.INSTANCE.toBytes(20L));
splitOn = StatisticsUtil.getRowKey(table, family, rowKey);
splitOn = policy.getSplitPoint(splitOn);
assertArrayEquals(ByteUtil.concat(table, QueryConstants.SEPARATOR_BYTE_ARRAY), splitOn);
}