ProxySorter { public static <T> int[] sort( final T array, final int length, final Comparator<? super T> comparator ) { return TimProxySorter.sort(array, length, comparator); } private  ProxySorter(); static int[] sort(
		final T array,
		final int length,
		final Comparator<? super T> comparator
	); static int[] sort(final int[] array); static int[] sort(final long[] array); static int[] sort(final double[] array); static int[] sort(
		final T[] array,
		final java.util.Comparator<? super T> comparator
	); static int[] sort(final T[] array); static int[] sort(
		final BaseSeq<? extends T> array,
		final java.util.Comparator<? super T> comparator
	); static int[] sort(final BaseSeq<? extends T> array); static int[] sort(
		final List<? extends T> array,
		final java.util.Comparator<? super T> comparator
	); static int[] sort(final List<? extends T> array);  }
@Test(dataProvider = "arrays") public void timSortArrays(final int[] array) { final int[] indexes = ProxySorter.sort(array); Assert.assertEquals(sorted(array, indexes), expected(array)); }
@Test(dataProvider = "arrayLengths") public void timSortArraySize(final int size) { final int[] array = new Random().ints(size).toArray(); final int[] indexes = ProxySorter.sort(array); Assert.assertEquals(sorted(array, indexes), expected(array)); }