Skip to content

Commit 84fb717

Browse files
authored
test: DeterminantOfMatrix (#5376)
1 parent aefc8fd commit 84fb717

File tree

2 files changed

+57
-21
lines changed

2 files changed

+57
-21
lines changed

src/main/java/com/thealgorithms/maths/DeterminantOfMatrix.java

+7-21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.thealgorithms.maths;
22

3-
import java.util.Scanner;
4-
53
/*
64
* @author Ojasva Jain
75
* Determinant of a Matrix Wikipedia link: https://en.wikipedia.org/wiki/Determinant
@@ -10,8 +8,13 @@ public final class DeterminantOfMatrix {
108
private DeterminantOfMatrix() {
119
}
1210

13-
// Determinant calculator
14-
//@return determinant of the input matrix
11+
/**
12+
* Calculates the determinant of a given matrix.
13+
*
14+
* @param a the input matrix
15+
* @param n the size of the matrix
16+
* @return the determinant of the matrix
17+
*/
1518
static int determinant(int[][] a, int n) {
1619
int det = 0;
1720
int sign = 1;
@@ -41,21 +44,4 @@ static int determinant(int[][] a, int n) {
4144
}
4245
return det;
4346
}
44-
45-
// Driver Method
46-
public static void main(String[] args) {
47-
Scanner in = new Scanner(System.in);
48-
// Input Matrix
49-
System.out.println("Enter matrix size (Square matrix only)");
50-
int n = in.nextInt();
51-
System.out.println("Enter matrix");
52-
int[][] a = new int[n][n];
53-
for (int i = 0; i < n; i++) {
54-
for (int j = 0; j < n; j++) {
55-
a[i][j] = in.nextInt();
56-
}
57-
}
58-
System.out.println(determinant(a, n));
59-
in.close();
60-
}
6147
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.thealgorithms.maths;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
public class DeterminantOfMatrixTest {
8+
9+
@Test
10+
public void testDeterminant2x2Matrix() {
11+
int[][] matrix = {{1, 2}, {3, 4}};
12+
int expected = -2;
13+
assertEquals(expected, DeterminantOfMatrix.determinant(matrix, 2));
14+
}
15+
16+
@Test
17+
public void testDeterminant3x3Matrix() {
18+
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
19+
int expected = 0;
20+
assertEquals(expected, DeterminantOfMatrix.determinant(matrix, 3));
21+
}
22+
23+
@Test
24+
public void testDeterminant3x3MatrixNonZero() {
25+
int[][] matrix = {{1, 2, 3}, {0, 1, 4}, {5, 6, 0}};
26+
int expected = 1;
27+
assertEquals(expected, DeterminantOfMatrix.determinant(matrix, 3));
28+
}
29+
30+
@Test
31+
public void testDeterminant1x1Matrix() {
32+
int[][] matrix = {{7}};
33+
int expected = 7;
34+
assertEquals(expected, DeterminantOfMatrix.determinant(matrix, 1));
35+
}
36+
37+
@Test
38+
public void testDeterminant4x4Matrix() {
39+
int[][] matrix = {{1, 0, 0, 1}, {0, 1, 0, 0}, {0, 0, 1, 0}, {1, 0, 0, 1}};
40+
int expected = 0;
41+
assertEquals(expected, DeterminantOfMatrix.determinant(matrix, 4));
42+
}
43+
44+
@Test
45+
public void testDeterminant4x4MatrixZero() {
46+
int[][] matrix = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};
47+
int expected = 0;
48+
assertEquals(expected, DeterminantOfMatrix.determinant(matrix, 4));
49+
}
50+
}

0 commit comments

Comments
 (0)