From cd1870cc34d74fd7f621355b31dfb49920513456 Mon Sep 17 00:00:00 2001 From: Admin Date: Wed, 28 Oct 2020 18:30:06 +0100 Subject: [PATCH 1/5] green test --- src/main/java/Main.java | 12 ++++++++++++ src/test/java/tdd/setup/CalculatorTest.java | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/main/java/Main.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 0000000..593578b --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,12 @@ +import tdd.setup.Calculator; + +public class Main { + public static void main(String[] args) { + Calculator calculator = new Calculator(); // cmd+option und v + calculator.pressDigitKey(3); + calculator.pressOperationKey("+"); + calculator.pressDigitKey(5); + calculator.pressEquals(); + System.out.println(calculator.readScreen()); + } +} diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 3bf16e9..d897adc 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 zero after adding") + void calculatorCanDoTwoPlusTwoNewWithClearFunction() { + Calculator calc = new Calculator(); + calc.pressDigitKey(2); + calc.pressOperationKey("+"); + calc.pressDigitKey(2); + calc.pressEquals(); + calc.pressClearKey(); + assertEquals("0", calc.readScreen()); + } } +// andere Fälle testen \ No newline at end of file From 51e27bf91a8ed9853a61799b50707fae53144d0b Mon Sep 17 00:00:00 2001 From: magacss Date: Wed, 28 Oct 2020 18:35:19 +0100 Subject: [PATCH 2/5] red test1 --- src/test/java/tdd/setup/CalculatorTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index d897adc..367e22f 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -27,5 +27,13 @@ void calculatorCanDoTwoPlusTwoNewWithClearFunction() { calc.pressClearKey(); assertEquals("0", calc.readScreen()); } + @Test + @DisplayName("should display result of percentage") + void calculatorCanDoPercentageOperationKey() { + Calculator calc = new Calculator(); + calc.pressDigitKey(8); + calc.pressOperationKey("%"); + assertEquals("0.08", calc.readScreen()); + } } // andere Fälle testen \ No newline at end of file From 51ca00794b7137af324a9cedae09c4a3850c7620 Mon Sep 17 00:00:00 2001 From: magacss Date: Wed, 28 Oct 2020 18:40:42 +0100 Subject: [PATCH 3/5] Fix for red1 --- src/main/java/tdd/setup/Calculator.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 171f6d6..6d7d055 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -30,7 +30,14 @@ public void pressClearKey() { } public void pressOperationKey(String operation) { - latestOperation = operation; + if (operation != "%") { + latestOperation = operation; + } + else { + var result = Double.parseDouble(screen) / 100.0; + screen = Double.toString(result); + if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); + } } public void pressDotKey() { From a8407685d3112d89cfa2ca4c04107cbe17b5f9d6 Mon Sep 17 00:00:00 2001 From: magacss Date: Wed, 28 Oct 2020 18:42:50 +0100 Subject: [PATCH 4/5] red test 2 --- src/test/java/tdd/setup/CalculatorTest.java | 40 +++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/test/java/tdd/setup/CalculatorTest.java b/src/test/java/tdd/setup/CalculatorTest.java index 367e22f..4431667 100644 --- a/src/test/java/tdd/setup/CalculatorTest.java +++ b/src/test/java/tdd/setup/CalculatorTest.java @@ -35,5 +35,45 @@ void calculatorCanDoPercentageOperationKey() { calc.pressOperationKey("%"); assertEquals("0.08", calc.readScreen()); } + @Test + @DisplayName("should display big number") + void calculatorCanDoCalculateBigNumber() { + Calculator calc = new Calculator(); + calc.pressDigitKey(1); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressOperationKey("x"); + calc.pressDigitKey(1); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressEquals(); + assertEquals("1e+12", calc.readScreen()); + } + + @Test + @DisplayName("should display small number") + void calculatorCanDoCalculateSmallNumber() { + Calculator calc = new Calculator(); + calc.pressDigitKey(1); + calc.pressOperationKey("/"); + calc.pressDigitKey(1); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressDigitKey(0); + calc.pressEquals(); + assertEquals("1e-7", calc.readScreen()); + } } // andere Fälle testen \ No newline at end of file From 615e4a85362f0402291ff8aae542630799627f69 Mon Sep 17 00:00:00 2001 From: magacss Date: Wed, 28 Oct 2020 18:44:32 +0100 Subject: [PATCH 5/5] fix red test 2 --- src/main/java/tdd/setup/Calculator.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/tdd/setup/Calculator.java b/src/main/java/tdd/setup/Calculator.java index 6d7d055..9a3c068 100644 --- a/src/main/java/tdd/setup/Calculator.java +++ b/src/main/java/tdd/setup/Calculator.java @@ -17,10 +17,13 @@ public void pressDigitKey(int digit) { if(latestOperation.isEmpty()) { screen = screen + digit; - } else { + } else if (latestValue == 0.0){ latestValue = Double.parseDouble(screen); screen = Integer.toString(digit); } + else{ + screen = screen + digit; + } } public void pressClearKey() { @@ -58,5 +61,7 @@ public void pressEquals() { }; screen = Double.toString(result); if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); + if(screen.contains(".0E-")) screen = screen.replace(".0E","e"); + if(screen.contains(".0E")) screen = screen.replace(".0E","e+"); } }