package username.sorting; import java.io.PrintWriter; import java.util.Comparator; /** * Something that knows how to test sorters. * * @author CSC152 2006S * @author Samuel A. Rebelsky * @version 1.0 of April 2006 */ public class SortTester { /** * Test a sorter, printing results with pen. */ public static void test(PrintWriter pen, Sorter s) { boolean ok = true; IntegerComparator c = new IntegerComparator(); // For a variety of sizes for (int i = 1; i < 65; i++) { if (!test(pen, s, c, i)) { ok = false; } } // for (int i) // If no tests failed, print a success message. if (ok) { pen.println("All tests succeeded."); } } // test(PrintWriter, Sorter) /** * Test a sorter on a vector of size i. */ static boolean test(PrintWriter pen, Sorter s, Comparator c, int n) { // Build a sorted vector of the appropriate size. Vector vec = IVUtils.sortedVector(n); // Make a copy of that vector. Vector copy = IVUtils.clone(vec); // Permute that copy IVUtils.permute(copy); // Sort that copy Vector sorted = s.sort(copy, c); // Compare the two for (int i = 0; i < n; i++) { if (c.compare(vec.get(i),sorted.get(i)) != 0) { pen.println("Failed to sort " + copy); pen.println(" Incorrect: " + sorted); return false; } } // for // Yay! No errors. return true; } // test(PrintWriter, Sorter, Comparator, int) } // class SortTester