8085858: Better failure output for test/java/util/Arrays/ParallelPrefix.java
Reviewed-by: psandoz, igerasim
This commit is contained in:
parent
93b5e256a0
commit
52d42bb03a
@ -51,7 +51,7 @@ public class ParallelPrefix {
|
|||||||
private final static int MEDIUM_ARRAY_SIZE = 1 << 8;
|
private final static int MEDIUM_ARRAY_SIZE = 1 << 8;
|
||||||
|
|
||||||
//Array size much greater than MIN_PARTITION
|
//Array size much greater than MIN_PARTITION
|
||||||
private final static int LARGE_ARRAY_SIZE = 1 << 12;
|
private final static int LARGE_ARRAY_SIZE = 1 << 14;
|
||||||
|
|
||||||
private final static int[] ARRAY_SIZE_COLLECTION = new int[]{
|
private final static int[] ARRAY_SIZE_COLLECTION = new int[]{
|
||||||
SMALL_ARRAY_SIZE,
|
SMALL_ARRAY_SIZE,
|
||||||
@ -60,7 +60,7 @@ public class ParallelPrefix {
|
|||||||
LARGE_ARRAY_SIZE
|
LARGE_ARRAY_SIZE
|
||||||
};
|
};
|
||||||
|
|
||||||
@DataProvider
|
@DataProvider(name = "intSet")
|
||||||
public static Object[][] intSet(){
|
public static Object[][] intSet(){
|
||||||
return genericData(size -> IntStream.range(0, size).toArray(),
|
return genericData(size -> IntStream.range(0, size).toArray(),
|
||||||
new IntBinaryOperator[]{
|
new IntBinaryOperator[]{
|
||||||
@ -68,7 +68,7 @@ public class ParallelPrefix {
|
|||||||
Integer::min});
|
Integer::min});
|
||||||
}
|
}
|
||||||
|
|
||||||
@DataProvider
|
@DataProvider(name = "longSet")
|
||||||
public static Object[][] longSet(){
|
public static Object[][] longSet(){
|
||||||
return genericData(size -> LongStream.range(0, size).toArray(),
|
return genericData(size -> LongStream.range(0, size).toArray(),
|
||||||
new LongBinaryOperator[]{
|
new LongBinaryOperator[]{
|
||||||
@ -76,7 +76,7 @@ public class ParallelPrefix {
|
|||||||
Long::min});
|
Long::min});
|
||||||
}
|
}
|
||||||
|
|
||||||
@DataProvider
|
@DataProvider(name = "doubleSet")
|
||||||
public static Object[][] doubleSet(){
|
public static Object[][] doubleSet(){
|
||||||
return genericData(size -> IntStream.range(0, size).mapToDouble(i -> (double)i).toArray(),
|
return genericData(size -> IntStream.range(0, size).mapToDouble(i -> (double)i).toArray(),
|
||||||
new DoubleBinaryOperator[]{
|
new DoubleBinaryOperator[]{
|
||||||
@ -84,7 +84,7 @@ public class ParallelPrefix {
|
|||||||
Double::min});
|
Double::min});
|
||||||
}
|
}
|
||||||
|
|
||||||
@DataProvider
|
@DataProvider(name = "stringSet")
|
||||||
public static Object[][] stringSet(){
|
public static Object[][] stringSet(){
|
||||||
Function<Integer, String[]> stringsFunc = size ->
|
Function<Integer, String[]> stringsFunc = size ->
|
||||||
IntStream.range(0, size).mapToObj(Integer::toString).toArray(String[]::new);
|
IntStream.range(0, size).mapToObj(Integer::toString).toArray(String[]::new);
|
||||||
@ -121,11 +121,11 @@ public class ParallelPrefix {
|
|||||||
|
|
||||||
int[] parallelResult = data.clone();
|
int[] parallelResult = data.clone();
|
||||||
Arrays.parallelPrefix(parallelResult, fromIndex, toIndex, op);
|
Arrays.parallelPrefix(parallelResult, fromIndex, toIndex, op);
|
||||||
assertEquals(parallelResult, sequentialResult);
|
assertArraysEqual(parallelResult, sequentialResult);
|
||||||
|
|
||||||
int[] parallelRangeResult = Arrays.copyOfRange(data, fromIndex, toIndex);
|
int[] parallelRangeResult = Arrays.copyOfRange(data, fromIndex, toIndex);
|
||||||
Arrays.parallelPrefix(parallelRangeResult, op);
|
Arrays.parallelPrefix(parallelRangeResult, op);
|
||||||
assertEquals(parallelRangeResult, Arrays.copyOfRange(sequentialResult, fromIndex, toIndex));
|
assertArraysEqual(parallelRangeResult, Arrays.copyOfRange(sequentialResult, fromIndex, toIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dataProvider="longSet")
|
@Test(dataProvider="longSet")
|
||||||
@ -137,11 +137,11 @@ public class ParallelPrefix {
|
|||||||
|
|
||||||
long[] parallelResult = data.clone();
|
long[] parallelResult = data.clone();
|
||||||
Arrays.parallelPrefix(parallelResult, fromIndex, toIndex, op);
|
Arrays.parallelPrefix(parallelResult, fromIndex, toIndex, op);
|
||||||
assertEquals(parallelResult, sequentialResult);
|
assertArraysEqual(parallelResult, sequentialResult);
|
||||||
|
|
||||||
long[] parallelRangeResult = Arrays.copyOfRange(data, fromIndex, toIndex);
|
long[] parallelRangeResult = Arrays.copyOfRange(data, fromIndex, toIndex);
|
||||||
Arrays.parallelPrefix(parallelRangeResult, op);
|
Arrays.parallelPrefix(parallelRangeResult, op);
|
||||||
assertEquals(parallelRangeResult, Arrays.copyOfRange(sequentialResult, fromIndex, toIndex));
|
assertArraysEqual(parallelRangeResult, Arrays.copyOfRange(sequentialResult, fromIndex, toIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dataProvider="doubleSet")
|
@Test(dataProvider="doubleSet")
|
||||||
@ -153,11 +153,11 @@ public class ParallelPrefix {
|
|||||||
|
|
||||||
double[] parallelResult = data.clone();
|
double[] parallelResult = data.clone();
|
||||||
Arrays.parallelPrefix(parallelResult, fromIndex, toIndex, op);
|
Arrays.parallelPrefix(parallelResult, fromIndex, toIndex, op);
|
||||||
assertEquals(parallelResult, sequentialResult);
|
assertArraysEqual(parallelResult, sequentialResult);
|
||||||
|
|
||||||
double[] parallelRangeResult = Arrays.copyOfRange(data, fromIndex, toIndex);
|
double[] parallelRangeResult = Arrays.copyOfRange(data, fromIndex, toIndex);
|
||||||
Arrays.parallelPrefix(parallelRangeResult, op);
|
Arrays.parallelPrefix(parallelRangeResult, op);
|
||||||
assertEquals(parallelRangeResult, Arrays.copyOfRange(sequentialResult, fromIndex, toIndex));
|
assertArraysEqual(parallelRangeResult, Arrays.copyOfRange(sequentialResult, fromIndex, toIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dataProvider="stringSet")
|
@Test(dataProvider="stringSet")
|
||||||
@ -169,11 +169,11 @@ public class ParallelPrefix {
|
|||||||
|
|
||||||
String[] parallelResult = data.clone();
|
String[] parallelResult = data.clone();
|
||||||
Arrays.parallelPrefix(parallelResult, fromIndex, toIndex, op);
|
Arrays.parallelPrefix(parallelResult, fromIndex, toIndex, op);
|
||||||
assertEquals(parallelResult, sequentialResult);
|
assertArraysEqual(parallelResult, sequentialResult);
|
||||||
|
|
||||||
String[] parallelRangeResult = Arrays.copyOfRange(data, fromIndex, toIndex);
|
String[] parallelRangeResult = Arrays.copyOfRange(data, fromIndex, toIndex);
|
||||||
Arrays.parallelPrefix(parallelRangeResult, op);
|
Arrays.parallelPrefix(parallelRangeResult, op);
|
||||||
assertEquals(parallelRangeResult, Arrays.copyOfRange(sequentialResult, fromIndex, toIndex));
|
assertArraysEqual(parallelRangeResult, Arrays.copyOfRange(sequentialResult, fromIndex, toIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -293,5 +293,41 @@ public class ParallelPrefix {
|
|||||||
public static void assertInstance(Object actual, Class<?> expected, String message) {
|
public static void assertInstance(Object actual, Class<?> expected, String message) {
|
||||||
assertTrue(expected.isInstance(actual), message);
|
assertTrue(expected.isInstance(actual), message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void assertArraysEqual(int[] actual, int[] expected) {
|
||||||
|
try {
|
||||||
|
assertEquals(actual, expected, "");
|
||||||
|
} catch (AssertionError x) {
|
||||||
|
throw new AssertionError(String.format("Expected:%s, actual:%s",
|
||||||
|
Arrays.toString(expected), Arrays.toString(actual)), x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void assertArraysEqual(long[] actual, long[] expected) {
|
||||||
|
try {
|
||||||
|
assertEquals(actual, expected, "");
|
||||||
|
} catch (AssertionError x) {
|
||||||
|
throw new AssertionError(String.format("Expected:%s, actual:%s",
|
||||||
|
Arrays.toString(expected), Arrays.toString(actual)), x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void assertArraysEqual(double[] actual, double[] expected) {
|
||||||
|
try {
|
||||||
|
assertEquals(actual, expected, "");
|
||||||
|
} catch (AssertionError x) {
|
||||||
|
throw new AssertionError(String.format("Expected:%s, actual:%s",
|
||||||
|
Arrays.toString(expected), Arrays.toString(actual)), x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void assertArraysEqual(String[] actual, String[] expected) {
|
||||||
|
try {
|
||||||
|
assertEquals(actual, expected, "");
|
||||||
|
} catch (AssertionError x) {
|
||||||
|
throw new AssertionError(String.format("Expected:%s, actual:%s",
|
||||||
|
Arrays.toString(expected), Arrays.toString(actual)), x);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user