From 53286f5b21be31730a593e6d153ee374647f1252 Mon Sep 17 00:00:00 2001 From: PLL Date: Thu, 29 Oct 2020 11:49:00 +0100 Subject: [PATCH 1/7] Green Test - 8 times negative two --- 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..457fa35 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 multiplying positive and negative numbers") + void calculatorCanDoEightTimesNegativeTwo() { + Calculator calc = new Calculator(); + calc.pressDigitKey(8); + calc.pressOperationKey("x"); + calc.pressNegative(); + calc.pressDigitKey(2); + calc.pressEquals(); + assertEquals("-16", calc.readScreen()); + } } From 19430fa35d2794495fc921fa3c2a8dfd91c87dae Mon Sep 17 00:00:00 2001 From: PLL Date: Thu, 29 Oct 2020 11:58:38 +0100 Subject: [PATCH 2/7] Red Test - Bug: 8 times 2.2 --- 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 457fa35..be92e7d 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -28,4 +28,17 @@ void calculatorCanDoEightTimesNegativeTwo() { calc.pressEquals(); assertEquals("-16", calc.readScreen()); } + + @Test + @DisplayName("should display result after multiplying integer and double numbers") + void calculatorCanDoEightTimesTwoDotTwo() { + Calculator calc = new Calculator(); + calc.pressDigitKey(8); + calc.pressOperationKey("x"); + calc.pressDigitKey(2); + calc.pressDotKey(); + calc.pressDigitKey(2); + calc.pressEquals(); + assertEquals("17.6", calc.readScreen()); + } } From 4f016733f49e67055e5d5e2398c1a88b8fad0de2 Mon Sep 17 00:00:00 2001 From: PLL Date: Thu, 29 Oct 2020 13:45:47 +0100 Subject: [PATCH 3/7] Bug Fix: 8 times 2.2 --- 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 171f6d6..a027640 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -15,7 +15,7 @@ public String readScreen() { public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); - if(latestOperation.isEmpty()) { + if(latestOperation.isEmpty() || latestValue != 0.0) { screen = screen + digit; } else { latestValue = Double.parseDouble(screen); From fc0153c44d36e2b1fe156e72f3ea43d350f2e117 Mon Sep 17 00:00:00 2001 From: PLL Date: Thu, 29 Oct 2020 14:02:35 +0100 Subject: [PATCH 4/7] Red Test - Bug: 8 times -22 (multi-digit) --- src/main/java/tdd/setup/Calculator.java | 2 +- src/test/java/tdd/setup/CalculatorTest.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index a027640..26b0848 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -15,7 +15,7 @@ public String readScreen() { public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); - if(latestOperation.isEmpty() || latestValue != 0.0) { + if(latestOperation.isEmpty() ) { 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 be92e7d..8d1b6d4 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -41,4 +41,17 @@ void calculatorCanDoEightTimesTwoDotTwo() { calc.pressEquals(); assertEquals("17.6", calc.readScreen()); } + + @Test + @DisplayName("should display result after multiplying integer numbers and multi-digit") + void calculatorCanDoEightTimesTwentyTwo() { + Calculator calc = new Calculator(); + calc.pressDigitKey(8); + calc.pressOperationKey("x"); + calc.pressNegative(); + calc.pressDigitKey(2); + calc.pressDigitKey(2); + calc.pressEquals(); + assertEquals("-176", calc.readScreen()); + } } From 8feebf978adf0c7c390d4d78f778410230ec2108 Mon Sep 17 00:00:00 2001 From: PLL Date: Thu, 29 Oct 2020 14:05:18 +0100 Subject: [PATCH 5/7] Bug Fix: 8 times -22 (multi-digit) --- src/main/java/tdd/setup/Calculator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 26b0848..38bd83b 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -14,8 +14,8 @@ public String readScreen() { } public void pressDigitKey(int digit) { if(digit > 9 || digit < 0) throw new IllegalArgumentException(); - - if(latestOperation.isEmpty() ) { + //bug fix for two tests (multi-digits and double number) + if(latestOperation.isEmpty() || latestValue != 0.0) { screen = screen + digit; } else { latestValue = Double.parseDouble(screen); From a79257b39cd8afa931c954924281dae12e7bcfb6 Mon Sep 17 00:00:00 2001 From: PLL Date: Thu, 29 Oct 2020 19:30:46 +0100 Subject: [PATCH 6/7] Red Test - Bug: 1 divided by 4 (function "1/x") --- src/test/java/tdd/setup/CalculatorTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 8d1b6d4..f8cae73 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -54,4 +54,14 @@ void calculatorCanDoEightTimesTwentyTwo() { calc.pressEquals(); assertEquals("-176", calc.readScreen()); } + + @Test + @DisplayName("should display result after one divided with integer") + void calculatorCanDoOneFourth() { + Calculator calc = new Calculator(); + calc.pressDigitKey(4); + calc.pressOperationKey("1/x"); + calc.pressEquals(); + assertEquals("0.25", calc.readScreen()); + } } From 7cc0b4503d0f4b217fd46350f9813b8454ba6dde Mon Sep 17 00:00:00 2001 From: PLL Date: Thu, 29 Oct 2020 19:31:24 +0100 Subject: [PATCH 7/7] Bug Fix: 1 divided by 4 (function "1/x") --- 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 38bd83b..1c73b55 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -47,6 +47,7 @@ public void pressEquals() { case "-" -> latestValue - Double.parseDouble(screen); case "x" -> latestValue * Double.parseDouble(screen); case "/" -> latestValue / Double.parseDouble(screen); + case "1/x" -> 1/ Double.parseDouble(screen); //function "1/x" default -> throw new IllegalArgumentException(); }; screen = Double.toString(result);