}
@Test
public void testBoardRandomAndCustom() throws Exception {
// set up board to known, unsolved, initial state
Board board = new Board(4);
board.randomSolvableInitialState(1000, 3, true);
System.out.println("\nRandom com.oti.Board: ");
board.describeBoard();
// set up a custom board to the same state
Board customBoard = new Board(4, 1,2,3,4,5,6,0,7,9,10,11,8,13,14,15,12);
System.out.println("\nCustom com.oti.Board: ");
customBoard.describeBoard();
Assert.assertEquals(board, customBoard);
//now create a custom board different from the unsovled board
// by swapping the last two values
Board differentBoard = new Board(4, 1,2,3,4,5,6,7,8,9,0,11,12,13,10,15,14);
System.out.println("\nDifferent com.oti.Board: ");
differentBoard.describeBoard();
Assert.assertFalse(board.equals(differentBoard));
}