diff --git a/app/src/main/java/htw/berlin/prog2/.DS_Store b/app/src/main/java/htw/berlin/prog2/.DS_Store new file mode 100644 index 0000000..cf1c5cf Binary files /dev/null and b/app/src/main/java/htw/berlin/prog2/.DS_Store differ 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 84c04f2..06a1c41 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -45,9 +45,14 @@ public void pressDigitKey(int digit) { * im Ursprungszustand ist. */ public void pressClearKey() { + if(screen.equals ("0")){ + latestValue = 0.0; + latestOperation = ""; + } screen = "0"; - latestOperation = ""; - latestValue = 0.0; + } + public String giveLatestValue(){ + return Double.toString(latestValue); } /** @@ -83,7 +88,7 @@ public void pressUnaryOperationKey(String operation) { screen = Double.toString(result); if(screen.equals("NaN")) screen = "Error"; if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); - + if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); } /** @@ -130,4 +135,4 @@ public void pressEqualsKey() { if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); } -} +} \ No newline at end of file diff --git a/app/src/test/java/htw/berlin/prog2/.DS_Store b/app/src/test/java/htw/berlin/prog2/.DS_Store new file mode 100644 index 0000000..7e0d1f5 Binary files /dev/null and b/app/src/test/java/htw/berlin/prog2/.DS_Store differ 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 ddff0da..e6230c0 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -90,5 +90,53 @@ void testMultipleDecimalDots() { //TODO hier weitere Tests erstellen + @Test + @DisplayName("should calculate the result of multiple additions sequentially") + void testMultipleAdditions() { + Calculator calc = new Calculator(); + calc.pressDigitKey(1); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(2); + calc.pressEqualsKey(); // Ergebnis: 3 + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(3); + calc.pressEqualsKey(); // Ergebnis: 6 + String expected = "6"; + String actual = calc.readScreen(); + assertEquals(expected, actual); + } + + + + @Test + @DisplayName("should display result after getting the scare root of 4") + void testSquareRootOfFour() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(4); + calc.pressUnaryOperationKey("√"); + + String expected = "2"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + + @Test + @DisplayName("the latest value should not be deleted after pressing the Clear Key once") + void testCeKey() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(1); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(1); + calc.pressClearKey(); + + String expected = "1.0"; + String actual = calc.giveLatestValue(); + + assertEquals(expected, actual); } + +}