private static void testSwap() {
        int tests = 0;
        int failed = 0;

        printHeader("Testing Swap");

        try {
            ColumnPuzzle temp = new ColumnPuzzle(3);
            temp.setup(3);
            temp.window.setVisible(false);
            temp.window.dispose();

            for (int row = 0; row < temp.grid.length-1; row++) {
                for (int col = 0; col < temp.grid[row].length-1; col++) {
                    try {
                        // Remember what the original colors were.
                        Color color1 = temp.grid[row][col];
                        Color color2 = temp.grid[row+1][col+1];
                        temp.swap(row, col, row+1, col+1);

                        // Make sure they swapped.
                        if (!temp.grid[row+1][col+1].equals(color1)
                                || !temp.grid[row][col].equals(color2)) {
                            sop("FAILED! Swap of " + row + "," + col + 
                                " to " + (row+1) + "," + (col+1) +
                                " did not swap!");
                            failed++;
                        }
                    } catch (Exception e) {
                        sop("ERROR! Tried to swap(" + row + ", " + col +
                            ", " + (row+1) + ", " + (col+1) + "). " +
                            "Java said: " + e);
                        failed++;
                    } finally {
                        tests++;
                    }
                }
            }
        } catch (Exception e) {
            sop("ERROR! Tried to create a Column Puzzle to test swap. " +
                "Java said: " + e);
        }

        printStats(tests, failed);
    }