From f5e02c52d7b10e58a623a228a22a13e525e192e3 Mon Sep 17 00:00:00 2001 From: Burak Kadir Onay Date: Fri, 30 Oct 2020 16:29:08 +0100 Subject: [PATCH 1/8] =?UTF-8?q?1.=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..da4a176 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 result after divide two numbers") + void calculatorCanDoFiveDividedFive() + { + Calculator calc1 = new Calculator(); + calc1.pressDigitKey(5); + calc1.pressOperationKey("/"); + calc1.pressDigitKey(5); + calc1.pressEquals(); + assertEquals("1", calc1.readScreen()); + } } From 589d6d3142262d7b47f3c6d78963139f0c0b39a4 Mon Sep 17 00:00:00 2001 From: Burak Kadir Onay Date: Fri, 30 Oct 2020 16:29:48 +0100 Subject: [PATCH 2/8] 1. roter Test --- src/test/java/tdd/setup/CalculatorTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index da4a176..4bc391f 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -28,4 +28,13 @@ void calculatorCanDoFiveDividedFive() calc1.pressEquals(); assertEquals("1", calc1.readScreen()); } + + @Test + @DisplayName("should display show the same digit after press 'equals'") + void calculatorCanDoSixEquals() { + Calculator calc2 = new Calculator(); + calc2.pressDigitKey(6); + calc2.pressEquals(); + assertEquals("6", calc2.readScreen()); + } } From 7283e7426944887db207d765817b1ef698f8b039 Mon Sep 17 00:00:00 2001 From: Burak Kadir Onay Date: Fri, 30 Oct 2020 16:30:49 +0100 Subject: [PATCH 3/8] 1. Bug-Fix --- src/main/java/tdd/setup/Calculator.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..a4d85d8 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -43,6 +43,7 @@ public void pressNegative() { public void pressEquals() { var result = switch(latestOperation) { + case "" -> Double.parseDouble(screen); //Bug-Fix No 1 case "+" -> latestValue + Double.parseDouble(screen); case "-" -> latestValue - Double.parseDouble(screen); case "x" -> latestValue * Double.parseDouble(screen); From a40ba0ad5b56b0cc3fb73561272d3ebed46bf854 Mon Sep 17 00:00:00 2001 From: Burak Kadir Onay Date: Fri, 30 Oct 2020 16:31:31 +0100 Subject: [PATCH 4/8] 2. roter Test --- src/test/java/tdd/setup/CalculatorTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 4bc391f..e652fc5 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -37,4 +37,17 @@ void calculatorCanDoSixEquals() { calc2.pressEquals(); assertEquals("6", calc2.readScreen()); } + + @Test + @DisplayName("should display show the result of multiplying of two digit numbers") + void calculatorCanDoMultiplyTwoTWODIGITNumbers() { + Calculator calc3 = new Calculator(); + calc3.pressDigitKey(1); + calc3.pressDigitKey(0); + calc3.pressOperationKey("x"); + calc3.pressDigitKey(2); + calc3.pressDigitKey(0); + calc3.pressEquals(); + assertEquals("200", calc3.readScreen()); + } } From e803998f9792015055b3bb23e0b0ae24ef71c81a Mon Sep 17 00:00:00 2001 From: Burak Kadir Onay Date: Fri, 30 Oct 2020 16:32:54 +0100 Subject: [PATCH 5/8] 2. Bug-Fix --- src/main/java/tdd/setup/Calculator.java | 4 +++- src/test/java/tdd/setup/CalculatorTest.java | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index a4d85d8..8ceddfa 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -12,10 +12,12 @@ public class Calculator { public String readScreen() { return screen; } + public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); - if(latestOperation.isEmpty()) { + //Bug-Fix No 2 + if(latestOperation.isEmpty() || !(latestValue == 0.0)) { screen = screen + digit; } else { latestValue = Double.parseDouble(screen); diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index e652fc5..cca6dac 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -50,4 +50,5 @@ void calculatorCanDoMultiplyTwoTWODIGITNumbers() { calc3.pressEquals(); assertEquals("200", calc3.readScreen()); } + //System.out.println(calc3.readScreen()); -> Debugger für die Kommandozeile } From 11270426573a94f21906c2add876ffa80c255a72 Mon Sep 17 00:00:00 2001 From: Burak Kadir Onay Date: Fri, 30 Oct 2020 16:51:24 +0100 Subject: [PATCH 6/8] 3. roter Test --- src/test/java/tdd/setup/CalculatorTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index cca6dac..dbf8de6 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -51,4 +51,13 @@ void calculatorCanDoMultiplyTwoTWODIGITNumbers() { assertEquals("200", calc3.readScreen()); } //System.out.println(calc3.readScreen()); -> Debugger für die Kommandozeile + + @Test + @DisplayName("should display a negative number") + void calculatorCanNegativeANumber() { + Calculator calc4 = new Calculator(); + calc4.pressDigitKey(1); + calc4.pressNegative(); + assertEquals("-1", calc4.readScreen()); + } } From b81372665d76995444f45c30630ad370bfea2084 Mon Sep 17 00:00:00 2001 From: Burak Kadir Onay Date: Fri, 30 Oct 2020 16:53:07 +0100 Subject: [PATCH 7/8] 3. Bug-Fix --- src/main/java/tdd/setup/Calculator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 8ceddfa..52322d9 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -3,7 +3,8 @@ // behaviour inspired by https://www.online-calculator.com/ public class Calculator { - private String screen = "0"; + //Bug-Fix No 3 + private String screen = ""; private double latestValue; From d43b6ee17527e60870c65edb237b1a307cf5764a Mon Sep 17 00:00:00 2001 From: Burak Kadir Onay Date: Fri, 30 Oct 2020 17:07:57 +0100 Subject: [PATCH 8/8] 4. Bug-Fix zu 3. roten Test --- src/main/java/tdd/setup/Calculator.java | 10 +++++++--- src/test/java/tdd/setup/CalculatorTest.java | 5 +++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 52322d9..d9387ef 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -3,8 +3,7 @@ // behaviour inspired by https://www.online-calculator.com/ public class Calculator { - //Bug-Fix No 3 - private String screen = ""; + private String screen = "0"; private double latestValue; @@ -40,8 +39,13 @@ public void pressDotKey() { if(!screen.endsWith(".")) screen = screen + "."; } + //Bug-Fix No 3 public void pressNegative() { - screen = screen.startsWith("-") ? screen.substring(1) : "-" + screen; + if (screen.startsWith("-")) { + screen = screen.substring(1); + } else{ + screen = "-" + screen.substring(1); + } } public void pressEquals() { diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index dbf8de6..c216ac2 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -56,8 +56,9 @@ void calculatorCanDoMultiplyTwoTWODIGITNumbers() { @DisplayName("should display a negative number") void calculatorCanNegativeANumber() { Calculator calc4 = new Calculator(); - calc4.pressDigitKey(1); + calc4.pressDigitKey(8); calc4.pressNegative(); - assertEquals("-1", calc4.readScreen()); + System.out.println("Was bisher rauskommt: " + calc4.readScreen()); + assertEquals("-8", calc4.readScreen()); } }