// board.setGoalRandom();
final StringBuilder sb = new StringBuilder();
sb.append(board.getGameID()).append('\t');
KeyDepthMapFactory.setDefaultClass(KeyDepthMapTrieGeneric.class);
final SolverIDDFS solverGeneric = (SolverIDDFS)Solver.createInstance(board);
final List<Solution> solutionsGeneric = solverGeneric.execute();
KeyDepthMapFactory.setDefaultClass(KeyDepthMapTrieSpecial.class);
final SolverIDDFS solverSpecial = (SolverIDDFS)Solver.createInstance(board);
final List<Solution> solutionsSpecial = solverSpecial.execute();
sb.append(solutionsGeneric.size()).append('\t');
sb.append(solutionsGeneric.get(0).size()).append('\t');
sb.append(solverGeneric.getSolutionMilliSeconds()).append('\t');
sb.append(solverSpecial.getSolutionMilliSeconds()).append('\t');
sb.append(solverGeneric.getSolutionMemoryMegabytes()).append('\t');
sb.append(solverSpecial.getSolutionMemoryMegabytes()).append('\t');
System.err.println(sb);
if (!solutionsGeneric.equals(solutionsSpecial)) {
System.err.println("solutions are not equal!");
System.out.println("solutions are not equal!");