private void verifySplitPointScenario(int splitPointAfter, boolean shouldSplitStripe,
    float splitRatioToVerify, int... sizes) throws Exception {
    assertTrue(sizes.length > 1);
    ArrayList<HStoreFile> sfs = new ArrayList<>();
    for (int sizeIx = 0; sizeIx < sizes.length; ++sizeIx) {
      byte[] startKey = (sizeIx == 0) ? OPEN_KEY : Bytes.toBytes(sizeIx - 1);
      byte[] endKey = (sizeIx == sizes.length - 1) ? OPEN_KEY : Bytes.toBytes(sizeIx);
      MockHStoreFile sf = createFile(sizes[sizeIx], 0, startKey, endKey);
      sf.splitPoint = Bytes.toBytes(-sizeIx); // set split point to the negative index
      sfs.add(sf);
    }

    Configuration conf = HBaseConfiguration.create();
    if (splitRatioToVerify != 0) {
      conf.setFloat(StripeStoreConfig.MAX_REGION_SPLIT_IMBALANCE_KEY, splitRatioToVerify);
    }
    StripeStoreFileManager manager = createManager(al(), conf);
    manager.addCompactionResults(al(), sfs);
    int result = Bytes.toInt(manager.getSplitPoint().get());
    // Either end key and thus positive index, or "middle" of the file and thus negative index.
    assertEquals(splitPointAfter * (shouldSplitStripe ? -1 : 1), result);
  }
Verifies scenario for finding a split point.
@param splitPointAfter    Stripe to expect the split point at/after.
@param shouldSplitStripe  If true, the split point is expected in the middle of the above
                          stripe; if false, should be at the end.
@param splitRatioToVerify Maximum split imbalance ratio.
@param sizes              Stripe sizes.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStripeStoreFileManager.java