From dc35595d912b26bcd474bbd25b4456891ee111d8 Mon Sep 17 00:00:00 2001 From: Laurent Pierron <Laurent.Pierron@inria.fr> Date: Sun, 29 Jan 2023 19:10:55 +0100 Subject: [PATCH] Adding a new operator '=' to avoid to do a sub again after an equal operation. --- src/main/java/fr/nancy/iut/CalcEngine.java | 3 +- .../java/fr/nancy/iut/CalcEngineTest.java | 28 ++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/fr/nancy/iut/CalcEngine.java b/src/main/java/fr/nancy/iut/CalcEngine.java index 14bc40d..3ab5436 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 f9138b6..1b4053e 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()); + } + } -- GitLab