示例#1
0
  @Test
  public void testSolveAllManuallyApplied() {
    sudoku.getField(Position.get(0, 0)).setCurrentValue(0);
    sudoku.getField(Position.get(5, 0)).setCurrentValue(6);
    sudoku.getField(Position.get(7, 0)).setCurrentValue(8);
    sudoku.getField(Position.get(1, 1)).setCurrentValue(2);
    sudoku.getField(Position.get(4, 1)).setCurrentValue(1);
    sudoku.getField(Position.get(8, 1)).setCurrentValue(7);
    sudoku.getField(Position.get(2, 2)).setCurrentValue(8);
    sudoku.getField(Position.get(3, 2)).setCurrentValue(5);
    sudoku.getField(Position.get(6, 2)).setCurrentValue(4);
    sudoku.getField(Position.get(2, 3)).setCurrentValue(4);
    sudoku.getField(Position.get(3, 3)).setCurrentValue(2);
    sudoku.getField(Position.get(6, 3)).setCurrentValue(8);
    sudoku.getField(Position.get(1, 4)).setCurrentValue(0);
    sudoku.getField(Position.get(4, 4)).setCurrentValue(7);
    sudoku.getField(Position.get(8, 4)).setCurrentValue(1);
    sudoku.getField(Position.get(0, 5)).setCurrentValue(5);
    sudoku.getField(Position.get(5, 5)).setCurrentValue(3);
    sudoku.getField(Position.get(0, 6)).setCurrentValue(2);
    sudoku.getField(Position.get(7, 6)).setCurrentValue(0);
    sudoku.getField(Position.get(1, 7)).setCurrentValue(3);
    sudoku.getField(Position.get(8, 7)).setCurrentValue(6);
    sudoku.getField(Position.get(2, 8)).setCurrentValue(6);
    sudoku.getField(Position.get(6, 8)).setCurrentValue(2);

    solver.solveAll(true, false);
    List<Solution> solutions = solver.getSolutions();
    for (Solution solution : solutions) {
      assertTrue(solution.getAction() != null);
      solution.getAction().execute();
      Iterator<SolveDerivation> it = solution.getDerivationIterator();
      SolveDerivation sd = null;
      while (it.hasNext()) {
        sd = it.next();
        assertTrue(sd != null);
      }
    }

    SudokuTestUtilities.printSudoku(sudoku);

    for (Field f : this.sudoku) {
      assertTrue(f.getCurrentValue() != Field.EMPTYVAL);
    }
  }
示例#2
0
 @Test
 public void solveAllIncorrect() {
   sudoku.getField(Position.get(0, 0)).setCurrentValue(0);
   sudoku.getField(Position.get(1, 0)).setCurrentValue(0);
   assertFalse(solver.solveAll(true, false));
 }