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/CalcEngineTest.java b/src/test/java/fr/nancy/iut/CalcEngineTest.java index f9138b61bedf9454a5e74b5df5f24c0af00ff144..1b4053e6d2be5c5722c51e638af5af01ec07c0fc 100644 --- a/src/test/java/fr/nancy/iut/CalcEngineTest.java +++ b/src/test/java/fr/nancy/iut/CalcEngineTest.java @@ -25,7 +25,7 @@ public class CalcEngineTest { } @Test - @DisplayName("TTesting the addition operation : 3 + 4 = 7") + @DisplayName("Testing the addition operation : 3 + 4 = 7") void testPlus() { // Make sure the engine is in a valid starting state. engine.clear(); @@ -38,4 +38,30 @@ public class CalcEngineTest { assertEquals(7, engine.getDisplayValue()); } + @Test + @DisplayName("Testing the operation : 1 + 2 + 3 = - 2 = - 1 = 3 ") + void testComplexFormula() { + // Make sure the engine is in a valid starting state. + engine.clear(); + // Simulate the key presses: 1 + 2 + 3 = + engine.numberPressed(1); + engine.plus(); + engine.numberPressed(2); + engine.plus(); + engine.numberPressed(3); + engine.equals(); + // Intermediate result : 6 + assertEquals(6, engine.getDisplayValue()); + engine.minus(); + engine.numberPressed(2); + engine.equals(); + // Intermediate result : 4 (6 _ 2) + assertEquals(4, engine.getDisplayValue()); + engine.minus(); + engine.numberPressed(1); + engine.equals(); + // Final result : 3 (4 - 1). + assertEquals(3, engine.getDisplayValue()); + } + }