From 9b0a3212a3746fccdd1c80acf3031fe8f48af92f Mon Sep 17 00:00:00 2001 From: Karim-Ayd Date: Sun, 6 Apr 2025 16:44:26 +0200 Subject: [PATCH 1/5] =?UTF-8?q?Gr=C3=BCner=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/htw/berlin/prog2/ha1/Calculator.java | 1 + .../htw/berlin/prog2/ha1/CalculatorTest.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) 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 84c04f21..3e48973e 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -48,6 +48,7 @@ public void pressClearKey() { screen = "0"; latestOperation = ""; latestValue = 0.0; + //C taste fehlt bei wiederholtem drücken CE } /** 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 ddff0daf..2ad7a8c6 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -87,6 +87,22 @@ void testMultipleDecimalDots() { assertEquals(expected, actual); } + @Test + @DisplayName("should display positive result after division of two positive numbers") + void testPositiveDivision(){ + Calculator calc = new Calculator(); + + calc.pressDigitKey(1); + calc.pressDigitKey(0); + calc.pressBinaryOperationKey("/"); + calc.pressDigitKey(5); + calc.pressEqualsKey(); + + String expected = "2"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } //TODO hier weitere Tests erstellen From 4df083dff0229bab53651f901e295078bc78210e Mon Sep 17 00:00:00 2001 From: Karim-Ayd Date: Thu, 10 Apr 2025 10:56:38 +0200 Subject: [PATCH 2/5] =?UTF-8?q?Red=20Test=20dokumentiert=20f=C3=BCr=20fals?= =?UTF-8?q?che=20CE-=20Taste?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/htw/berlin/prog2/ha1/Calculator.java | 7 ++++ .../htw/berlin/prog2/ha1/CalculatorTest.java | 40 ++++++++++++++++++- 2 files changed, 46 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 3e48973e..049b5ff6 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -131,4 +131,11 @@ public void pressEqualsKey() { if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); } + + public static void main(String[]args){ + double a = 7; + double b = 9; + + System.out.println(b / a); + } } 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 2ad7a8c6..d972eb1c 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -87,6 +87,9 @@ void testMultipleDecimalDots() { assertEquals(expected, actual); } + + //TODO hier weitere Tests erstellen + @Test @DisplayName("should display positive result after division of two positive numbers") void testPositiveDivision(){ @@ -104,7 +107,42 @@ void testPositiveDivision(){ assertEquals(expected, actual); } + @Test + @DisplayName("should display at most 10 characters on screen") + void testScreenLengthLimit(){ + Calculator calc = new Calculator(); - //TODO hier weitere Tests erstellen + calc.pressDigitKey(9); + calc.pressBinaryOperationKey("/"); + calc.pressDigitKey(7); + calc.pressEqualsKey(); + + String expected = "1.28571428"; + String actual = calc.readScreen(); + + System.out.println(actual); + System.out.println(actual.length()); + + assertEquals(true, actual.length()<= 10); + } + + @Test + @DisplayName("should only clear screen on first press of C and full reeset on second") + void testClearKey(){ + Calculator calc = new Calculator(); + + calc.pressDigitKey(2); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(5); + calc.pressClearKey(); + calc.pressEqualsKey(); + + String expected = "2"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + + } } + From 4aac321d01d6638bd34edab9cc1b88b612775ab1 Mon Sep 17 00:00:00 2001 From: Karim-Ayd Date: Fri, 11 Apr 2025 14:38:42 +0200 Subject: [PATCH 3/5] zweiter Roter test: Zeigt -0 an --- .../java/htw/berlin/prog2/ha1/Calculator.java | 6 ++-- .../htw/berlin/prog2/ha1/CalculatorTest.java | 32 +++++++++++++++++++ 2 files changed, 36 insertions(+), 2 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 049b5ff6..c78c23a2 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -131,11 +131,13 @@ public void pressEqualsKey() { if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); } - +/* public static void main(String[]args){ double a = 7; double b = 9; System.out.println(b / a); + */ + } -} + 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 d972eb1c..f4161961 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -143,6 +143,38 @@ void testClearKey(){ assertEquals(expected, actual); } + + @Test + @DisplayName("should not allow two points in one number") + + void testDoubleDot(){ + Calculator calc = new Calculator(); + + calc.pressDigitKey(5); + calc.pressDotKey(); + calc.pressDigitKey(6); + calc.pressDotKey(); + calc.pressDigitKey(7); + + String expected = "5.67"; + String actual = calc.readScreen(); + + assertEquals(expected,actual); + } + + @Test + @DisplayName("should not write a negative sign before 0") + void testNegativeKeyOnZero(){ + Calculator calc = new Calculator(); + + calc.pressNegativeKey(); + + String expected = "0"; + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + } From 93af73998c19dc778e51d1eceeb2e38bc04a4595 Mon Sep 17 00:00:00 2001 From: Karim-Ayd Date: Fri, 11 Apr 2025 16:11:30 +0200 Subject: [PATCH 4/5] Bugfix: NegativeKeyOnZero --- app/src/main/java/htw/berlin/prog2/ha1/Calculator.java | 6 +++++- 1 file changed, 5 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 c78c23a2..c85731fa 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -106,7 +106,11 @@ public void pressDotKey() { * entfernt und der Inhalt fortan als positiv interpretiert. */ public void pressNegativeKey() { - screen = screen.startsWith("-") ? screen.substring(1) : "-" + screen; + if (screen.equals("0") || screen.equals(-0)) { + screen = "0"; + } else{ + screen = screen.startsWith("-") ? screen.substring(1) : "-" + screen; + } } /** From 2986e4cc07248724bfebca2b2cfa599247fa89ee Mon Sep 17 00:00:00 2001 From: Karim-Ayd Date: Fri, 11 Apr 2025 17:26:05 +0200 Subject: [PATCH 5/5] zweiter Bugfix: ClearKey repariert --- .../main/java/htw/berlin/prog2/ha1/Calculator.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 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 c85731fa..1bf80dd9 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -45,9 +45,14 @@ public void pressDigitKey(int digit) { * im Ursprungszustand ist. */ public void pressClearKey() { - screen = "0"; - latestOperation = ""; - latestValue = 0.0; + if(!screen.equals("0")){ + screen = "0"; + } else { + screen = "0"; + latestOperation = ""; + latestValue = 0.0; + } + //C taste fehlt bei wiederholtem drücken CE }