From 4dcb64520d035a74a20d544466d0e4fefcc4a02a Mon Sep 17 00:00:00 2001 From: ReinhardtSamira Date: Sun, 26 Apr 2026 13:32:00 +0200 Subject: [PATCH 1/5] =?UTF-8?q?Teilaufgabe=201:=20gr=C3=BCner=20Test=20f?= =?UTF-8?q?=C3=BCr=20Eingabe=20mehrerer=20Zahlen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java index ddff0da..b3c0f65 100644 --- a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -1,10 +1,9 @@ package htw.berlin.prog2.ha1; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; - @DisplayName("Retro calculator") class CalculatorTest { @@ -88,7 +87,19 @@ void testMultipleDecimalDots() { assertEquals(expected, actual); } + @Test + @DisplayName("should display entered number after pressing digit keys") + void testEnteredNumber() { + Calculator calc = new Calculator(); - //TODO hier weitere Tests erstellen -} + calc.pressDigitKey(1); + calc.pressDigitKey(2); + calc.pressDigitKey(3); + + String expected = "123"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } +} \ No newline at end of file From 3e695bd0c3249b08a50ccb48db058ce170b36dbc Mon Sep 17 00:00:00 2001 From: ReinhardtSamira Date: Sun, 26 Apr 2026 13:52:20 +0200 Subject: [PATCH 2/5] =?UTF-8?q?Teilaufgabe=202a:=20Roter=20Test=20f=C3=BCr?= =?UTF-8?q?=20Inverse=20von=200=20(Error)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/htw/berlin/prog2/ha1/CalculatorTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java index b3c0f65..2a5f7eb 100644 --- a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -102,4 +102,18 @@ void testEnteredNumber() { assertEquals(expected, actual); } + @Test + @DisplayName("should display error when calculating inverse of zero") + void testInverseOfZero() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(0); + calc.pressUnaryOperationKey("1/x"); + + String expected = "Error"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + } \ No newline at end of file From 31f14c9317bda05ca858495409adca66df72670a Mon Sep 17 00:00:00 2001 From: ReinhardtSamira Date: Sun, 26 Apr 2026 14:37:26 +0200 Subject: [PATCH 3/5] =?UTF-8?q?Teilaufgabe=202b:=20Roter=20Test=20f=C3=BCr?= =?UTF-8?q?=20maximale=20Displayl=C3=A4nge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/htw/berlin/prog2/ha1/CalculatorTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java index 2a5f7eb..e7a39b6 100644 --- a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -116,4 +116,19 @@ void testInverseOfZero() { assertEquals(expected, actual); } + @Test + @DisplayName("should not allow more than 10 digits on display") + void testMaxDigits() { + Calculator calc = new Calculator(); + + for (int i = 0; i < 11; i++) { + calc.pressDigitKey(1); + } + + String expected = "111111111"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + } \ No newline at end of file From 23444902d72714cedca5bb00dab083ce7c639e82 Mon Sep 17 00:00:00 2001 From: ReinhardtSamira Date: Sun, 26 Apr 2026 15:09:51 +0200 Subject: [PATCH 4/5] =?UTF-8?q?Teilaufgabe=203a:=20Fix=20f=C3=BCr=20invers?= =?UTF-8?q?e=20von=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/htw/berlin/prog2/ha1/Calculator.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/htw/berlin/prog2/ha1/Calculator.java b/src/main/java/htw/berlin/prog2/ha1/Calculator.java index 84c04f2..bce3757 100644 --- a/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -74,6 +74,10 @@ public void pressBinaryOperationKey(String operation) { public void pressUnaryOperationKey(String operation) { latestValue = Double.parseDouble(screen); latestOperation = operation; + if (operation.equals("1/x") && Double.parseDouble(screen) == 0) { + screen = "Error"; + return; + } var result = switch(operation) { case "√" -> Math.sqrt(Double.parseDouble(screen)); case "%" -> Double.parseDouble(screen) / 100; From ff63fcd2ab016f30806ce23c340979d526432d04 Mon Sep 17 00:00:00 2001 From: ReinhardtSamira Date: Sun, 26 Apr 2026 15:23:11 +0200 Subject: [PATCH 5/5] =?UTF-8?q?Teilaufgabe=203b:=20Fix=20f=C3=BCr=20maxima?= =?UTF-8?q?le=20Displayl=C3=A4nge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/htw/berlin/prog2/ha1/Calculator.java | 2 ++ src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/htw/berlin/prog2/ha1/Calculator.java b/src/main/java/htw/berlin/prog2/ha1/Calculator.java index bce3757..04e9af4 100644 --- a/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -33,7 +33,9 @@ public void pressDigitKey(int digit) { if(screen.equals("0") || latestValue == Double.parseDouble(screen)) screen = ""; + if (screen.length() < 9) { screen = screen + digit; + } } /** diff --git a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java index e7a39b6..1a24238 100644 --- a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -117,7 +117,7 @@ void testInverseOfZero() { } @Test - @DisplayName("should not allow more than 10 digits on display") + @DisplayName("should not allow more than 9 digits on display") void testMaxDigits() { Calculator calc = new Calculator();