From 9f61372fca444f4ca0f3430073108afab3c46f66 Mon Sep 17 00:00:00 2001 From: AljoschaBerger Date: Sun, 6 Apr 2025 16:45:43 +0200 Subject: [PATCH 1/6] =?UTF-8?q?1.=20Commit:=20Gr=C3=BCner=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) 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 ddff0daf..1d91c1c3 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -56,6 +56,22 @@ void testDivisionByZero() { assertEquals(expected, actual); } + @Test + @DisplayName("should display the result after dividing two positive numbers") + void testDivisionPositiveNumbers() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(9); + calc.pressBinaryOperationKey("/"); + calc.pressDigitKey(3); + calc.pressEqualsKey(); + + String expected = "3"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + @Test @DisplayName("should display error when drawing the square root of a negative number") void testSquareRootOfNegative() { @@ -89,6 +105,10 @@ void testMultipleDecimalDots() { } + + + + //TODO hier weitere Tests erstellen } From 68253e42ff1656fabc86a50df6f76481d017881e Mon Sep 17 00:00:00 2001 From: AljoschaBerger Date: Tue, 8 Apr 2025 20:21:22 +0200 Subject: [PATCH 2/6] 2. Commit: neuer roter Test --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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 1d91c1c3..a1ab36eb 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -72,6 +72,7 @@ void testDivisionPositiveNumbers() { assertEquals(expected, actual); } + @Test @DisplayName("should display error when drawing the square root of a negative number") void testSquareRootOfNegative() { @@ -104,6 +105,22 @@ void testMultipleDecimalDots() { assertEquals(expected, actual); } + @Test + @DisplayName("check press clear key") + void testClearKey() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(5); + calc.pressBinaryOperationKey("+"); + calc.pressClearKey(); + calc.pressEqualsKey(); + + String expected = "5"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + From 036f25017b19be9d96a456c3b518de55c28ecdf3 Mon Sep 17 00:00:00 2001 From: AljoschaBerger Date: Thu, 10 Apr 2025 14:01:22 +0200 Subject: [PATCH 3/6] =?UTF-8?q?3.Commit:=20Fix=20f=C3=BCr=20Ce-Key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 a1ab36eb..73f9cc5f 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -112,12 +112,13 @@ void testClearKey() { calc.pressDigitKey(5); calc.pressBinaryOperationKey("+"); + calc.pressClearKey(); calc.pressEqualsKey(); String expected = "5"; String actual = calc.readScreen(); - + assertEquals(expected, actual); } From 6cdf8eec2041845a02c68b2693bf1f98c9342313 Mon Sep 17 00:00:00 2001 From: AljoschaBerger Date: Thu, 10 Apr 2025 14:40:59 +0200 Subject: [PATCH 4/6] 4.Commit neuer roter Test --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) 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 73f9cc5f..7c1ff784 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -118,7 +118,7 @@ void testClearKey() { String expected = "5"; String actual = calc.readScreen(); - + assertEquals(expected, actual); } @@ -128,5 +128,21 @@ void testClearKey() { //TODO hier weitere Tests erstellen + + @Test + @DisplayName("negative Number should become positive after pressing negativeButton") + void testPressNegative() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(9); + calc.pressNegativeKey(); + calc.pressEqualsKey(); + + String expected = "-9"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + + } } From a1f0182d676d637dd0fbb3da43b4bc8966adfa38 Mon Sep 17 00:00:00 2001 From: AljoschaBerger Date: Fri, 11 Apr 2025 08:55:39 +0200 Subject: [PATCH 5/6] =?UTF-8?q?5.Commit=20neuer=20roter=20test=20ge=C3=A4n?= =?UTF-8?q?dert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/htw/berlin/prog2/ha1/CalculatorTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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 7c1ff784..b65728ba 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -130,15 +130,16 @@ void testClearKey() { //TODO hier weitere Tests erstellen @Test - @DisplayName("negative Number should become positive after pressing negativeButton") + @DisplayName("check inverse with division by zero") void testPressNegative() { Calculator calc = new Calculator(); - calc.pressDigitKey(9); - calc.pressNegativeKey(); - calc.pressEqualsKey(); + calc.pressDigitKey(1); + calc.pressBinaryOperationKey("/"); + calc.pressDigitKey(0); + calc.pressUnaryOperationKey("1/x"); - String expected = "-9"; + String expected = "Error"; String actual = calc.readScreen(); assertEquals(expected, actual); From 0d8dac1f1caae1ca5a442601e51e7bdcb5124beb Mon Sep 17 00:00:00 2001 From: AljoschaBerger Date: Fri, 11 Apr 2025 09:07:02 +0200 Subject: [PATCH 6/6] =?UTF-8?q?6.Commit=20fix=20f=C3=BCr=20inverse=20bei?= =?UTF-8?q?=20Division=20durch=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/htw/berlin/prog2/ha1/Calculator.java | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) 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 84c04f21..39722c53 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -1,5 +1,6 @@ package htw.berlin.prog2.ha1; + /** * Eine Klasse, die das Verhalten des Online Taschenrechners imitiert, welcher auf * https://www.online-calculator.com/ aufgerufen werden kann (ohne die Memory-Funktionen) @@ -8,6 +9,8 @@ */ public class Calculator { + private boolean used = false; + private String screen = "0"; private double latestValue; @@ -45,9 +48,14 @@ public void pressDigitKey(int digit) { * im Ursprungszustand ist. */ public void pressClearKey() { - screen = "0"; - latestOperation = ""; - latestValue = 0.0; + if(!used){ + screen = "0"; + used = true; + } + else { + latestValue = 0.0; + latestOperation = ""; + } } /** @@ -81,6 +89,7 @@ public void pressUnaryOperationKey(String operation) { default -> throw new IllegalArgumentException(); }; screen = Double.toString(result); + if(screen.equals("Infinity")) screen = "Error"; if(screen.equals("NaN")) screen = "Error"; if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); @@ -106,6 +115,7 @@ public void pressDotKey() { */ public void pressNegativeKey() { screen = screen.startsWith("-") ? screen.substring(1) : "-" + screen; + } /** @@ -130,4 +140,18 @@ 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); } + + public static void main(String[] args) { + double i = 55; + double b = 0; + + Calculator calc = new Calculator(); + + calc.pressDigitKey(1); + calc.pressBinaryOperationKey("/"); + calc.pressDigitKey(0); + calc.pressUnaryOperationKey("1/x"); + + System.out.println(calc.readScreen()); + } }