import java.util.Arrays; class ReverserTest { private int[] testSequential(int[] a) { SequentialReverser rev = new SequentialReverser(a); rev.reverse(); boolean ok = true; for (int k = 0; k < a.length; k++) ok = ok && (a[k] == rev.reversed()[a.length - k - 1]); if (!ok) System.out.println("Reversal error: " + Arrays.toString(a) + " reversed: " + Arrays.toString(rev.reversed())); return rev.reversed(); } private int[] testParallel(int[] a, int N) { ParallelReverser rev = new ParallelReverser(a, N); rev.reverse(); return rev.reversed(); } private boolean check(int[] a, int N) { int[] s = testSequential(a); int[] p = testParallel(a, N); boolean result = Arrays.equals(s, p); if (result) System.out.println("Test successful"); else System.out.println("Sequential reversal: " + Arrays.toString(s) + " but parallel reversal: " + Arrays.toString(p)); return result; } void test1() { int[] a = {1, 2, 3, 4, 5, 6}; check(a, 1); check(a, 2); check(a, 3); check(a, 5); } void test2() { int[] a = {-1, 2, -3, 4, -5, 6, -7}; check(a, 3); check(a, 4); } void test3() { int[] a = { }; check(a, 1); check(a, 2); check(a, 3); } void test4() { int[] a = { 1 }; check(a, 1); check(a, 2); check(a, 3); } public static void main(String[] args) { ReverserTest o = new ReverserTest(); o.test1(); o.test2(); o.test3(); o.test4(); } }