protected void testAutobalanceNumOfSplit() throws IOException {
    // set up splits for testing
    List<InputSplit> splits = new ArrayList<>(5);
    int[] regionLen = { 10, 20, 20, 40, 60 };
    for (int i = 0; i < 5; i++) {
      InputSplit split = new TableSplit(TABLE_NAME, new Scan(), Bytes.toBytes(i),
        Bytes.toBytes(i + 1), "", "", regionLen[i] * 1048576);
      splits.add(split);
    }
    TableInputFormat tif = new TableInputFormat();
    List<InputSplit> res = tif.calculateAutoBalancedSplits(splits, 1073741824);

    assertEquals("Saw the wrong number of splits", 5, res.size());
    TableSplit ts1 = (TableSplit) res.get(0);
    assertEquals("The first split end key should be", 2, Bytes.toInt(ts1.getEndRow()));
    TableSplit ts2 = (TableSplit) res.get(1);
    assertEquals("The second split regionsize should be", 20 * 1048576, ts2.getLength());
    TableSplit ts3 = (TableSplit) res.get(2);
    assertEquals("The third split start key should be", 3, Bytes.toInt(ts3.getStartRow()));
    TableSplit ts4 = (TableSplit) res.get(4);
    assertNotEquals("The seventh split start key should not be", 4, Bytes.toInt(ts4.getStartRow()));
  }
Run MR job to test autobalance for setting number of mappers for TIF This does not run real MR
job
hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatScanBase.java