Skip to content

Commit 44d7cbb

Browse files
authored
test: NQueensTest (#5378)
1 parent ce4eb55 commit 44d7cbb

File tree

2 files changed

+52
-7
lines changed

2 files changed

+52
-7
lines changed

src/main/java/com/thealgorithms/backtracking/NQueens.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,10 @@ public final class NQueens {
3636
private NQueens() {
3737
}
3838

39-
public static void main(String[] args) {
40-
placeQueens(1);
41-
placeQueens(2);
42-
placeQueens(3);
43-
placeQueens(4);
44-
placeQueens(5);
45-
placeQueens(6);
39+
public static List<List<String>> getNQueensArrangements(int queens) {
40+
List<List<String>> arrangements = new ArrayList<>();
41+
getSolution(queens, arrangements, new int[queens], 0);
42+
return arrangements;
4643
}
4744

4845
public static void placeQueens(final int queens) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.thealgorithms.backtracking;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import java.util.ArrayList;
6+
import java.util.Arrays;
7+
import java.util.List;
8+
import org.junit.jupiter.api.Test;
9+
10+
public class NQueensTest {
11+
12+
@Test
13+
public void testNQueens1() {
14+
List<List<String>> expected = Arrays.asList(Arrays.asList("Q"));
15+
assertEquals(expected, NQueens.getNQueensArrangements(1));
16+
}
17+
18+
@Test
19+
public void testNQueens2() {
20+
List<List<String>> expected = new ArrayList<>(); // No solution exists
21+
assertEquals(expected, NQueens.getNQueensArrangements(2));
22+
}
23+
24+
@Test
25+
public void testNQueens3() {
26+
List<List<String>> expected = new ArrayList<>(); // No solution exists
27+
assertEquals(expected, NQueens.getNQueensArrangements(3));
28+
}
29+
30+
@Test
31+
public void testNQueens4() {
32+
List<List<String>> expected = Arrays.asList(Arrays.asList(".Q..", "...Q", "Q...", "..Q."), Arrays.asList("..Q.", "Q...", "...Q", ".Q.."));
33+
assertEquals(expected, NQueens.getNQueensArrangements(4));
34+
}
35+
36+
@Test
37+
public void testNQueens5() {
38+
// Only the number of solutions is tested for larger N due to the complexity of checking each board configuration
39+
List<List<String>> result = NQueens.getNQueensArrangements(5);
40+
assertEquals(10, result.size()); // 5x5 board has 10 solutions
41+
}
42+
43+
@Test
44+
public void testNQueens6() {
45+
List<List<String>> result = NQueens.getNQueensArrangements(6);
46+
assertEquals(4, result.size()); // 6x6 board has 4 solutions
47+
}
48+
}

0 commit comments

Comments
 (0)