@ParameterizedTest(name = "{displayName}({arguments})")
    @ValueSource(classes = {ATestClass.class, ATestSubclass.class})
    public void describesTheSameParameterizedSuitesAsJUnitParamsRunnerIgnoringTestAnnotations(
        Class<?> testClass)
        throws InitializationError {
      Description geodeParamsRunnerClassDescription = new GeodeParamsRunner(testClass)
          .getDescription();

      Collection<ComparableDescription> geodeParamsRunnerSuiteDescriptions =
          geodeParamsRunnerClassDescription.getChildren().stream()
              // Each suite child describes a parameterized test method.
              .filter(Description::isSuite)
              // Ignore annotations on the test descriptions in the suite. Another test verifies
              // those.
              .map(ComparableDescription::ignoringTestAnnotations)
              .collect(toList());

      Description jUnitParamsRunnerClassDescription = new JUnitParamsRunner(testClass)
          .getDescription();
      Collection<ComparableDescription> jUnitParamsRunnerSuiteDescriptions =
          jUnitParamsRunnerClassDescription.getChildren().stream()
              .filter(Description::isSuite)
              .map(ComparableDescription::ignoringTestAnnotations)
              .collect(toList());

      assertThat(geodeParamsRunnerSuiteDescriptions)
          .isEqualTo(jUnitParamsRunnerSuiteDescriptions);
    }
Compares the parameterized test suites produced by {@code GeodeParamsRunner} to those
produced by {@code JUnitParamsRunner}, comparing every detail except the annotations on
the parameterized test descriptions. A separate test verifies those annotations.
geode-junit/src/test/java/org/apache/geode/test/junit/runners/GeodeParamsRunnerTest.java