@Test public void testResolveCellBySquare() throws Exception { moveThroughGame(game, (i, j) -> Int.fromInteger((i * SIZE + i / SIZE + j) % (SIZE * SIZE) + 1)); game.set(9, 1, Int.ZERO); game.resolveBySquare(3, 1); assertThat(game.get(9, 1), is(Int.NINE)); }
@Test public void testFindPossibleRowToResolve() throws Exception { moveThroughGame(game, (i, j) -> Int.fromInteger((i * SIZE + i / SIZE + j) % (SIZE * SIZE) + 1)); game.set(8, 1, Int.ZERO); game.set(9, 1, Int.ZERO); assertThat(game.possibleRowsToResolve(), containsInAnyOrder(8, 9)); }
private void moveThroughGame(SudokuGame g, DatumGenerator<Int> generator) { for (int i = 0; i < SIZE * SIZE; i++) { for (int j = 0; j < SIZE * SIZE; j++) { Int datum = generator.generate(i, j); game.set(i + 1, j + 1, datum); } } }