diff --git a/TP1/.gitignore b/TP1/.gitignore
index 917e7a67c1f5a24e14265449f95d9cd6fe3c33ac..840c98321c48f07cf005ce614c00ec5b3cf565eb 100644
--- a/TP1/.gitignore
+++ b/TP1/.gitignore
@@ -1,14 +1,10 @@
-.gradle
-build/
-!gradle/wrapper/gradle-wrapper.jar
-!**/src/main/**/build/
-!**/src/test/**/build/
+.gradle/
+.idea/
+build/**/
+*.iml
+*.ipr
+*.iws
+
 
-### IntelliJ IDEA ###
-.idea
 
-### VS Code ###
-.vscode/
 
-### Mac OS ###
-.DS_Store
\ No newline at end of file
diff --git a/TP1/README.md b/TP1/README.md
index a734f553b48efec227ddf20f8842ab71fbbec6cd..b2db0da092b968442a46bdd798f8a249a2a29f45 100644
--- a/TP1/README.md
+++ b/TP1/README.md
@@ -1,11 +1,14 @@
-# TP 1 : tests boîte noire
+# TP 2 : tests unitaires et couverture de test
 
-Les exécutables à tester sont dans le répertoire `executables`.
-Les fichiers images correspondant au cas de test sont à mettre dans le répertoire `ìmages`.
+Les commandes gradle les plus utiles :
 
+- `gradle test` pour lancer les tests (rapports dans `build/reports/tests/test`),
+- `gradle jacocoTestReport` pour lancer la couverture de code via l'outil [Jacoco](https://www.eclemma.org/jacoco/) (rapport accessible en html à `build/reports/jacoco/test/html/index.html`). 
 
-Pour lancer les tests, il suffit d'utiliser la commande :
+Le fichier `build.gradle` contient la configuration du projet avec notamment la définition de la classe contenant la méthode `main` à exécuter pour l'application.
 
-```bash
-gradle run
-```
+
+## Membre(s) du projet
+
+- NOM, prénom du premier membre du projet
+- NOM, prénom du deuxième membre du projet (optionnel)
diff --git a/TP1/build.gradle b/TP1/build.gradle
deleted file mode 100644
index f778d087cae6502e623f984821120bda7a216d61..0000000000000000000000000000000000000000
--- a/TP1/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-plugins {
-    id 'java'
-    id 'application'
-}
-
-group = 'org.example'
-version = '1.0-SNAPSHOT'
-
-repositories {
-    mavenCentral()
-}
-
-dependencies {
-    testImplementation platform('org.junit:junit-bom:5.9.1')
-    testImplementation 'org.junit.jupiter:junit-jupiter'
-}
-
-test {
-    useJUnitPlatform()
-}
-
-application {
-    mainClass.set("BlackBox")
-}
\ No newline at end of file
diff --git a/TP1/build.gradle.kts b/TP1/build.gradle.kts
new file mode 100644
index 0000000000000000000000000000000000000000..5663ea9bb81624326f64ae00355517589f3d9385
--- /dev/null
+++ b/TP1/build.gradle.kts
@@ -0,0 +1,30 @@
+plugins {
+    id("java")
+}
+
+group = "fr.univ_amu.m1info"
+version = "1.0-SNAPSHOT"
+
+repositories {
+    mavenCentral()
+}
+
+dependencies {
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.11.4")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.11.4")
+    testRuntimeOnly("org.junit.platform:junit-platform-launcher")
+    testImplementation("org.assertj:assertj-core:3.27.0")
+}
+
+tasks.test {
+    useJUnitPlatform()
+}
+
+
+
+
+
+
+
+
+
diff --git a/TP3/gradle.properties b/TP1/gradle.properties
similarity index 100%
rename from TP3/gradle.properties
rename to TP1/gradle.properties
diff --git a/TP1/gradle/wrapper/gradle-wrapper.jar b/TP1/gradle/wrapper/gradle-wrapper.jar
index 249e5832f090a2944b7473328c07c9755baa3196..41d9927a4d4fb3f96a785543079b8df6723c946b 100644
Binary files a/TP1/gradle/wrapper/gradle-wrapper.jar and b/TP1/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/TP1/gradle/wrapper/gradle-wrapper.properties b/TP1/gradle/wrapper/gradle-wrapper.properties
index 16e76d0519dad7ac3f4b37d9a5e9ca206f111c42..d6e308a63789be4633983409725715f3287f811c 100644
--- a/TP1/gradle/wrapper/gradle-wrapper.properties
+++ b/TP1/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Tue Dec 05 18:16:17 CET 2023
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/TP1/gradlew b/TP1/gradlew
index 1b6c787337ffb79f0e3cf8b1e9f00f680a959de1..5580fce9d759275e4bb2e072524fb732dd182d8f 100755
--- a/TP1/gradlew
+++ b/TP1/gradlew
@@ -55,7 +55,7 @@
 #       Darwin, MinGW, and NonStop.
 #
 #   (3) This script is generated from the Groovy template
-#       https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+#       https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
 #       within the Gradle project.
 #
 #       You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,13 +80,13 @@ do
     esac
 done
 
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-
-APP_NAME="Gradle"
+# This is normally unused
+# shellcheck disable=SC2034
 APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
 
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS='-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"'
 
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD=maximum
@@ -143,12 +143,16 @@ fi
 if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
     case $MAX_FD in #(
       max*)
+        # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+        # shellcheck disable=SC3045
         MAX_FD=$( ulimit -H -n ) ||
             warn "Could not query maximum file descriptor limit"
     esac
     case $MAX_FD in  #(
       '' | soft) :;; #(
       *)
+        # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+        # shellcheck disable=SC3045
         ulimit -n "$MAX_FD" ||
             warn "Could not set maximum file descriptor limit to $MAX_FD"
     esac
@@ -205,6 +209,12 @@ set -- \
         org.gradle.wrapper.GradleWrapperMain \
         "$@"
 
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+    die "xargs is not available"
+fi
+
 # Use "xargs" to parse quoted args.
 #
 # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/TP1/settings.gradle b/TP1/settings.gradle
index 83bb007659a003ee48706a29e6409f505dbe2433..3c15e35af577861e10012c3bb363dc82ecbd835b 100644
--- a/TP1/settings.gradle
+++ b/TP1/settings.gradle
@@ -1,2 +1,2 @@
-rootProject.name = 'tp_1_test_blackbox'
+rootProject.name = 'tp_1_unit_test_and_coverage'
 
diff --git a/TP2/src/main/java/complex/Complex.java b/TP1/src/main/java/complex/Complex.java
similarity index 100%
rename from TP2/src/main/java/complex/Complex.java
rename to TP1/src/main/java/complex/Complex.java
diff --git a/TP2/src/main/java/deque/DoubleEndedQueue.java b/TP1/src/main/java/deque/DoubleEndedQueue.java
similarity index 100%
rename from TP2/src/main/java/deque/DoubleEndedQueue.java
rename to TP1/src/main/java/deque/DoubleEndedQueue.java
diff --git a/TP2/src/main/java/palindrome/Palindrome.java b/TP1/src/main/java/palindrome/Palindrome.java
similarity index 100%
rename from TP2/src/main/java/palindrome/Palindrome.java
rename to TP1/src/main/java/palindrome/Palindrome.java
diff --git a/TP2/src/main/java/partial_coverage/PartialCoverage.java b/TP1/src/main/java/partial_coverage/PartialCoverage.java
similarity index 100%
rename from TP2/src/main/java/partial_coverage/PartialCoverage.java
rename to TP1/src/main/java/partial_coverage/PartialCoverage.java
diff --git a/TP2/src/test/java/complex/ComplexTest.java b/TP1/src/test/java/complex/ComplexTest.java
similarity index 100%
rename from TP2/src/test/java/complex/ComplexTest.java
rename to TP1/src/test/java/complex/ComplexTest.java
diff --git a/TP2/src/test/java/palindrome/PalindromeTest.java b/TP1/src/test/java/palindrome/PalindromeTest.java
similarity index 100%
rename from TP2/src/test/java/palindrome/PalindromeTest.java
rename to TP1/src/test/java/palindrome/PalindromeTest.java
diff --git a/TP2/README.md b/TP2/README.md
index b2db0da092b968442a46bdd798f8a249a2a29f45..0d545b08d32d31dacd63743737ec0fca56e3e883 100644
--- a/TP2/README.md
+++ b/TP2/README.md
@@ -1,14 +1,20 @@
-# TP 2 : tests unitaires et couverture de test
+# Projet
+
+Modèle de projet gradle pour les tests unitaires avec mock grace à [Mockito](https://site.mockito.org/).
 
 Les commandes gradle les plus utiles :
 
 - `gradle test` pour lancer les tests (rapports dans `build/reports/tests/test`),
-- `gradle jacocoTestReport` pour lancer la couverture de code via l'outil [Jacoco](https://www.eclemma.org/jacoco/) (rapport accessible en html à `build/reports/jacoco/test/html/index.html`). 
+- `gradle run` pour lancer le programme,
+- `gradle jacocoTestReport` pour lancer la couverture de code via l'outil [Jacoco](https://www.eclemma.org/jacoco/) (rapports dans `build/reports/jacoco/test`).
 
 Le fichier `build.gradle` contient la configuration du projet avec notamment la définition de la classe contenant la méthode `main` à exécuter pour l'application.
 
+Le projet est configuré (via le fichier `.gitlab-ci.yml`) pour produire un jar et lancer les tests sur le serveur à chaque *push*. Si la suite de tests échoue, vous recevrez un mail avec `Failed pipeline` dans l'intitulé de la part d'etulab.
+
 
 ## Membre(s) du projet
 
 - NOM, prénom du premier membre du projet
 - NOM, prénom du deuxième membre du projet (optionnel)
+
diff --git a/TP2/build.gradle b/TP2/build.gradle
deleted file mode 100644
index 25ec1726898bac12d2df1f420d3cc7b32bfe2fb0..0000000000000000000000000000000000000000
--- a/TP2/build.gradle
+++ /dev/null
@@ -1,42 +0,0 @@
-plugins {
-    id 'java'
-    id 'application'
-    id 'jacoco'
-}
-
-group 'fr.univ_amu'
-version '1.0-SNAPSHOT'
-
-repositories {
-    mavenCentral()
-}
-
-dependencies {
-    testImplementation 'org.junit.jupiter:junit-jupiter:5.9.2'
-    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
-    testImplementation("org.assertj:assertj-core:3.24.2")
-}
-
-test {
-    finalizedBy jacocoTestReport
-}
-
-jacocoTestReport {
-    dependsOn test // tests are required to run before generating the report
-    reports {
-        xml.required = true
-    }
-}
-
-test {
-    useJUnitPlatform()
-}
-
-
-
-
-
-
-
-
-
diff --git a/TP2/build.gradle.kts b/TP2/build.gradle.kts
new file mode 100644
index 0000000000000000000000000000000000000000..7649f093cdc3fd1064d180328281950c1d3e86d8
--- /dev/null
+++ b/TP2/build.gradle.kts
@@ -0,0 +1,43 @@
+plugins {
+    id("java")
+    id("jacoco")
+}
+
+repositories {
+    mavenCentral()
+}
+
+dependencies {
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.11.4")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.11.4")
+    testRuntimeOnly("org.junit.platform:junit-platform-launcher")
+    testImplementation("org.assertj:assertj-core:3.27.0")
+    testImplementation("org.mockito:mockito-core:5.15.2")
+}
+
+tasks.test {
+    finalizedBy("jacocoTestReport")
+}
+
+tasks.jacocoTestReport {
+    dependsOn("test")
+    reports {
+        xml.required = true
+        html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
+    }
+}
+
+tasks.test {
+    useJUnitPlatform()
+}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TP2/gradle/wrapper/gradle-wrapper.properties b/TP2/gradle/wrapper/gradle-wrapper.properties
index a59520664252cb0fcb9587b12a18e36e6aa70253..d6e308a63789be4633983409725715f3287f811c 100644
--- a/TP2/gradle/wrapper/gradle-wrapper.properties
+++ b/TP2/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/TP2/settings.gradle b/TP2/settings.gradle
index e349141e56e1df23a89710b4f561a6221b848d59..b5c5332ddb9fdfb0fd4966c8afdca7529afbf42a 100644
--- a/TP2/settings.gradle
+++ b/TP2/settings.gradle
@@ -1,2 +1,2 @@
-rootProject.name = 'tp_2_unit_test_and_coverage'
+rootProject.name = 'tp_2_mocking'
 
diff --git a/TP1/images/.gitkeep b/TP2/src/main/java/.gitkeep
similarity index 100%
rename from TP1/images/.gitkeep
rename to TP2/src/main/java/.gitkeep
diff --git a/TP3/src/main/java/.gitkeep b/TP2/src/test/java/.gitkeep
similarity index 100%
rename from TP3/src/main/java/.gitkeep
rename to TP2/src/test/java/.gitkeep
diff --git a/TP3/.gitignore b/TP3/.gitignore
index 840c98321c48f07cf005ce614c00ec5b3cf565eb..917e7a67c1f5a24e14265449f95d9cd6fe3c33ac 100644
--- a/TP3/.gitignore
+++ b/TP3/.gitignore
@@ -1,10 +1,14 @@
-.gradle/
-.idea/
-build/**/
-*.iml
-*.ipr
-*.iws
-
+.gradle
+build/
+!gradle/wrapper/gradle-wrapper.jar
+!**/src/main/**/build/
+!**/src/test/**/build/
 
+### IntelliJ IDEA ###
+.idea
 
+### VS Code ###
+.vscode/
 
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/TP3/README.md b/TP3/README.md
index 0d545b08d32d31dacd63743737ec0fca56e3e883..a734f553b48efec227ddf20f8842ab71fbbec6cd 100644
--- a/TP3/README.md
+++ b/TP3/README.md
@@ -1,20 +1,11 @@
-# Projet
+# TP 1 : tests boîte noire
 
-Modèle de projet gradle pour les tests unitaires avec mock grace à [Mockito](https://site.mockito.org/).
+Les exécutables à tester sont dans le répertoire `executables`.
+Les fichiers images correspondant au cas de test sont à mettre dans le répertoire `ìmages`.
 
-Les commandes gradle les plus utiles :
 
-- `gradle test` pour lancer les tests (rapports dans `build/reports/tests/test`),
-- `gradle run` pour lancer le programme,
-- `gradle jacocoTestReport` pour lancer la couverture de code via l'outil [Jacoco](https://www.eclemma.org/jacoco/) (rapports dans `build/reports/jacoco/test`).
-
-Le fichier `build.gradle` contient la configuration du projet avec notamment la définition de la classe contenant la méthode `main` à exécuter pour l'application.
-
-Le projet est configuré (via le fichier `.gitlab-ci.yml`) pour produire un jar et lancer les tests sur le serveur à chaque *push*. Si la suite de tests échoue, vous recevrez un mail avec `Failed pipeline` dans l'intitulé de la part d'etulab.
-
-
-## Membre(s) du projet
-
-- NOM, prénom du premier membre du projet
-- NOM, prénom du deuxième membre du projet (optionnel)
+Pour lancer les tests, il suffit d'utiliser la commande :
 
+```bash
+gradle run
+```
diff --git a/TP3/build.gradle b/TP3/build.gradle
deleted file mode 100644
index 38e5a4efee0af8f9fbfdd4d0f7d973312a65fad6..0000000000000000000000000000000000000000
--- a/TP3/build.gradle
+++ /dev/null
@@ -1,43 +0,0 @@
-plugins {
-    id 'java'
-    id 'application'
-    id 'jacoco'
-}
-
-group 'fr.univ_amu'
-version '1.0-SNAPSHOT'
-
-repositories {
-    mavenCentral()
-}
-
-dependencies {
-    testImplementation 'org.junit.jupiter:junit-jupiter:5.9.2'
-    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
-    testImplementation('org.mockito:mockito-core:5.9.0')
-    testImplementation("org.assertj:assertj-core:3.25.1")
-}
-
-test {
-    finalizedBy jacocoTestReport
-}
-
-jacocoTestReport {
-    dependsOn test // tests are required to run before generating the report
-    reports {
-        xml.required = true
-    }
-}
-
-test {
-    useJUnitPlatform()
-}
-
-
-
-
-
-
-
-
-
diff --git a/TP3/build.gradle.kts b/TP3/build.gradle.kts
new file mode 100644
index 0000000000000000000000000000000000000000..3dde6c7d2200eeb98e67806e712ba9b2df6c54b0
--- /dev/null
+++ b/TP3/build.gradle.kts
@@ -0,0 +1,23 @@
+plugins {
+    id("java")
+    id("application")
+}
+
+repositories {
+    mavenCentral()
+}
+
+dependencies {
+    testImplementation("org.junit.jupiter:junit-jupiter-api:5.11.4")
+    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.11.4")
+    testRuntimeOnly("org.junit.platform:junit-platform-launcher")
+    testImplementation("org.assertj:assertj-core:3.27.0")
+}
+
+tasks.test {
+    useJUnitPlatform()
+}
+
+application {
+    mainClass.set("BlackBox")
+}
\ No newline at end of file
diff --git a/TP1/executables/check00exe b/TP3/executables/check00exe
similarity index 100%
rename from TP1/executables/check00exe
rename to TP3/executables/check00exe
diff --git a/TP1/executables/check01exe b/TP3/executables/check01exe
similarity index 100%
rename from TP1/executables/check01exe
rename to TP3/executables/check01exe
diff --git a/TP1/executables/check02exe b/TP3/executables/check02exe
similarity index 100%
rename from TP1/executables/check02exe
rename to TP3/executables/check02exe
diff --git a/TP1/executables/check03exe b/TP3/executables/check03exe
similarity index 100%
rename from TP1/executables/check03exe
rename to TP3/executables/check03exe
diff --git a/TP1/executables/check04exe b/TP3/executables/check04exe
similarity index 100%
rename from TP1/executables/check04exe
rename to TP3/executables/check04exe
diff --git a/TP1/executables/check05exe b/TP3/executables/check05exe
similarity index 100%
rename from TP1/executables/check05exe
rename to TP3/executables/check05exe
diff --git a/TP1/executables/check06exe b/TP3/executables/check06exe
similarity index 100%
rename from TP1/executables/check06exe
rename to TP3/executables/check06exe
diff --git a/TP1/executables/check07exe b/TP3/executables/check07exe
similarity index 100%
rename from TP1/executables/check07exe
rename to TP3/executables/check07exe
diff --git a/TP1/executables/check08exe b/TP3/executables/check08exe
similarity index 100%
rename from TP1/executables/check08exe
rename to TP3/executables/check08exe
diff --git a/TP1/executables/check09exe b/TP3/executables/check09exe
similarity index 100%
rename from TP1/executables/check09exe
rename to TP3/executables/check09exe
diff --git a/TP1/executables/check10exe b/TP3/executables/check10exe
similarity index 100%
rename from TP1/executables/check10exe
rename to TP3/executables/check10exe
diff --git a/TP1/executables/check11exe b/TP3/executables/check11exe
similarity index 100%
rename from TP1/executables/check11exe
rename to TP3/executables/check11exe
diff --git a/TP3/gradle/wrapper/gradle-wrapper.jar b/TP3/gradle/wrapper/gradle-wrapper.jar
index 41d9927a4d4fb3f96a785543079b8df6723c946b..249e5832f090a2944b7473328c07c9755baa3196 100644
Binary files a/TP3/gradle/wrapper/gradle-wrapper.jar and b/TP3/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/TP3/gradle/wrapper/gradle-wrapper.properties b/TP3/gradle/wrapper/gradle-wrapper.properties
index a59520664252cb0fcb9587b12a18e36e6aa70253..6cad6cda26cd7ba51db63aec97ff7128ec72f7c9 100644
--- a/TP3/gradle/wrapper/gradle-wrapper.properties
+++ b/TP3/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Tue Dec 05 18:16:17 CET 2023
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/TP3/gradlew b/TP3/gradlew
index 5580fce9d759275e4bb2e072524fb732dd182d8f..1b6c787337ffb79f0e3cf8b1e9f00f680a959de1 100755
--- a/TP3/gradlew
+++ b/TP3/gradlew
@@ -55,7 +55,7 @@
 #       Darwin, MinGW, and NonStop.
 #
 #   (3) This script is generated from the Groovy template
-#       https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+#       https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
 #       within the Gradle project.
 #
 #       You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,13 +80,13 @@ do
     esac
 done
 
-# This is normally unused
-# shellcheck disable=SC2034
-APP_BASE_NAME=${0##*/}
 APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
 
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
 
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD=maximum
@@ -143,16 +143,12 @@ fi
 if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
     case $MAX_FD in #(
       max*)
-        # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
-        # shellcheck disable=SC3045
         MAX_FD=$( ulimit -H -n ) ||
             warn "Could not query maximum file descriptor limit"
     esac
     case $MAX_FD in  #(
       '' | soft) :;; #(
       *)
-        # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
-        # shellcheck disable=SC3045
         ulimit -n "$MAX_FD" ||
             warn "Could not set maximum file descriptor limit to $MAX_FD"
     esac
@@ -209,12 +205,6 @@ set -- \
         org.gradle.wrapper.GradleWrapperMain \
         "$@"
 
-# Stop when "xargs" is not available.
-if ! command -v xargs >/dev/null 2>&1
-then
-    die "xargs is not available"
-fi
-
 # Use "xargs" to parse quoted args.
 #
 # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/TP3/src/test/java/.gitkeep b/TP3/images/.gitkeep
similarity index 100%
rename from TP3/src/test/java/.gitkeep
rename to TP3/images/.gitkeep
diff --git a/TP3/settings.gradle b/TP3/settings.gradle
index 3537f06ea9687dbef31f75bf1b44abe34d7274eb..11bb3fe03fed7d6f63e74b053738c4585c06a99a 100644
--- a/TP3/settings.gradle
+++ b/TP3/settings.gradle
@@ -1,2 +1,2 @@
-rootProject.name = 'tp_3_mocking'
+rootProject.name = 'tp_3_test_blackbox'
 
diff --git a/TP1/src/main/java/BlackBox.java b/TP3/src/main/java/BlackBox.java
similarity index 100%
rename from TP1/src/main/java/BlackBox.java
rename to TP3/src/main/java/BlackBox.java