private void testPriorityScenario(int expectedPriority, int limit, int stripes, int filesInStripe,
    int l0Files) throws Exception {
    final byte[][] keys = { KEY_A, KEY_B, KEY_C, KEY_D };
    assertTrue(stripes <= keys.length + 1);
    Configuration conf = TEST_UTIL.getConfiguration();
    conf.setInt("hbase.hstore.blockingStoreFiles", limit);
    StripeStoreFileManager sfm = createManager(al(), conf);
    for (int i = 0; i < l0Files; ++i) {
      sfm.insertNewFiles(al(createFile()));
    }
    for (int i = 0; i < filesInStripe; ++i) {
      ArrayList<HStoreFile> stripe = new ArrayList<>();
      for (int j = 0; j < stripes; ++j) {
        stripe.add(
          createFile((j == 0) ? OPEN_KEY : keys[j - 1], (j == stripes - 1) ? OPEN_KEY : keys[j]));
      }
      sfm.addCompactionResults(al(), stripe);
    }
    assertEquals(expectedPriority, sfm.getStoreCompactionPriority());
  }
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