diff --git a/src/main/java/fr/nancy/iut/CalcEngine.java b/src/main/java/fr/nancy/iut/CalcEngine.java
index 14bc40d97f4b0cccda0346dbf1f976bd825c6209..3ab5436aaca381700879eb1f76cc38868ea5a85d 100755
--- a/src/main/java/fr/nancy/iut/CalcEngine.java
+++ b/src/main/java/fr/nancy/iut/CalcEngine.java
@@ -72,10 +72,11 @@ public class CalcEngine
         if (previousOperator == '+') {
             displayValue = leftOperand + displayValue;
         }
-        else {
+        else if (previousOperator == '-') {
             displayValue = leftOperand - displayValue;
         }
         leftOperand = 0;
+        previousOperator = '=';
     }
 
     /**
diff --git a/src/test/java/fr/nancy/iut/CalculatorTest.java b/src/test/java/fr/nancy/iut/CalculatorTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..0ed5fdd5a8adfde0dd1d4590b535a70665486eaa
--- /dev/null
+++ b/src/test/java/fr/nancy/iut/CalculatorTest.java
@@ -0,0 +1,27 @@
+package fr.nancy.iut;
+
+import org.junit.jupiter.api.Test;
+
+import java.util.function.BooleanSupplier;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class CalculatorTest
+{
+    @Test
+    public void testCalculator()
+    {
+        Calculator calculator = new Calculator();
+        assertEquals(0, calculator.getEngine().getDisplayValue());
+        // regarde si le GUI est existant
+        assertTrue(calculator.getGui().getVisible());
+    }
+
+    @Test
+    public void testShow()
+    {
+        Calculator calculator = new Calculator();
+        calculator.show();
+        assertTrue(calculator.getGui().getVisible());
+    }
+}
diff --git a/src/test/java/fr/nancy/iut/UserInterfaceTest.java b/src/test/java/fr/nancy/iut/UserInterfaceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..d0d549f20e83ab0d161c38940398ac31fa800e1b
--- /dev/null
+++ b/src/test/java/fr/nancy/iut/UserInterfaceTest.java
@@ -0,0 +1,105 @@
+package fr.nancy.iut;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class UserInterfaceTest
+{
+    @Test
+    public void testUserInterface()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        assertTrue(userInterface.getVisible());
+    }
+
+    @Test
+    public void testGetVisible()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        assertTrue(userInterface.getVisible());
+    }
+
+    @Test
+    public void testSetVisible()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        userInterface.setVisible(true);
+        assertTrue(userInterface.getVisible());
+    }
+
+    @Test
+    public void testGetDisplay()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        assertEquals("", userInterface.getDisplay().getText());
+    }
+
+    @Test
+    public void testSetDisplay()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "0"));
+        assertEquals("0", userInterface.getDisplay().getText());
+    }
+
+    @Test
+    public void testNombres()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "0"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "1"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "2"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "3"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "4"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "5"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "6"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "7"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "8"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "9"));
+        assertEquals("123456789", userInterface.getDisplay().getText());
+    }
+
+    @Test
+    public void testOperateurs()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "+"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "-"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "*"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "/"));
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "="));
+        assertEquals("0", userInterface.getDisplay().getText());
+    }
+
+    @Test
+    public void testClear()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "C"));
+        assertEquals("0", userInterface.getDisplay().getText());
+    }
+
+    @Test
+    public void testInterogation()
+    {
+        CalcEngine calcEngine = new CalcEngine();
+        UserInterface userInterface = new UserInterface(calcEngine);
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "?"));
+        assertEquals("0", userInterface.getDisplay().getText());
+        assertEquals(calcEngine.getVersion(), userInterface.getStatus().getText());
+        userInterface.actionPerformed(new java.awt.event.ActionEvent(userInterface, 0, "?"));
+        assertEquals(calcEngine.getAuthor(), userInterface.getStatus().getText());
+    }
+
+
+}