diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..cb29a17 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; @@ -47,6 +47,7 @@ public void pressEquals() { case "-" -> latestValue - Double.parseDouble(screen); case "x" -> latestValue * Double.parseDouble(screen); case "/" -> latestValue / Double.parseDouble(screen); + case "" -> Double.parseDouble(screen); default -> throw new IllegalArgumentException(); }; screen = Double.toString(result); diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..6c7dde8 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -16,4 +16,36 @@ void calculatorCanDoTwoPlusTwo() { calc.pressEquals(); assertEquals("4", calc.readScreen()); } -} + + @Test + @DisplayName("should display result 3") + void calculatorCanDoFiveMinusTwo() { + Calculator calc = new Calculator(); + calc.pressDigitKey(5); + calc.pressOperationKey("-"); + calc.pressDigitKey(2); + System.out.println(calc.readScreen()); + calc.pressEquals(); + assertEquals("3", calc.readScreen()); + } + + @Test + @DisplayName("should display result 5.5") + void calculatorCanShowDecimal() { + Calculator calc = new Calculator(); + calc.pressDigitKey(5); + calc.pressDotKey(); + calc.pressDigitKey(5); + System.out.println(calc.readScreen()); + assertEquals("5.5", calc.readScreen()); + } + + @Test + @DisplayName("should display same digit after pressing Equals without an operation") + void calculatorCanDoFourEquals() { + Calculator calc = new Calculator(); + calc.pressDigitKey(5); + calc.pressEquals(); + assertEquals("5", calc.readScreen()); + } +} \ No newline at end of file