Esempio n. 1
0
  @Test
  public void testSolveOneManuallyApplied() {
    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);

    Solution solution = new Solution();
    while (solution != null) {
      solution = solver.solveOne(false);
      if (solution == null) break;
      Iterator<SolveDerivation> it = solution.getDerivationIterator();
      SolveDerivation sd = null;
      while (it.hasNext()) {
        sd = it.next();
      }
      if (solution.getAction() != null) {
        solution.getAction().execute();
        assertTrue(
            this.sudoku.getField(sd.getFieldIterator().next().getPosition()).getCurrentValue()
                != Field.EMPTYVAL);
      } else {
        solution = null;
      }
    }

    for (Field f : this.sudoku) {
      assertTrue(f.getCurrentValue() != -1);
    }
  }
Esempio n. 2
0
 @Test
 public void solveOneIncorrect() {
   sudoku.getField(Position.get(0, 0)).setCurrentValue(0);
   sudoku.getField(Position.get(1, 0)).setCurrentValue(0);
   assertTrue(solver.solveOne(true) == null);
 }