--- old/test/java/util/Arrays/Correct.java 2014-03-11 17:12:43.806429681 -0700 +++ new/test/java/util/Arrays/Correct.java 2014-03-11 17:12:43.634429672 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2014 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,44 +23,49 @@ /* * @test - * @bug 4726380 + * @bug 4726380 8037097 * @summary Check that different sorts give equivalent results. + * @run testng Correct */ import java.util.*; +import org.testng.annotations.Test; +import org.testng.annotations.DataProvider; +import static org.testng.Assert.fail; +import static org.testng.Assert.assertEquals; + public class Correct { - static Random rnd = new Random(); + static final Random rnd = new Random(); static final int ITERATIONS = 1000; static final int TEST_SIZE = 1000; - - public static void main(String[] args) throws Exception { - Object[] array1 = null; - Object[] array2 = null; - + + @Test + public void testDefaultSort() { for (int i=0; i comparator) { for (int i=0; i to - 1 ) + return; + for (int x=from; x comparator) { + if (from > to - 1 ) + return; + + for (int x=from; x void swap(T[] x, int a, int b) { + T t = x[a]; x[a] = x[b]; x[b] = t; } - private static final Comparator TEST_ORDER = new IntegerComparator(); + @DataProvider(name = "Comparators", parallel = true) + public static Iterator comparators() { + Object[][] comparators = new Object[][] { + new Object[] { Comparator.naturalOrder() }, + new Object[] { Comparator.naturalOrder().reversed() }, + new Object[] { STANDARD_ORDER }, + new Object[] { STANDARD_ORDER.reversed() }, + new Object[] { REVERSE_ORDER }, + new Object[] { REVERSE_ORDER.reversed() }, + new Object[] { Comparator.comparingInt(Integer::intValue) } + }; + + return Arrays.asList(comparators).iterator(); + } - private static class IntegerComparator implements Comparator { - public int compare(Object o1, Object o2) { - Comparable c1 = (Comparable)o1; - Comparable c2 = (Comparable)o2; - return c1.compareTo(c2); + private static final Comparator STANDARD_ORDER = new Comparator() { + public int compare(Integer o1, Integer o2) { + return o1.compareTo(o2); } - } + }; + + private static final Comparator REVERSE_ORDER = new Comparator() { + public int compare(Integer o1, Integer o2) { + return - o1.compareTo(o2); + } + }; }