diff --git a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java index aaef8862..e1aef384 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -30,8 +30,8 @@ public String readScreen() { */ public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); - - if(screen.equals("0") || latestValue == Double.parseDouble(screen)) screen = ""; + if(screen.equals("-0")) screen = "-"; + else if(screen.equals("0") || latestValue == Double.parseDouble(screen)) screen = ""; screen = screen + digit; } @@ -125,6 +125,9 @@ public void pressEqualsKey() { default -> throw new IllegalArgumentException(); }; screen = Double.toString(result); + if(screen.equals("Infinity")) { + screen = "Error"; + } if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); } diff --git a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java index addc5f26..5bbf0ecc 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -41,5 +41,50 @@ void testSquareRoot() { } //TODO hier weitere Tests erstellen + @Test + @DisplayName("should display result after multiplying two positive digit numbers") + void testPositivMultiplikation() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(1); + calc.pressDigitKey(2); + calc.pressBinaryOperationKey("x"); + calc.pressDigitKey(3); + calc.pressEqualsKey(); + + String expected = "36"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + @Test + @DisplayName("should display result after dividing one positive multi-digit number with zero") + void testDivideZero() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(1); + calc.pressDigitKey(0); + calc.pressBinaryOperationKey("/"); + calc.pressDigitKey(0); + calc.pressEqualsKey(); + + String expected = "Error"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + @Test + @DisplayName("should display result of pressing negative key before pressing digit key") + void testNegativeKey() { + Calculator calc = new Calculator(); + + calc.pressNegativeKey(); + calc.pressDigitKey(3); + + String expected = "-3"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } }