diff --git a/src/test/java/fr/univlille/sae/classification/model/ClassificationModelTest.java b/src/test/java/fr/univlille/sae/classification/model/ClassificationModelTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..2b826541a9498a452c76769abc18f666bc30365d
--- /dev/null
+++ b/src/test/java/fr/univlille/sae/classification/model/ClassificationModelTest.java
@@ -0,0 +1,80 @@
+package fr.univlille.sae.classification.model;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class ClassificationModelTest {
+
+    private ClassificationModel model;
+
+    @BeforeEach
+    void setUp() {
+        model = ClassificationModel.getClassificationModel();
+    }
+
+    @Test
+    void testSingletonInstance() {
+        ClassificationModel anotherModel = ClassificationModel.getClassificationModel();
+        assertSame(model, anotherModel);
+    }
+
+    @Test
+    void testAjouterDonnee() {
+        double[] coords = {5.1, 3.5, 1.4, 0.2};
+        model.ajouterDonnee(coords);
+        
+        List<LoadableData> dataToClass = model.getDataToClass();
+        assertEquals(1, dataToClass.size());
+        assertNotNull(dataToClass.get(0).getClassification());
+    }
+
+    @Test
+    void testAjouterDonneeInsuffisante() {
+        Exception exception = assertThrows(IllegalArgumentException.class, () -> {
+            model.ajouterDonnee(5.1);
+        });
+        assertEquals(null, exception.getMessage());
+    }
+
+    @Test
+    void testLoadData() throws IOException {
+        File csvTemp = File.createTempFile("test", ".csv");
+        String csvTest = "sepal_length,sepal_width,petal_length,petal_width,class\n" +
+                         "5.1,3.5,1.4,0.2,Iris-setosa\n" +
+                         "4.9,3.0,1.4,0.2,Iris-setosa\n";
+        Files.write(Paths.get(csvTemp.getAbsolutePath()), csvTest.getBytes());
+
+        model.loadData(csvTemp);
+
+        List<LoadableData> datas = model.getDatas();
+        assertEquals(2, datas.size());
+        
+        csvTemp.delete();
+    }
+
+    @Test
+    void testClassifierDonnees() {
+        double[] coords1 = {5.1, 3.5, 1.4, 0.2};
+        double[] coords2 = {4.9, 3.0, 1.4, 0.2};
+        model.ajouterDonnee(coords1);
+        model.ajouterDonnee(coords2);
+        
+        model.classifierDonnees();
+
+        assertEquals(0, model.getDataToClass().size());
+    }
+
+    @Test
+    void testSetType() {
+        model.setType(DataType.IRIS);
+        assertEquals(DataType.IRIS, model.getType());
+    }
+}
diff --git a/src/test/java/fr/univlille/sae/classification/model/IrisTest.java b/src/test/java/fr/univlille/sae/classification/model/IrisTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..e0873a5f3a78475d65d874d2e7d40ab6788a9f0a
--- /dev/null
+++ b/src/test/java/fr/univlille/sae/classification/model/IrisTest.java
@@ -0,0 +1,50 @@
+package fr.univlille.sae.classification.model;
+import javafx.scene.paint.Color;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class IrisTest {
+
+    Iris iris = new Iris(2.8, 3.0, 1.9, 4.1, "Setosa");
+
+    @Test
+    void getSepalWidth() {
+        assertEquals(3.0 , iris.getSepalWidth());
+    }
+
+    @Test
+    void getSepalLength() {
+        assertEquals(2.8, iris.getSepalLength());
+    }
+
+    @Test
+    void getPetalWidth() {
+        assertEquals(4.1, iris.getPetalWidth());
+    }
+
+    @Test
+    void getPetalLength() {
+        assertEquals(1.9, iris.getPetalLength());
+    }
+
+
+    @Test
+    void getDataType() {
+        assertEquals(3.0 , iris.getDataType("sepalWidth"));
+        assertEquals(2.8, iris.getDataType("sepalLength"));
+        assertEquals(4.1, iris.getDataType("petalWidth"));
+        assertEquals(1.9, iris.getDataType("petalLength"));
+    }
+
+    @Test
+    void getColor() {
+        assertEquals(Color.RED, iris.getColor());
+    }
+
+    @Test
+    void testToString() {
+        assertEquals("Iris{sepalLength=2.8, sepalWidth=3.0, petalLength=1.9, petalWidth=4.1}", iris.toString());
+    }
+}
\ No newline at end of file