diff --git a/pom.xml b/pom.xml index 617638cd791d9340f61aa55c1242afd4336056ac..53c2a6d2547649f47d32dfe60c279a1c12f15f5e 100644 --- a/pom.xml +++ b/pom.xml @@ -1,17 +1,69 @@ -<?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>org.example</groupId> - <artifactId>SIM-Algo</artifactId> + <groupId>com.example</groupId> + <artifactId>mon-projet</artifactId> <version>1.0-SNAPSHOT</version> <properties> - <maven.compiler.source>23</maven.compiler.source> - <maven.compiler.target>23</maven.compiler.target> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>17</maven.compiler.source> <!-- Java source version --> + <maven.compiler.target>17</maven.compiler.target> <!-- Java target version --> + <junit.version>5.9.2</junit.version> <!-- Dernière version stable de JUnit --> + <javagrader.version>1.0.6</javagrader.version> <!-- Version actuelle de JavaGrader --> </properties> - + + <dependencies> + <!-- JUnit Jupiter API pour les tests --> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-api</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + + <!-- JUnit Jupiter Engine pour exécuter les tests --> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + + <!-- JavaGrader pour l'évaluation automatisée des réponses --> + <dependency> + <groupId>io.github.ucl-ingi</groupId> + <artifactId>JavaGrader</artifactId> + <version>${javagrader.version}</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <!-- Maven Compiler Plugin pour choisir la version de Java --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.10.1</version> + <configuration> + <source>${maven.compiler.source}</source> + <target>${maven.compiler.target}</target> + </configuration> + </plugin> + + <!-- Maven Surefire Plugin pour exécuter les tests JUnit --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M8</version> + <configuration> + <includes> + <include>**/*Test.java</include> + </includes> + </configuration> + </plugin> + </plugins> + </build> </project> \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 0c1e8ee8e87569ade958c51af6ea5a3fec7bcf91..d5238c98673267e6c15f84f9af90c68db503f89f 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,5 +1,3 @@ -package org.example; - public class Main { public static void main(String[] args) { System.out.println("Hello, World!"); diff --git a/src/main/java/algorithms/Factorial.java b/src/main/java/algorithms/Factorial.java new file mode 100644 index 0000000000000000000000000000000000000000..133b2b381a47f53ef993fe48fee33a8e84b33b39 --- /dev/null +++ b/src/main/java/algorithms/Factorial.java @@ -0,0 +1,13 @@ +package algorithms; + +public class Factorial { + public static int calculate(int n){ + return factorial(n, 1); + } + private static int factorial(int n, int result ){ + if(n == 0){ + return result; + } + return factorial(n-1, result * n); + } +} diff --git a/src/test/java/FactorialTest.java b/src/test/java/FactorialTest.java new file mode 100644 index 0000000000000000000000000000000000000000..7b59bc81055847cabc1ab610f3a38ea7033442ff --- /dev/null +++ b/src/test/java/FactorialTest.java @@ -0,0 +1,14 @@ +import algorithms.Factorial; +import org.javagrader.Grade; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +@Grade +public class FactorialTest { + @Test + @Grade(value = 1) + public void testFactorial(){ + assertEquals(6, Factorial.calculate(3)); + } +}