diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..1bebc53 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -3,7 +3,7 @@ // behaviour inspired by https://www.online-calculator.com/ public class Calculator { - private String screen = "0"; + private String screen = ""; private double latestValue; @@ -16,7 +16,10 @@ public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); if(latestOperation.isEmpty()) { - screen = screen + digit; + if (screen == "0") + screen = Integer.toString(digit); + else screen = screen + digit; + } else { latestValue = Double.parseDouble(screen); screen = Integer.toString(digit); diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..d0c6359 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -16,4 +16,38 @@ void calculatorCanDoTwoPlusTwo() { calc.pressEquals(); assertEquals("4", calc.readScreen()); } + + @Test + @DisplayName("should display result 0 after pressing the clear key") + void calculatorCanDoClear() { + Calculator calc = new Calculator(); + calc.pressDigitKey(2); + calc.pressOperationKey("x"); + calc.pressDigitKey(5); + calc.pressEquals(); + calc.pressClearKey(); + assertEquals("0", calc.readScreen()); + } + + @Test + @DisplayName("should display result after pressing a dezimal number") + void calculatorCanDoDotKey() { + Calculator calc = new Calculator(); + calc.pressDigitKey(0); + calc.pressDotKey(); + calc.pressDigitKey(1); + assertEquals("0.1", calc.readScreen()); + } + + @Test + @DisplayName("should display result after pressing a negative number") + void calculatorCanDoNegative() { + Calculator calc = new Calculator(); + calc.pressNegative(); + calc.pressDigitKey(5); + assertEquals("-5", calc.readScreen()); + } + + + }