From c8a36ab5d1f452816a541de7b27bea73145030c6 Mon Sep 17 00:00:00 2001 From: julianheinrich Date: Thu, 21 Apr 2022 16:48:18 +0200 Subject: [PATCH 1/6] Erster Test, Prozent Funktion --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 16 +++++++++++++++- 1 file changed, 15 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..8f83d1cf 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,20 @@ void testSquareRoot() { assertEquals(expected, actual); } - //TODO hier weitere Tests erstellen + @Test + @DisplayName("should operate the percent function") + void ProzentFunction() { + + Calculator calc = new Calculator(); + + calc.pressDigitKey(4); + calc.pressDigitKey(0); + calc.pressUnaryOperationKey("%"); + + String expected = "0.4"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } } From 99b28ff2f27e16ea31d23c5c24bfcd46007fcc77 Mon Sep 17 00:00:00 2001 From: julianheinrich Date: Thu, 21 Apr 2022 16:53:06 +0200 Subject: [PATCH 2/6] Test 1: zwei Prozent werte mitienander Multiplizieren(Test Rot) --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 22 +++++++++++++++++++ 1 file changed, 22 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 8f83d1cf..b7991f24 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -55,5 +55,27 @@ void ProzentFunction() { assertEquals(expected, actual); } + + @Test + @DisplayName("should operate the percent function + ") + void ProzentFunctionn() { + + var calc = new Calculator(); + + calc.pressDigitKey(4); + calc.pressDotKey(); + calc.pressDigitKey(0); + calc.pressUnaryOperationKey("%%"); + calc.pressDigitKey(4); + calc.pressDotKey(); + calc.pressDigitKey(0); + calc.pressUnaryOperationKey("%%"); + calc.pressEqualsKey(); + + String expected = "0.16"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } } From e0c714a1939cc633b601e5aacb231e8568271c25 Mon Sep 17 00:00:00 2001 From: julianheinrich Date: Thu, 21 Apr 2022 16:59:16 +0200 Subject: [PATCH 3/6] Test 1: ein Prozent wert mitienander Multiplizieren(Test Rot) --- .../test/java/htw/berlin/prog2/ha1/CalculatorTest.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) 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 b7991f24..787056f8 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -58,19 +58,15 @@ void ProzentFunction() { @Test @DisplayName("should operate the percent function + ") - void ProzentFunctionn() { + void ProzentFunctionTimes() { - var calc = new Calculator(); + Calculator calc = new Calculator(); calc.pressDigitKey(4); calc.pressDotKey(); calc.pressDigitKey(0); calc.pressUnaryOperationKey("%%"); - calc.pressDigitKey(4); - calc.pressDotKey(); - calc.pressDigitKey(0); - calc.pressUnaryOperationKey("%%"); - calc.pressEqualsKey(); + String expected = "0.16"; String actual = calc.readScreen(); From 8344369e3ef73f4edab3c31c72a19aa540726477 Mon Sep 17 00:00:00 2001 From: julianheinrich Date: Thu, 21 Apr 2022 16:59:37 +0200 Subject: [PATCH 4/6] =?UTF-8?q?Test=201=20L=C3=B6sung=20:=20ein=20Prozent?= =?UTF-8?q?=20wert=20mitienander=20Multiplizieren(Test=20Gr=C3=BCn)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/htw/berlin/prog2/ha1/Calculator.java | 1 + 1 file changed, 1 insertion(+) 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..afec7f06 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -77,6 +77,7 @@ public void pressUnaryOperationKey(String operation) { var result = switch(operation) { case "√" -> Math.sqrt(Double.parseDouble(screen)); case "%" -> Double.parseDouble(screen) / 100; + case "%%" -> latestValue / 10 * latestValue / 10; case "1/x" -> 1 / Double.parseDouble(screen); default -> throw new IllegalArgumentException(); }; From 6271ebcfcdf8f23117823e76f6663a054719cd99 Mon Sep 17 00:00:00 2001 From: julianheinrich Date: Thu, 21 Apr 2022 17:31:36 +0200 Subject: [PATCH 5/6] =?UTF-8?q?Test=202=20L=C3=B6sung=20:=20negativer=20We?= =?UTF-8?q?rt=20minus=20einen=20weiteren=20wert.(Test=202=20Rot)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 39 +++++++++++++++++++ 1 file changed, 39 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 787056f8..cf9210b1 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -73,5 +73,44 @@ void ProzentFunctionTimes() { assertEquals(expected, actual); } + @Test + @DisplayName("Display out the 1/x Operation") + + void XFunktion(){ + + Calculator calc = new Calculator(); + + calc.pressDigitKey(3); + calc.pressUnaryOperationKey("1/x"); + + + String expected = "0.33333333"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + + } + @Test + @DisplayName("+/- Taste am angang drücken") + + void MinusFunktion(){ + + Calculator calc = new Calculator(); + + calc.pressNegativeKey(); + calc.pressDigitKey(3); + calc.pressDigitKey(5); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(3); + calc.pressEqualsKey(); + + + String expected = "-7.0"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + + } + } From 0b451b0ffde4a05db0a1482e430ea4588b551c66 Mon Sep 17 00:00:00 2001 From: julianheinrich Date: Thu, 21 Apr 2022 17:46:48 +0200 Subject: [PATCH 6/6] =?UTF-8?q?Test=202=20L=C3=B6sung=20:=20negativer=20We?= =?UTF-8?q?rt=20minus=20einen=20weiteren=20wert,=20mit=20+/-=20Taste=20am?= =?UTF-8?q?=20Anfang.(Test=202=20Gr=C3=BCn)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/htw/berlin/prog2/ha1/Calculator.java | 9 +++++++-- .../test/java/htw/berlin/prog2/ha1/CalculatorTest.java | 7 ++++--- 2 files changed, 11 insertions(+), 5 deletions(-) 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 afec7f06..1f74ef24 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -31,9 +31,14 @@ 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")) screen = ""; - screen = screen + digit; + if(latestOperation.isEmpty()) { + screen = screen + digit; + } else { + latestValue = Double.parseDouble(screen); + screen = Integer.toString(digit); + } } /** 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 cf9210b1..1a48a38c 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -91,7 +91,7 @@ void XFunktion(){ } @Test - @DisplayName("+/- Taste am angang drücken") + @DisplayName("+/- Taste am anfang drücken") void MinusFunktion(){ @@ -101,11 +101,12 @@ void MinusFunktion(){ calc.pressDigitKey(3); calc.pressDigitKey(5); calc.pressBinaryOperationKey("+"); - calc.pressDigitKey(3); + calc.pressDigitKey(4); calc.pressEqualsKey(); - String expected = "-7.0"; + + String expected = "-31"; String actual = calc.readScreen(); assertEquals(expected, actual);