From d0d902d0b94c9ef811784b39ab5ffa809fc57ccd Mon Sep 17 00:00:00 2001 From: kemalghifari Date: Wed, 27 Oct 2021 22:12:54 +0200 Subject: [PATCH 1/5] first green test --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) 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 addc5f26..96afeafd 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -40,6 +40,24 @@ void testSquareRoot() { assertEquals(expected, actual); } - //TODO hier weitere Tests erstellen + @Test + @DisplayName("should display result after subtracting two decimal numbers") + void testDecimalSubtraction() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(2); + calc.pressDotKey(); + calc.pressDigitKey(1); + calc.pressBinaryOperationKey("-"); + calc.pressDigitKey(2); + calc.pressDotKey(); + calc.pressDigitKey(1); + calc.pressEqualsKey(); + + String expected = "0"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } } From 14a7a38ea711e3ebe20eaf6d9e0d7bbc78b34572 Mon Sep 17 00:00:00 2001 From: kemalghifari Date: Wed, 27 Oct 2021 22:13:59 +0200 Subject: [PATCH 2/5] first red test --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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 96afeafd..7a526f60 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -59,5 +59,22 @@ void testDecimalSubtraction() { assertEquals(expected, actual); } + + @Test + @DisplayName("should display result after subtracting a positive number and a negative number") + void testPositiveSubtraction(){ + Calculator calc = new Calculator(); + + calc.pressDigitKey(5); + calc.pressBinaryOperationKey("-"); + calc.pressNegativeKey(); + calc.pressDigitKey(2); + calc.pressEqualsKey(); + + String expected = "7"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } } From 1574bf07d8fb9e2a529f4db6076959d85f7e427c Mon Sep 17 00:00:00 2001 From: kemalghifari Date: Wed, 27 Oct 2021 22:15:20 +0200 Subject: [PATCH 3/5] fix to the first red test --- app/src/main/java/htw/berlin/prog2/ha1/Calculator.java | 8 +++++++- 1 file changed, 7 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 aaef8862..a0b14410 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -104,7 +104,13 @@ public void pressDotKey() { * entfernt und der Inhalt fortan als positiv interpretiert. */ public void pressNegativeKey() { - screen = screen.startsWith("-") ? screen.substring(1) : "-" + screen; + if (screen.startsWith("-")){ + screen.substring(1); + } else if (latestOperation.equals("-") || latestOperation.equals("+")){ + screen = "-" + "0"; + } else { + screen = "-" + screen; + } } /** From 3b29b0dbd7263570147defa8dacec58d2a3b4b43 Mon Sep 17 00:00:00 2001 From: kemalghifari Date: Wed, 27 Oct 2021 22:18:58 +0200 Subject: [PATCH 4/5] second red test --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 7a526f60..8138e3cb 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -76,5 +76,23 @@ void testPositiveSubtraction(){ assertEquals(expected, actual); } + + @Test + @DisplayName("should display result after multiplying a decimal number and a natural number") + void testDecimalNumbers() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(0); + calc.pressDotKey(); + calc.pressDigitKey(9); + calc.pressBinaryOperationKey("x"); + calc.pressDigitKey(3); + calc.pressEqualsKey(); + + String expected = "2.7"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } } From 95695295e942afefa9cfcd11145e83d6c3d74d3e Mon Sep 17 00:00:00 2001 From: kemalghifari Date: Wed, 27 Oct 2021 22:19:36 +0200 Subject: [PATCH 5/5] fix to the second red test --- app/src/main/java/htw/berlin/prog2/ha1/Calculator.java | 2 +- 1 file changed, 1 insertion(+), 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 a0b14410..a9753f5b 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") || latestValue == Double.parseDouble(screen) && !screen.endsWith(".")) screen = ""; screen = screen + digit; }