From 36f8a2606756bdd84c91b2aac411e59fa36fe55b Mon Sep 17 00:00:00 2001 From: KueBoz Date: Wed, 28 Oct 2020 17:32:41 +0100 Subject: [PATCH 1/5] =?UTF-8?q?neuer=20gr=C3=BCner=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/tdd/setup/CalculatorTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..7c381c4 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -16,4 +16,16 @@ void calculatorCanDoTwoPlusTwo() { calc.pressEquals(); assertEquals("4", calc.readScreen()); } + @Test + @DisplayName("should display results after 5 - 4") + void calculatorCanDo5Minus4(){ + Calculator calc = new Calculator(); + calc.pressDigitKey(5); + calc.pressOperationKey("-"); + calc.pressDigitKey(4); + calc.pressEquals(); + assertEquals("1", calc.readScreen()); + } + + } From 4c425c849a2fce2be3a180c236af28d8a921752f Mon Sep 17 00:00:00 2001 From: KueBoz Date: Wed, 28 Oct 2020 20:11:36 +0100 Subject: [PATCH 2/5] erster Bug - nimmt keine Kommazahl --- src/main/java/tdd/setup/Calculator.java | 4 ++++ src/test/java/tdd/setup/CalculatorTest.java | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..0d810bc 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -9,6 +9,7 @@ public class Calculator { private String latestOperation = ""; + public String readScreen() { return screen; } @@ -31,6 +32,7 @@ public void pressClearKey() { public void pressOperationKey(String operation) { latestOperation = operation; + } public void pressDotKey() { @@ -41,6 +43,8 @@ public void pressNegative() { screen = screen.startsWith("-") ? screen.substring(1) : "-" + screen; } + // public void pressTwoOperationKeys + public void pressEquals() { var result = switch(latestOperation) { case "+" -> latestValue + Double.parseDouble(screen); diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 7c381c4..bf2b10f 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -26,6 +26,14 @@ void calculatorCanDo5Minus4(){ calc.pressEquals(); assertEquals("1", calc.readScreen()); } - + @Test + @DisplayName("should display results after press 8 ,., 5") + void calculatorCanDoDoubleNumber(){ + Calculator calc = new Calculator(); + calc.pressDigitKey(8); + calc.pressDotKey(); + calc.pressDigitKey(5); + assertEquals("8.5", calc.readScreen()); + } } From 93cc7776d88c6ba878dd1c868c2004b02a706b5b Mon Sep 17 00:00:00 2001 From: KueBoz Date: Wed, 28 Oct 2020 20:15:16 +0100 Subject: [PATCH 3/5] =?UTF-8?q?erster=20Bugfix=20-=20f=C3=BCr=20Double?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/tdd/setup/Calculator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 0d810bc..79ca81b 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -3,7 +3,7 @@ // behaviour inspired by https://www.online-calculator.com/ public class Calculator { - private String screen = "0"; + private String screen = ""; private double latestValue; From 394829f5356b2e57446970859d41d82b3a2645b7 Mon Sep 17 00:00:00 2001 From: KueBoz Date: Thu, 29 Oct 2020 09:27:48 +0100 Subject: [PATCH 4/5] zweiter Fehler --- src/main/java/tdd/setup/Calculator.java | 6 ++++++ src/test/java/tdd/setup/CalculatorTest.java | 22 +++++++++++---------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 79ca81b..088acda 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -9,10 +9,13 @@ public class Calculator { private String latestOperation = ""; + private boolean clearScreen = false; + public String readScreen() { return screen; } + public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); @@ -28,10 +31,12 @@ public void pressClearKey() { screen = "0"; latestOperation = ""; latestValue = 0.0; + clearScreen = false; } public void pressOperationKey(String operation) { latestOperation = operation; + clearScreen = true; } @@ -51,6 +56,7 @@ public void pressEquals() { case "-" -> latestValue - Double.parseDouble(screen); case "x" -> latestValue * Double.parseDouble(screen); case "/" -> latestValue / Double.parseDouble(screen); + default -> throw new IllegalArgumentException(); }; screen = Double.toString(result); diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index bf2b10f..4ae3ee1 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -6,16 +6,6 @@ @DisplayName("Retro calculator") class CalculatorTest { - @Test - @DisplayName("should display result after adding two positive numbers") - void calculatorCanDoTwoPlusTwo() { - Calculator calc = new Calculator(); - calc.pressDigitKey(2); - calc.pressOperationKey("+"); - calc.pressDigitKey(2); - calc.pressEquals(); - assertEquals("4", calc.readScreen()); - } @Test @DisplayName("should display results after 5 - 4") void calculatorCanDo5Minus4(){ @@ -35,5 +25,17 @@ void calculatorCanDoDoubleNumber(){ calc.pressDigitKey(5); assertEquals("8.5", calc.readScreen()); } + @Test + @DisplayName("should display results after ") + void calculatorCanDoNumber(){ + Calculator calc = new Calculator(); + calc.pressDigitKey(5); + calc.pressOperationKey("+"); + calc.pressDigitKey(1); + calc.pressDigitKey(5); + calc.pressEquals(); + assertEquals("20", calc.readScreen()); + } + } From 39045f74bdd648442c2e85c377442a9dcc9466be Mon Sep 17 00:00:00 2001 From: KueBoz Date: Thu, 29 Oct 2020 09:29:54 +0100 Subject: [PATCH 5/5] zweiter bugfix --- src/main/java/tdd/setup/Calculator.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 088acda..1e63c78 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -16,15 +16,21 @@ public String readScreen() { return screen; } - public void pressDigitKey(int digit) { + public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); - if(latestOperation.isEmpty()) { - screen = screen + digit; - } else { - latestValue = Double.parseDouble(screen); - screen = Integer.toString(digit); - } + //new code, added new variable clear screen, this variable is set, when the + //operation button is pressed + if (clearScreen) { + screen = Integer.toString(digit); + clearScreen = false; + } else { + screen = screen + Integer.toString(digit); + } + + if (latestOperation.isEmpty()){ + latestValue = Double.parseDouble(screen); + } } public void pressClearKey() {