From 4894f695551560a76724b4197b85db297c692bf7 Mon Sep 17 00:00:00 2001 From: VincentReddi Date: Sat, 2 Nov 2024 20:00:57 +0100 Subject: [PATCH 1/5] =?UTF-8?q?Gr=C3=BCner=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 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 ddff0da..d7f6f54 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -89,6 +89,30 @@ void testMultipleDecimalDots() { } - //TODO hier weitere Tests erstellen -} + @Test + @DisplayName("should display result after subtracting two positive multi-digit numbers") + void testPositiveSubtraction(){ + + Calculator calc = new Calculator(); + + calc.pressDigitKey(3); + calc.pressDigitKey(0); + + calc.pressBinaryOperationKey("-"); + calc.pressDigitKey(2); + calc.pressDigitKey(0); + calc.pressEqualsKey(); + + String expected = "10"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + + } + + + + + +} \ No newline at end of file From d4bcd7b08512d4bd5ad15b755d8774bddde45ef6 Mon Sep 17 00:00:00 2001 From: VincentReddi Date: Sun, 3 Nov 2024 21:04:53 +0100 Subject: [PATCH 2/5] Erster Roter Test --- .../main/java/htw/berlin/prog2/ha1/Calculator.java | 6 +++++- .../java/htw/berlin/prog2/ha1/CalculatorTest.java | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) 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..c987962 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -118,6 +118,9 @@ public void pressNegativeKey() { * und das Ergebnis direkt angezeigt. */ public void pressEqualsKey() { + + + var result = switch(latestOperation) { case "+" -> latestValue + Double.parseDouble(screen); case "-" -> latestValue - Double.parseDouble(screen); @@ -129,5 +132,6 @@ public void pressEqualsKey() { 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); + } -} +} \ No newline at end of file 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 d7f6f54..8290652 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -110,9 +110,20 @@ void testPositiveSubtraction(){ } + @Test + @DisplayName("should display result after subtracting two positive multi-digit numbers") + void testEqualsAfterNoNewOperation(){ + + Calculator calc = new Calculator(); + calc.pressDigitKey(5); + calc.pressEqualsKey(); + String expected = "5"; + String actual = calc.readScreen(); + assertEquals(expected, actual); + } } \ No newline at end of file From 6e6854a05d7031a2759887f41520ecccb29970aa Mon Sep 17 00:00:00 2001 From: VincentReddi Date: Sun, 3 Nov 2024 21:15:12 +0100 Subject: [PATCH 3/5] Erster Roter Test Fix --- app/src/main/java/htw/berlin/prog2/ha1/Calculator.java | 5 +++-- 1 file changed, 3 insertions(+), 2 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 c987962..31dd831 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -119,7 +119,9 @@ public void pressNegativeKey() { */ public void pressEqualsKey() { - + if (latestOperation.isEmpty()) { + return; + } var result = switch(latestOperation) { case "+" -> latestValue + Double.parseDouble(screen); @@ -132,6 +134,5 @@ public void pressEqualsKey() { 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); - } } \ No newline at end of file From 84807a4e968e760d6fdd56530768a3631cb51452 Mon Sep 17 00:00:00 2001 From: VincentReddi Date: Sun, 3 Nov 2024 22:48:01 +0100 Subject: [PATCH 4/5] Zweiter Roter Test --- .../java/htw/berlin/prog2/ha1/Calculator.java | 4 ++++ .../htw/berlin/prog2/ha1/CalculatorTest.java | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+) 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 31dd831..ef0fde6 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -60,6 +60,10 @@ public void pressClearKey() { * @param operation "+" für Addition, "-" für Substraktion, "x" für Multiplikation, "/" für Division */ public void pressBinaryOperationKey(String operation) { + + if (!latestOperation.isEmpty()) { + pressEqualsKey(); + } latestValue = Double.parseDouble(screen); latestOperation = operation; } 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 8290652..5fba014 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -126,4 +126,27 @@ void testEqualsAfterNoNewOperation(){ assertEquals(expected, actual); } + + @Test + @DisplayName("should display result after more then 2 Operations") + void testMoreThenTwoOperations(){ + + Calculator calc = new Calculator(); + + calc.pressDigitKey(5); + calc.pressBinaryOperationKey("-"); + calc.pressDigitKey(5); + calc.pressDigitKey(0); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(5); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressEqualsKey(); + + String expected = "455"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + + } } \ No newline at end of file From 3b5122359b97c1ae0a63a131e87dc6f550477912 Mon Sep 17 00:00:00 2001 From: VincentReddi Date: Sun, 3 Nov 2024 22:48:49 +0100 Subject: [PATCH 5/5] Zweiter Roter Test Fix --- app/src/main/java/htw/berlin/prog2/ha1/Calculator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 ef0fde6..ba35578 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -31,7 +31,7 @@ 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 = ""; screen = screen + digit; } @@ -66,6 +66,7 @@ public void pressBinaryOperationKey(String operation) { } latestValue = Double.parseDouble(screen); latestOperation = operation; + screen = "0"; } /**