diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..f1e3a3e 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -12,11 +12,17 @@ public class Calculator { public String readScreen() { return screen; } + 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); @@ -30,7 +36,13 @@ public void pressClearKey() { } public void pressOperationKey(String operation) { - latestOperation = operation; + if (latestOperation == "") { + latestOperation = operation; + } + else { + pressEquals(); + latestOperation = operation; + } } public void pressDotKey() { diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..28bdca2 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 calculatorCanSubtract() { + Calculator calc = new Calculator(); + calc.pressDigitKey(5); + calc.pressOperationKey("-"); + calc.pressDigitKey(6); + calc.pressEquals(); + assertEquals("-1", calc.readScreen()); + } + + @Test + @DisplayName("should display result after multiplying two numbers and add a third number") + void calculatorCanMultiply() { + Calculator calc = new Calculator(); + calc.pressDigitKey(3); + calc.pressOperationKey("x"); + calc.pressDigitKey(6); + calc.pressOperationKey("+"); + calc.pressDigitKey(2); + calc.pressEquals(); + assertEquals("20", calc.readScreen()); + } + + @Test + @DisplayName("should display number with dot") + void calculatorCanUseDot() { + Calculator calc = new Calculator(); + calc.pressDigitKey(2); + calc.pressDotKey(); + calc.pressDigitKey(5); + assertEquals("2.5", calc.readScreen()); + } }