diff --git a/src/test/java/fr/univlille/sae/classification/knn/distance/DistanceManhattanNormaliseeTest.java b/src/test/java/fr/univlille/sae/classification/knn/distance/DistanceManhattanNormaliseeTest.java
index be9d92eabf8b97a270b1b9a3f3a41affecdd3b5f..f29a057a70b9dc3ec2c3066152f2efd15cbab66a 100644
--- a/src/test/java/fr/univlille/sae/classification/knn/distance/DistanceManhattanNormaliseeTest.java
+++ b/src/test/java/fr/univlille/sae/classification/knn/distance/DistanceManhattanNormaliseeTest.java
@@ -1,40 +1,42 @@
 package fr.univlille.sae.classification.knn.distance;
 
-import static org.junit.jupiter.api.Assertions.*;
-
-import org.junit.jupiter.api.Test;
 import fr.univlille.sae.classification.model.LoadableData;
 import fr.univlille.sae.classification.knn.MethodKNN;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.util.Map;
 
-public class DistanceManhattanNormaliseeTest {
+import static org.junit.jupiter.api.Assertions.*;
+
+class DistanceManhattanNormaliseeTest {
 
-    private DistanceManhattanNormalisee distanceManhattan;
+    private DistanceManhattanNormalisee distanceManhattanNormalisee;
 
     @BeforeEach
-    public void setUp() {
-        // Initialisation de l'objet DistanceManhattanNormalisee avant chaque test
-        distanceManhattan = new DistanceManhattanNormalisee();
+    void setUp() {
+        distanceManhattanNormalisee = new DistanceManhattanNormalisee();
 
-        // Définition des valeurs de normalisation dans MethodKNN (à ajuster selon votre logique)
-        MethodKNN.minData = new double[] {0.0, 0.0};  // Valeurs minimales pour les attributs
-        MethodKNN.amplitude = new double[] {1.0, 1.0};  // Amplitude pour la normalisation
+        // Configurer les valeurs statiques pour la normalisation
+        MethodKNN.minData = new double[]{1.0, 2.0, 0.5};
+        MethodKNN.amplitude = new double[]{4.0, 3.0, 2.5};
     }
 
     @Test
-    public void testDistanceSimple() {
-        // Création de deux objets LoadableData avec des attributs simples
-        LoadableData data1 = new LoadableData() {
+    void testDistance_Calculation() {
+        LoadableData l1 = new LoadableData() {
+            @Override
+            public double[] getAttributes() {
+                return new double[]{2.0, 5.0, 1.0};
+            }
+
             @Override
             public String getClassification() {
-                return null;
+                return "Class1";
             }
 
             @Override
             public void setClassification(String classification) {
-
             }
 
             @Override
@@ -42,25 +44,25 @@ public class DistanceManhattanNormaliseeTest {
                 return null;
             }
 
-            @Override
-            public double[] getAttributes() {
-                return new double[0];
-            }
-
             @Override
             public String[] getStringAttributes() {
                 return new String[0];
             }
         };
-        LoadableData data2 = new LoadableData() {
+
+        LoadableData l2 = new LoadableData() {
+            @Override
+            public double[] getAttributes() {
+                return new double[]{4.0, 4.0, 2.0};
+            }
+
             @Override
             public String getClassification() {
-                return null;
+                return "Class2";
             }
 
             @Override
             public void setClassification(String classification) {
-
             }
 
             @Override
@@ -68,39 +70,36 @@ public class DistanceManhattanNormaliseeTest {
                 return null;
             }
 
-            @Override
-            public double[] getAttributes() {
-                return new double[0];
-            }
-
             @Override
             public String[] getStringAttributes() {
                 return new String[0];
             }
         };
 
-        // Calcul de la distance manhattan normalisée
-        double result = distanceManhattan.distance(data1, data2);
-
-        // Calcul attendu : (|1.0 - 3.0| / 1.0) + (|2.0 - 5.0| / 1.0)
-        double expected = (Math.abs(1.0 - 3.0) / 1.0) + (Math.abs(2.0 - 5.0) / 1.0);
+        double expectedDistance =
+                (Math.abs(2.0 - 4.0) - 1.0) / 4.0 +
+                        (Math.abs(5.0 - 4.0) - 2.0) / 3.0 +
+                        (Math.abs(1.0 - 2.0) - 0.5) / 2.5;
 
-        // Vérification du résultat
-        assertEquals(expected, result, 0.001);
+        assertEquals(expectedDistance, distanceManhattanNormalisee.distance(l1, l2), 1e-6);
     }
 
     @Test
-    public void testDistanceZero() {
-        // Deux objets avec les mêmes attributs (la distance devrait être 0)
-        LoadableData data1 = new LoadableData() {
+    void testDistance_ZeroDistance() {
+        MethodKNN.minData = new double[]{0.0, 0.0, 0.0};
+        LoadableData l1 = new LoadableData() {
+            @Override
+            public double[] getAttributes() {
+                return new double[]{3.0, 3.0, 3.0};
+            }
+
             @Override
             public String getClassification() {
-                return null;
+                return "Class1";
             }
 
             @Override
             public void setClassification(String classification) {
-
             }
 
             @Override
@@ -108,25 +107,25 @@ public class DistanceManhattanNormaliseeTest {
                 return null;
             }
 
-            @Override
-            public double[] getAttributes() {
-                return new double[0];
-            }
-
             @Override
             public String[] getStringAttributes() {
                 return new String[0];
             }
         };
-        LoadableData data2 = new LoadableData() {
+
+        LoadableData l2 = new LoadableData() {
+            @Override
+            public double[] getAttributes() {
+                return new double[]{3.0, 3.0, 3.0};
+            }
+
             @Override
             public String getClassification() {
-                return null;
+                return "Class1";
             }
 
             @Override
             public void setClassification(String classification) {
-
             }
 
             @Override
@@ -134,60 +133,31 @@ public class DistanceManhattanNormaliseeTest {
                 return null;
             }
 
-            @Override
-            public double[] getAttributes() {
-                return new double[0];
-            }
-
             @Override
             public String[] getStringAttributes() {
                 return new String[0];
             }
         };
 
-        // Vérification que la distance est bien 0
-        double result = distanceManhattan.distance(data1, data2);
-        assertEquals(0.0, result, 0.001);
+        assertEquals(0.0, distanceManhattanNormalisee.distance(l1, l2), 1e-6);
     }
 
-    @Test
-    public void testDistanceAvecValeursExtremes() {
-        // Test avec des valeurs maximales ou minimales (hypothétiques dans ce cas)
-        LoadableData data1 = new LoadableData() {
-            @Override
-            public String getClassification() {
-                return null;
-            }
-
-            @Override
-            public void setClassification(String classification) {
-
-            }
-
-            @Override
-            public Map<String, Object> getAttributesNames() {
-                return null;
-            }
 
+    @Test
+    void testDistance_EmptyAttributes() {
+        LoadableData l1 = new LoadableData() {
             @Override
             public double[] getAttributes() {
-                return new double[0];
+                return new double[]{};
             }
 
-            @Override
-            public String[] getStringAttributes() {
-                return new String[0];
-            }
-        };
-        LoadableData data2 = new LoadableData() {
             @Override
             public String getClassification() {
-                return null;
+                return "Class1";
             }
 
             @Override
             public void setClassification(String classification) {
-
             }
 
             @Override
@@ -195,38 +165,25 @@ public class DistanceManhattanNormaliseeTest {
                 return null;
             }
 
-            @Override
-            public double[] getAttributes() {
-                return new double[0];
-            }
-
             @Override
             public String[] getStringAttributes() {
                 return new String[0];
             }
         };
 
-        double result = distanceManhattan.distance(data1, data2);
-
-        // Calcul de la distance, ici l'effet de normalisation devrait être pris en compte
-        double expected = (Math.abs(Double.MAX_VALUE - Double.MIN_VALUE) / 1.0) +
-                (Math.abs(Double.MIN_VALUE - Double.MAX_VALUE) / 1.0);
-
-        assertEquals(expected, result, 0.001);
-    }
+        LoadableData l2 = new LoadableData() {
+            @Override
+            public double[] getAttributes() {
+                return new double[]{};
+            }
 
-    @Test
-    public void testDistanceAvecDonneesNulles() {
-        // Test avec des données nulles
-        LoadableData data1 = new LoadableData() {
             @Override
             public String getClassification() {
-                return null;
+                return "Class2";
             }
 
             @Override
             public void setClassification(String classification) {
-
             }
 
             @Override
@@ -234,38 +191,30 @@ public class DistanceManhattanNormaliseeTest {
                 return null;
             }
 
-            @Override
-            public double[] getAttributes() {
-                return new double[0];
-            }
-
             @Override
             public String[] getStringAttributes() {
                 return new String[0];
             }
         };
-        LoadableData data2 = null;
-
-        try {
-            distanceManhattan.distance(data1, data2);
-            fail("La méthode devrait lever une exception quand l'un des objets est nul");
-        } catch (NullPointerException e) {
-            // Vérification qu'une exception est lancée
-        }
+
+        assertEquals(0.0, distanceManhattanNormalisee.distance(l1, l2), 1e-6);
     }
 
     @Test
-    public void testDistanceAvecDonneesVides() {
-        // Test avec des données vides (tous les attributs sont 0 ou absents)
-        LoadableData data1 = new LoadableData() {
+    void testDistance_DifferentLengthAttributes() {
+        LoadableData l1 = new LoadableData() {
+            @Override
+            public double[] getAttributes() {
+                return new double[]{2.0, 3.0};
+            }
+
             @Override
             public String getClassification() {
-                return null;
+                return "Class1";
             }
 
             @Override
             public void setClassification(String classification) {
-
             }
 
             @Override
@@ -273,25 +222,25 @@ public class DistanceManhattanNormaliseeTest {
                 return null;
             }
 
-            @Override
-            public double[] getAttributes() {
-                return new double[0];
-            }
-
             @Override
             public String[] getStringAttributes() {
                 return new String[0];
             }
         };
-        LoadableData data2 = new LoadableData() {
+
+        LoadableData l2 = new LoadableData() {
+            @Override
+            public double[] getAttributes() {
+                return new double[]{2.0};
+            }
+
             @Override
             public String getClassification() {
-                return null;
+                return "Class2";
             }
 
             @Override
             public void setClassification(String classification) {
-
             }
 
             @Override
@@ -299,19 +248,17 @@ public class DistanceManhattanNormaliseeTest {
                 return null;
             }
 
-            @Override
-            public double[] getAttributes() {
-                return new double[0];
-            }
-
             @Override
             public String[] getStringAttributes() {
                 return new String[0];
             }
         };
 
-        // La distance devrait être 0 car il n'y a aucune différence d'attribut
-        double result = distanceManhattan.distance(data1, data2);
-        assertEquals(0.0, result, 0.001);
+        Exception exception = assertThrows(
+                ArrayIndexOutOfBoundsException.class,
+                () -> distanceManhattanNormalisee.distance(l1, l2)
+        );
+
+        assertEquals("Index 1 out of bounds for length 1", exception.getMessage());
     }
 }