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