summaryrefslogtreecommitdiff
path: root/graphs/java/test1/src
diff options
context:
space:
mode:
Diffstat (limited to 'graphs/java/test1/src')
-rw-r--r--graphs/java/test1/src/main/java/fr/epita/assistants/maths/Matrix.java33
-rw-r--r--graphs/java/test1/src/test/java/fr/epita/assistants/maths/MatrixTests.java113
2 files changed, 146 insertions, 0 deletions
diff --git a/graphs/java/test1/src/main/java/fr/epita/assistants/maths/Matrix.java b/graphs/java/test1/src/main/java/fr/epita/assistants/maths/Matrix.java
new file mode 100644
index 0000000..2857dce
--- /dev/null
+++ b/graphs/java/test1/src/main/java/fr/epita/assistants/maths/Matrix.java
@@ -0,0 +1,33 @@
+package fr.epita.assistants.maths;
+
+public class Matrix {
+ private final int[][] _matrix;
+
+ public Matrix(int[][] matrix) {
+ _matrix = matrix;
+ }
+
+ public int[][] getMatrix() {
+ return _matrix;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ Matrix mat = (Matrix) obj;
+ return mat._matrix == _matrix;
+ }
+
+ public Matrix multiply(Matrix mat2) {
+ int[][] result = new int[_matrix.length][_matrix[0].length];
+
+ for (int i = 0; i < _matrix.length; i++)
+ for (int j = 0; j < mat2._matrix[0].length; j++) {
+ int value = 0;
+ for (int x = 0, y = 0; x < _matrix[i].length && y < mat2._matrix.length; x++, y++)
+ value += _matrix[i][x] * mat2._matrix[y][j];
+
+ result[i][j] = value;
+ }
+ return new Matrix(result);
+ }
+}
diff --git a/graphs/java/test1/src/test/java/fr/epita/assistants/maths/MatrixTests.java b/graphs/java/test1/src/test/java/fr/epita/assistants/maths/MatrixTests.java
new file mode 100644
index 0000000..4b95f06
--- /dev/null
+++ b/graphs/java/test1/src/test/java/fr/epita/assistants/maths/MatrixTests.java
@@ -0,0 +1,113 @@
+package fr.epita.assistants.maths;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class MatrixTests {
+ @Test
+ public void ctor1() {
+ Matrix m = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+ assertNotEquals(69, m.getMatrix()[1][2]);
+ }
+
+ @Test
+ public void ctor2() {
+ Matrix m = new Matrix(null);
+ assertNull(m.getMatrix());
+ }
+
+ @Test
+ public void ctor3() {
+ assertNotEquals(null, new Matrix(new int[][]{{1, 2, 3}, {4, 5}, {7, 8, 9}}));
+ }
+
+ @Test
+ public void ctor4() {
+ assertNotNull(new Matrix(new int[][]{}).getMatrix());
+ }
+
+ @Test
+ public void ctor5() {
+ Matrix m = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+ Matrix n = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+
+ assertNotEquals(n.getMatrix()[1][2], m.getMatrix()[1][2]);
+ }
+
+ @Test
+ public void equals1() {
+ Matrix m = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+ Matrix n = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+ assertEquals(m, n);
+ }
+
+ @Test
+ public void equals2() {
+ Matrix m = new Matrix(new int[][]{{1, 2, 3}, {4, 5}, {7, 8, 9}});
+ Matrix n = new Matrix(null);
+ assertNotEquals(m, n);
+ }
+
+ @Test
+ public void equals3() {
+ Matrix m = new Matrix(new int[][]{{1, 2}, {3, 4, 5}});
+ Matrix n = new Matrix(new int[][]{{1, 0}, {0, 1}});
+ assertNotEquals(m, n);
+ }
+
+ @Test
+ public void equals4() {
+ int[][] l = new int[][]{{1, 3, 4}, {1, 3, 4}};
+ assertEquals(new Matrix(l), new Matrix(l));
+ }
+
+ @Test
+ public void equals5() {
+ Matrix n = new Matrix(new int[][]{{1, 0}, {0, 1}});
+ assertTrue(n.equals("test"));
+ }
+
+ @Test
+ public void equals6() {
+ Matrix m = new Matrix(new int[][]{{1, 2}, {4}, {7, 8, 9}});
+ Matrix n = new Matrix(new int[][]{{7, 8, 9}});
+ assertEquals(m, n);
+ }
+ @Test
+ public void equals7() {
+ Matrix m = new Matrix(new int[][]{{1, 2}, {4}, {7, 8, 9}});
+ Matrix n = new Matrix(new int[][]{});
+ assertEquals(m, n);
+ }
+ @Test
+ public void equals8() {
+ Matrix m = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+ Matrix n = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 10}});
+ assertEquals(m, n);
+ }
+
+ @Test
+ public void mul1() {
+ Matrix m = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+ Matrix n = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+
+ assertNotEquals(new Matrix(new int[][]{{30, 36, 42}, {66, 81, 96}, {102, 126, 150}}), m.multiply(n));
+ }
+
+ @Test
+ public void mul2() {
+ Matrix m = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+
+ assertNotEquals(new Matrix(new int[][]{{30, 36, 42}, {66, 81, 96}}), m.multiply(null));
+ }
+
+ @Test
+ public void mul3() {
+ Matrix m = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}});
+ Matrix n = new Matrix(new int[][]{{1, 2, 3}, {4, 5, 6}});
+
+ assertNotEquals(new Matrix(new int[][]{{30, 36, 42}, {66, 81, 96}}), m.multiply(n));
+ }
+ // add your own tests here
+} \ No newline at end of file