diff options
Diffstat (limited to 'graphs/java/test1')
| -rw-r--r-- | graphs/java/test1/.gitignore | 38 | ||||
| -rw-r--r-- | graphs/java/test1/pom.xml | 141 | ||||
| -rw-r--r-- | graphs/java/test1/src/main/java/fr/epita/assistants/maths/Matrix.java | 33 | ||||
| -rw-r--r-- | graphs/java/test1/src/test/java/fr/epita/assistants/maths/MatrixTests.java | 113 |
4 files changed, 325 insertions, 0 deletions
diff --git a/graphs/java/test1/.gitignore b/graphs/java/test1/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/graphs/java/test1/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store
\ No newline at end of file diff --git a/graphs/java/test1/pom.xml b/graphs/java/test1/pom.xml new file mode 100644 index 0000000..1959226 --- /dev/null +++ b/graphs/java/test1/pom.xml @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>fr.epita.assistants</groupId> + <artifactId>test1</artifactId> + <version>1.0</version> + + <properties> + <versions.java>21</versions.java> + <versions.junit>5.9.1</versions.junit> + <versions.maven-compiler-plugin>3.13.0</versions.maven-compiler-plugin> + <versions.maven-surefire-plugin>3.5.0</versions.maven-surefire-plugin> + <versions.maven-jar-plugin>3.1.1</versions.maven-jar-plugin> + <versions.maven-install-plugin>3.1.0</versions.maven-install-plugin> + <versions.slf4j>1.7.36</versions.slf4j> + <versions.archunit>1.2.0</versions.archunit> + + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + <surefire.reportsDirectory>${project.build.directory}/surefire-reports</surefire.reportsDirectory> + </properties> + + <dependencies> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + <version>${versions.junit}</version> + </dependency> + <dependency> + <groupId>com.tngtech.archunit</groupId> + <artifactId>archunit-junit5</artifactId> + <version>${versions.archunit}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.surefire</groupId> + <artifactId>surefire-junit-platform</artifactId> + <version>${versions.maven-surefire-plugin}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-compat</artifactId> + <version>3.9.8</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-api</artifactId> + <version>3.9.8</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-core</artifactId> + <version>3.8.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-monitor</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>3.0.24</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-filtering</artifactId> + <version>3.3.2</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-interpolation</artifactId> + <version>1.13</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-profile</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-registry</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>classworlds</groupId> + <artifactId>classworlds</artifactId> + <version>1.1</version> + </dependency> + <dependency> + <groupId>org.junit.platform</groupId> + <artifactId>junit-platform-commons</artifactId> + <version>1.9.3</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>${versions.maven-compiler-plugin}</version> + <configuration> + <source>${versions.java}</source> + <target>${versions.java}</target> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <version>${versions.maven-install-plugin}</version> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${versions.maven-surefire-plugin}</version> + <configuration> + <reportsDirectory>${surefire.reportsDirectory}</reportsDirectory> + </configuration> + </plugin> + </plugins> + </build> +</project> 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 |
