@Parameterized.Parameters
  public static Collection<Object[]> data() {

    Class<?>[] policyClasses = new Class[] { EverythingPolicy.class,
      RatioBasedCompactionPolicy.class, ExploringCompactionPolicy.class, };

    Class<?>[] fileListGenClasses =
      new Class[] { ExplicitFileListGenerator.class, ConstantSizeFileListGenerator.class,
        SemiConstantSizeFileListGenerator.class, GaussianFileListGenerator.class,
        SinusoidalFileListGenerator.class, SpikyFileListGenerator.class };

    int[] maxFileValues = new int[] { 10 };
    int[] minFilesValues = new int[] { 3 };
    float[] ratioValues = new float[] { 1.2f };

    List<Object[]> params = new ArrayList<>(maxFileValues.length * minFilesValues.length
      * fileListGenClasses.length * policyClasses.length);

    for (Class<?> policyClass : policyClasses) {
      for (Class<?> genClass : fileListGenClasses) {
        for (int maxFile : maxFileValues) {
          for (int minFile : minFilesValues) {
            for (float ratio : ratioValues) {
              params.add(new Object[] { policyClass, genClass, maxFile, minFile, ratio });
            }
          }
        }
      }
    }

    return params;
  }
This is not a unit test. It is not run as part of the general unit test suite. It is for
comparing compaction policies. You must run it explicitly; e.g. mvn test
-Dtest=PerfTestCompactionPolicies
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.java