diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..e3cc4b9 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -19,7 +19,11 @@ public void pressDigitKey(int digit) { screen = screen + digit; } else { latestValue = Double.parseDouble(screen); - screen = Integer.toString(digit); + if(!screen.contains(".")){ + screen = Integer.toString(digit); + } else { + screen = "0" + "." + digit; + } } } @@ -34,11 +38,14 @@ public void pressOperationKey(String operation) { } public void pressDotKey() { - if(!screen.endsWith(".")) screen = screen + "."; + if(!screen.contains(".")) screen = screen + "."; } public void pressNegative() { screen = screen.startsWith("-") ? screen.substring(1) : "-" + screen; + if (screen.equals("-" + "0")) { + screen = "0"; + } } public void pressEquals() { diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..2133080 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -16,4 +16,42 @@ void calculatorCanDoTwoPlusTwo() { calc.pressEquals(); assertEquals("4", calc.readScreen()); } + + @Test + @DisplayName("should display result after pressing clear key") + void calculatorCanDisplayZeroResult() { + Calculator calc = new Calculator(); + calc.pressDigitKey(1); + calc.pressOperationKey("+"); + calc.pressDigitKey(2); + calc.pressEquals(); + calc.pressClearKey(); + assertEquals("0", calc.readScreen()); + } + + @Test + @DisplayName("should display result after multiplying two decimal numbers") + void calculatorCanDoZeroCommaTwoTimesZeroCommaThree() { + Calculator calc = new Calculator(); + calc.pressDotKey(); + calc.pressDigitKey(2); + calc.pressOperationKey("x"); + calc.pressDotKey(); + calc.pressDigitKey(3); + calc.pressEquals(); + assertEquals("0.06", calc.readScreen()); + } + + @Test + @DisplayName("should display result after multiplying a negative button with a positive number") + void calculatorCanDoNegativeButtonTimesThree() { + Calculator calc = new Calculator(); + calc.pressNegative(); + calc.pressOperationKey("x"); + calc.pressDigitKey(3); + calc.pressEquals(); + assertEquals("0", calc.readScreen()); + } } + +