/** * Requires at least 3 elements in {@code strictlyOrderedElements} in order to test the varargs * version of min/max. */ private static <T> void testExhaustively( Ordering<? super T> ordering, T... strictlyOrderedElements) { checkArgument( strictlyOrderedElements.length >= 3, "strictlyOrderedElements " + "requires at least 3 elements"); List<T> list = Arrays.asList(strictlyOrderedElements); // for use calling Collection.toArray later T[] emptyArray = Platform.newArray(strictlyOrderedElements, 0); // shoot me, but I didn't want to deal with wildcards through the whole test @SuppressWarnings("unchecked") Scenario<T> starter = new Scenario<>((Ordering) ordering, list, emptyArray); verifyScenario(starter, 0); }
private static <T> void verifyScenario(Scenario<T> scenario, int level) { scenario.testCompareTo(); scenario.testIsOrdered(); scenario.testMinAndMax(); scenario.testBinarySearch(); scenario.testSortedCopy(); if (level < RECURSE_DEPTH) { for (OrderingMutation alteration : OrderingMutation.values()) { verifyScenario(alteration.mutate(scenario), level + 1); } } }
/** * Requires at least 3 elements in {@code strictlyOrderedElements} in order to * test the varargs version of min/max. */ private static <T> void testExhaustively( Ordering<? super T> ordering, T... strictlyOrderedElements) { checkArgument(strictlyOrderedElements.length >= 3, "strictlyOrderedElements " + "requires at least 3 elements"); List<T> list = Arrays.asList(strictlyOrderedElements); // for use calling Collection.toArray later T[] emptyArray = Platform.newArray(strictlyOrderedElements, 0); // shoot me, but I didn't want to deal with wildcards through the whole test @SuppressWarnings("unchecked") Scenario<T> starter = new Scenario<>((Ordering) ordering, list, emptyArray); verifyScenario(starter, 0); }
private static <T> void verifyScenario(Scenario<T> scenario, int level) { scenario.testCompareTo(); scenario.testIsOrdered(); scenario.testMinAndMax(); scenario.testBinarySearch(); scenario.testSortedCopy(); if (level < RECURSE_DEPTH) { for (OrderingMutation alteration : OrderingMutation.values()) { verifyScenario(alteration.mutate(scenario), level + 1); } } }