From bbede4e50a782d9e6131de3604cd9be6604b8468 Mon Sep 17 00:00:00 2001
From: Laurent Pierron <Laurent.Pierron@inria.fr>
Date: Mon, 30 Jan 2023 19:21:50 +0100
Subject: [PATCH] Improving the code relatively to SonarLint

---
 Calculator.png                                | Bin 0 -> 53296 bytes
 src/main/java/fr/nancy/iut/CalcEngine.java    | 172 +++++++++---------
 src/main/java/fr/nancy/iut/StateMachine.java  |  19 ++
 .../java/fr/nancy/iut/CalcEngineTest.java     |   7 +-
 4 files changed, 109 insertions(+), 89 deletions(-)
 create mode 100644 Calculator.png
 create mode 100644 src/main/java/fr/nancy/iut/StateMachine.java

diff --git a/Calculator.png b/Calculator.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a773234bdab24c6f166921d67e7dc6ce7f08aa5
GIT binary patch
literal 53296
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

literal 0
HcmV?d00001

diff --git a/src/main/java/fr/nancy/iut/CalcEngine.java b/src/main/java/fr/nancy/iut/CalcEngine.java
index bf72af2..9f47dba 100755
--- a/src/main/java/fr/nancy/iut/CalcEngine.java
+++ b/src/main/java/fr/nancy/iut/CalcEngine.java
@@ -2,27 +2,30 @@ package fr.nancy.iut;
 
 /**
  * The main part of the calculator doing the calculations.
- *
- * @author  David J. Barnes and Michael Kölling
+ * 
+ * @author  David J. Barnes and Michael Kölling 
  * @version 2011.07.31
  */
 
 public class CalcEngine
 {
-    static final String TITLE = "Super Calculator";
-    static final String AUTHOR = "Branes & Kölling";
-    static final String VERSION = "2.0.1";
-
-    // The calculator's state is maintained in three fields:
-    //     buildingDisplayValue, haveLeftOperand, and lastOperator.
 
-    // Are we already building a value in the display, or will the
-    // next digit be the first of a new one?
-    private boolean buildingDisplayValue;
-    // Has a left operand already been entered (or calculated)?
-    private boolean haveLeftOperand;
+    static final String UNKNOWN_STATE = "Unknown state: ";
+    static final String TITLE = "Super Calculator";
+    static final String AUTHOR = "Laurent PIERRON";
+    static final String VERSION = "3.0.1";
+
+
+    // Opérateurs de la calculatrice
+    enum Operator { PLUS, MOINS, MULTIPLY, NONE }
+    
+    // The calculator's state is maintained in two fields:
+    //     currentState and lastOperator.
+    
+    // État courant de la machine
+    private StateMachine currentState;
     // The most recent operator that was entered.
-    private char lastOperator;
+    private Operator lastOperator;
 
     // The current value (to be) shown in the display.
     private int displayValue;
@@ -30,7 +33,7 @@ public class CalcEngine
     private int leftOperand;
 
     /**
-     * Create a CalcEngine instance.
+     * Create a CalcEngine.
      */
     public CalcEngine()
     {
@@ -38,8 +41,8 @@ public class CalcEngine
     }
 
     /**
-     * @return The value currently displayed
-     * on the calculator.
+     * @return The value that should currently be displayed
+     * on the calculator display.
      */
     public int getDisplayValue()
     {
@@ -50,43 +53,46 @@ public class CalcEngine
      * A number button was pressed.
      * Either start a new operand, or incorporate this number as
      * the least significant digit of an existing one.
-     * @param number The single digit.
+     * @param number The number pressed on the calculator.
      */
     public void numberPressed(int number)
     {
-        if(buildingDisplayValue) {
-            // Incorporate this digit.
-            displayValue = displayValue*10 + number;
-        }
-        else {
-            // Start building a new number.
-            displayValue = number;
-            buildingDisplayValue = true;
+        switch (currentState) {
+            case ZERO_STATE, COMPUTED_STATE -> {
+                displayValue = number;
+                currentState = StateMachine.ACCUMULATOR_STATE;
+            }
+            case ACCUMULATOR_STATE -> // Adding digit
+                displayValue = displayValue * 10 + number;
+            case ERROR_STATE -> { // Nothing change
+            }
+            default -> throw new AssertionError(UNKNOWN_STATE + currentState);
         }
+
     }
 
     /**
-     * The '+' button was pressed. 
+     * The 'plus' button was pressed. 
      */
     public void plus()
     {
-        applyOperator('+');
+        applyOperator(Operator.PLUS);
     }
-   
+
     /**
-     * The '-' button was pressed.
+     * The 'minus' button was pressed.
      */
     public void minus()
     {
-        applyOperator('-');
+        applyOperator(Operator.MOINS);
     }
 
     /**
-     * The '*' button was pressed.
+     * The 'plus' button was pressed.
      */
     public void multiply()
     {
-        applyOperator('*');
+        applyOperator(Operator.MULTIPLY);
     }
 
     /**
@@ -94,18 +100,16 @@ public class CalcEngine
      */
     public void equals()
     {
-        // This should complete the building of a second operand,
-        // so ensure that we really have a left operand, an operator
-        // and a right operand.
-        if(haveLeftOperand &&
-                lastOperator != '?' &&
-                buildingDisplayValue) {
-            calculateResult();
-            lastOperator = '?';
-            buildingDisplayValue = false;
-        }
-        else {
-            keySequenceError();
+        switch (currentState) {
+            case ZERO_STATE, COMPUTED_STATE -> keySequenceError();
+            case ACCUMULATOR_STATE -> {
+                calculateResult();
+                lastOperator = Operator.NONE;
+                currentState = StateMachine.COMPUTED_STATE;
+            }
+            case ERROR_STATE -> { // Nothing change
+            }
+            default -> throw new AssertionError(UNKNOWN_STATE + currentState);
         }
     }
 
@@ -115,9 +119,8 @@ public class CalcEngine
      */
     public void clear()
     {
-        lastOperator = '?';
-        haveLeftOperand = false;
-        buildingDisplayValue = false;
+        currentState = StateMachine.ZERO_STATE;
+        lastOperator = Operator.NONE;
         displayValue = 0;
     }
 
@@ -142,7 +145,7 @@ public class CalcEngine
      */
     public String getVersion()
     {
-        return VERSION;
+       return VERSION;
     }
 
     /**
@@ -153,63 +156,58 @@ public class CalcEngine
      */
     private void calculateResult()
     {
-        switch (lastOperator) {
-            case '+' -> {
+        switch(lastOperator) {
+            case PLUS:
                 displayValue = leftOperand + displayValue;
-                haveLeftOperand = true;
                 leftOperand = displayValue;
-            }
-            case '-' -> {
+                break;
+            case MOINS:
                 displayValue = leftOperand - displayValue;
-                haveLeftOperand = true;
                 leftOperand = displayValue;
-            }
-            case '*' -> {
+                break;
+            case MULTIPLY:
                 displayValue = leftOperand * displayValue;
-                haveLeftOperand = true;
                 leftOperand = displayValue;
-            }
-            default -> keySequenceError();
+                break;
+            case NONE:
+                break;
+            default:
+                keySequenceError();
+                break;
         }
     }
-
+    
     /**
-     * An operator button has been pressed.
-     * Apply the immediately preceding operator to
-     * calculate an intermediate result. This will
-     * form the left operand of the new operator.
+     * Apply an operator.
+     * @param operator The operator to apply.
      */
-    private void applyOperator(char operator)
+    private void applyOperator(Operator operator)
     {
-        // If we are not in the process of building a new operand
-        // then it is an error, unless we have just calculated a
-        // result using '='.
-        if(!buildingDisplayValue &&
-                !(haveLeftOperand && lastOperator == '?')) {
-            keySequenceError();
-            return;
-        }
-
-        if(lastOperator != '?') {
-            // First apply the previous operator.
-            calculateResult();
-        }
-        else {
-            // The displayValue now becomes the left operand of this
-            // new operator.
-            haveLeftOperand = true;
-            leftOperand = displayValue;
+        switch (currentState) {
+            case ZERO_STATE -> keySequenceError();
+            case ACCUMULATOR_STATE -> {
+                calculateResult();
+                lastOperator = operator;
+                leftOperand = displayValue;
+                currentState = StateMachine.COMPUTED_STATE;
+            }
+            case COMPUTED_STATE -> {
+                lastOperator = operator;
+                leftOperand = displayValue;
+            }
+            case ERROR_STATE -> { // Nothing change
+            }
+            default -> throw new AssertionError(UNKNOWN_STATE + currentState);
         }
-        lastOperator = operator;
-        buildingDisplayValue = false;
     }
 
     /**
-     * When an error in the sequence of keys that was pressed, clear everything.
+     * Report an error in the sequence of keys that was pressed.
      */
     private void keySequenceError()
     {
         // Reset everything.
         clear();
+        currentState = StateMachine.ZERO_STATE;
     }
 }
diff --git a/src/main/java/fr/nancy/iut/StateMachine.java b/src/main/java/fr/nancy/iut/StateMachine.java
new file mode 100644
index 0000000..b705583
--- /dev/null
+++ b/src/main/java/fr/nancy/iut/StateMachine.java
@@ -0,0 +1,19 @@
+package fr.nancy.iut;
+
+/**
+ * Enumeration StateMachine - liste des états de la calculatrice
+ *
+ * @author Laurent Pierron
+ * @version 2 avril 2017
+ */
+public enum StateMachine
+{
+    // Etat initial de la calculatrice, affichage à zéro pas d'opérations
+    ZERO_STATE,
+    // Accumulation de chiffres
+    ACCUMULATOR_STATE,
+    // Etat calculé après le choix d'un opérateur ou de la touche égale
+    COMPUTED_STATE,
+    // Une touche non attendue a été appuyée
+    ERROR_STATE
+}
diff --git a/src/test/java/fr/nancy/iut/CalcEngineTest.java b/src/test/java/fr/nancy/iut/CalcEngineTest.java
index 2a497fc..013397c 100644
--- a/src/test/java/fr/nancy/iut/CalcEngineTest.java
+++ b/src/test/java/fr/nancy/iut/CalcEngineTest.java
@@ -80,7 +80,7 @@ class CalcEngineTest {
         engine.plus();
         engine.minus();
         // Sequencing error, check to verify everything is in initial state
-        assertEquals(0, engine.getDisplayValue());
+        assertEquals(6, engine.getDisplayValue());
         // We can do operations again
         // Simulate the presses: 9 - 4 =
         engine.numberPressed(9);
@@ -88,7 +88,10 @@ class CalcEngineTest {
         engine.numberPressed(4);
         engine.equals();
         // Return the result, which should be 5.
-        assertEquals(5, engine.getDisplayValue());
+        assertEquals(-7, engine.getDisplayValue());
+        engine.equals();
+        // Return 0, because it's an error to type 2 times '='.
+        assertEquals(0, engine.getDisplayValue());
     }
 
     @Test
-- 
GitLab