diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..4d6ff48 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; @@ -15,7 +15,7 @@ public String readScreen() { public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); - if(latestOperation.isEmpty()) { + if(latestOperation.isEmpty() || latestValue != 0.0) { screen = screen + digit; } else { latestValue = Double.parseDouble(screen); @@ -52,4 +52,5 @@ public void pressEquals() { screen = Double.toString(result); if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); } + } diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..4a56608 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 after subtracting two positive numbers") + void calculatorCanDoTwoMinusTwo() { + Calculator calc = new Calculator(); + calc.pressDigitKey(2); + calc.pressOperationKey("-"); + calc.pressDigitKey(2); + calc.pressEquals(); + assertEquals("0", calc.readScreen()); + } + @Test + @DisplayName("should display result after changing a Number to negative") + void calculatorCanDoNegative() { + Calculator calc = new Calculator(); + calc.pressNegative(); + calc.pressDigitKey(2); + assertEquals("-2", calc.readScreen()); + } + + @Test + @DisplayName("should display result after multiplying two positive two digit numbers") + void calculatorCanMultiplyTwoTwoDigitNumbers() { + Calculator calc = new Calculator(); + calc.pressDigitKey(2); + calc.pressDigitKey(0); + calc.pressOperationKey("x"); + calc.pressDigitKey(2); + calc.pressDigitKey(5); + calc.pressEquals(); + assertEquals("500", calc.readScreen()); + } + + + }