Skip to content

Commit 577a47f

Browse files
committed
Added test case to sudoku
1 parent b4b4908 commit 577a47f

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package com.thealgorithms.others;
2+
3+
import static org.junit.jupiter.api.Assertions.assertTrue;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
5+
import org.junit.jupiter.api.Test;
6+
7+
public class SudokuTest {
8+
9+
@Test
10+
public void testSolvableSudoku() {
11+
int[][] board = new int[][]{
12+
{3, 0, 6, 5, 0, 8, 4, 0, 0},
13+
{5, 2, 0, 0, 0, 0, 0, 0, 0},
14+
{0, 8, 7, 0, 0, 0, 0, 3, 1},
15+
{0, 0, 3, 0, 1, 0, 0, 8, 0},
16+
{9, 0, 0, 8, 6, 3, 0, 0, 5},
17+
{0, 5, 0, 0, 9, 0, 6, 0, 0},
18+
{1, 3, 0, 0, 0, 0, 2, 5, 0},
19+
{0, 0, 0, 0, 0, 0, 0, 7, 4},
20+
{0, 0, 5, 2, 0, 6, 3, 0, 0}
21+
};
22+
23+
assertTrue(Sudoku.solveSudoku(board, board.length), "The puzzle should be solvable.");
24+
}
25+
26+
@Test
27+
public void testUnsolvableSudoku() {
28+
int[][] board = new int[][]{
29+
{3, 0, 6, 5, 0, 8, 4, 0, 0},
30+
{5, 2, 1, 0, 0, 0, 0, 0, 0},
31+
{9, 8, 7, 0, 0, 0, 0, 3, 1},
32+
{0, 0, 3, 0, 1, 0, 0, 8, 0},
33+
{9, 0, 0, 8, 6, 3, 0, 0, 5},
34+
{0, 5, 0, 0, 9, 0, 6, 0, 0},
35+
{1, 3, 0, 0, 0, 0, 2, 5, 0},
36+
{0, 0, 0, 0, 0, 0, 0, 7, 4},
37+
{0, 0, 5, 2, 0, 6, 3, 1, 0}
38+
};
39+
40+
assertFalse(Sudoku.solveSudoku(board, board.length), "The puzzle should be unsolvable.");
41+
}
42+
43+
@Test
44+
public void testEmptySudoku() {
45+
int[][] board = new int[][]{
46+
{0, 0, 0, 0, 0, 0, 0, 0, 0},
47+
{0, 0, 0, 0, 0, 0, 0, 0, 0},
48+
{0, 0, 0, 0, 0, 0, 0, 0, 0},
49+
{0, 0, 0, 0, 0, 0, 0, 0, 0},
50+
{0, 0, 0, 0, 0, 0, 0, 0, 0},
51+
{0, 0, 0, 0, 0, 0, 0, 0, 0},
52+
{0, 0, 0, 0, 0, 0, 0, 0, 0},
53+
{0, 0, 0, 0, 0, 0, 0, 0, 0},
54+
{0, 0, 0, 0, 0, 0, 0, 0, 0}
55+
};
56+
57+
assertTrue(Sudoku.solveSudoku(board, board.length), "An empty puzzle should be solvable.");
58+
}
59+
60+
@Test
61+
public void testAlreadySolvedSudoku() {
62+
int[][] board = new int[][]{
63+
{5, 3, 4, 6, 7, 8, 9, 1, 2},
64+
{6, 7, 2, 1, 9, 5, 3, 4, 8},
65+
{1, 9, 8, 3, 4, 2, 5, 6, 7},
66+
{8, 5, 9, 7, 6, 1, 4, 2, 3},
67+
{4, 2, 6, 8, 5, 3, 7, 9, 1},
68+
{7, 1, 3, 9, 2, 4, 8, 5, 6},
69+
{9, 6, 1, 5, 3, 7, 2, 8, 4},
70+
{2, 8, 7, 4, 1, 9, 6, 3, 5},
71+
{3, 4, 5, 2, 8, 6, 1, 7, 9}
72+
};
73+
74+
assertTrue(Sudoku.solveSudoku(board, board.length), "An already solved puzzle should return true.");
75+
}
76+
}

0 commit comments

Comments
 (0)