From f97780b63287a246b4850ba4851e32c879b4ee00 Mon Sep 17 00:00:00 2001 From: Ramsan Gook Date: Fri, 19 Apr 2024 22:06:07 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Erfolgreich=20ausgef=C3=BChrter=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/htw/berlin/prog2/ha1/Calculator.java | 9 ++++++--- .../htw/berlin/prog2/ha1/CalculatorTest.java | 16 ++++++++++++++++ 2 files changed, 22 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 84c04f21..56439b56 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -29,9 +29,12 @@ public String readScreen() { * @param digit Die Ziffer, deren Taste gedrückt wurde */ public void pressDigitKey(int digit) { - if(digit > 9 || digit < 0) throw new IllegalArgumentException(); - - if(screen.equals("0") || latestValue == Double.parseDouble(screen)) screen = ""; + if (digit > 9 || digit < 0) { + throw new IllegalArgumentException(); + } + if (screen.equals("0") || latestValue == Double.parseDouble(screen)) { + screen = ""; + } screen = screen + 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 ddff0daf..ae41b559 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -88,6 +88,22 @@ void testMultipleDecimalDots() { assertEquals(expected, actual); } + @Test + @DisplayName("Das ist ein Test") + void testNegativKeyIndex(){ + Calculator calc = new Calculator(); + + calc.pressBinaryOperationKey("-"); + calc.pressDigitKey(1); + calc.readScreen(); + + String expected = "1"; + String actual = calc.readScreen(); + + assertEquals(expected,actual); + } + + //TODO hier weitere Tests erstellen } From 7648a89a5df580d007b93ad822def03f4c8c2522 Mon Sep 17 00:00:00 2001 From: Ramsan Gook Date: Tue, 23 Apr 2024 20:47:49 +0200 Subject: [PATCH 2/3] =?UTF-8?q?Erfolgreich=20ausgef=C3=BChrter=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/htw/berlin/prog2/ha1/Calculator.java | 19 ++++++--- .../htw/berlin/prog2/ha1/CalculatorTest.java | 42 ++++++++++++++++++- 2 files changed, 55 insertions(+), 6 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 56439b56..03cda600 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -5,6 +5,14 @@ * https://www.online-calculator.com/ aufgerufen werden kann (ohne die Memory-Funktionen) * und dessen Bildschirm bis zu zehn Ziffern plus einem Dezimaltrennzeichen darstellen kann. * Enthält mit Absicht noch diverse Bugs oder unvollständige Funktionen. + * + * Teilaufgabe 2: Schreiben Sie zwei weitere zusätzliche Tests, die zwei unterschiedliche + * Fehlerkategorien aufdecken (d.h. deren Fehlerursachen in unterschiedlichen Methoden liegen) und somit fehlschlagen. + * + * Teilaufgabe 3: Schreiben Sie zwei Bugfixes (also Änderungen der Implementierungsklasse Calculator), + * sodass die zwei zuvor hinzugefügten Tests erfolgreich durchlaufen. Falls Sie dabei das Verhalten so erweitern, + * dass es über das im JavaDoc spezifizierte hinausgeht (aber zum Verhalten des Online Calculator passt), + * dann erweitern Sie bitte auch das JavaDoc entsprechend. */ public class Calculator { @@ -23,7 +31,7 @@ public String readScreen() { /** * Empfängt den Wert einer gedrückten Zifferntaste. Da man nur eine Taste auf einmal - * drücken kann muss der Wert positiv und einstellig sein und zwischen 0 und 9 liegen. + * drücken kann, muss der Wert positiv und einstellig sein und zwischen 0 und 9 liegen. * Führt in jedem Fall dazu, dass die gerade gedrückte Ziffer auf dem Bildschirm angezeigt * oder rechts an die zuvor gedrückte Ziffer angehängt angezeigt wird. * @param digit Die Ziffer, deren Taste gedrückt wurde @@ -41,10 +49,10 @@ public void pressDigitKey(int digit) { /** * Empfängt den Befehl der C- bzw. CE-Taste (Clear bzw. Clear Entry). - * Einmaliges Drücken der Taste löscht die zuvor eingegebenen Ziffern auf dem Bildschirm - * so dass "0" angezeigt wird, jedoch ohne zuvor zwischengespeicherte Werte zu löschen. + * Einmaliges Drücken der Taste löscht die zuvor eingegebenen Ziffern auf dem Bildschirm, + * sodass "0" angezeigt wird, jedoch ohne zuvor zwischengespeicherte Werte zu löschen. * Wird daraufhin noch einmal die Taste gedrückt, dann werden auch zwischengespeicherte - * Werte sowie der aktuelle Operationsmodus zurückgesetzt, so dass der Rechner wieder + * Werte sowie der aktuelle Operationsmodus zurückgesetzt, sodass der Rechner wieder * im Ursprungszustand ist. */ public void pressClearKey() { @@ -103,7 +111,7 @@ public void pressDotKey() { /** * Empfängt den Befehl der gedrückten Vorzeichenumkehrstaste ("+/-"). * Zeigt der Bildschirm einen positiven Wert an, so wird ein "-" links angehängt, der Bildschirm - * aktualisiert und die Inhalt fortan als negativ interpretiert. + * aktualisier und der Inhalt fortan als negativ interpretiert. * Zeigt der Bildschirm bereits einen negativen Wert mit führendem Minus an, dann wird dieses * entfernt und der Inhalt fortan als positiv interpretiert. */ @@ -133,4 +141,5 @@ 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); } + } 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 ae41b559..73ab797b 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -89,7 +89,7 @@ void testMultipleDecimalDots() { } @Test - @DisplayName("Das ist ein Test") + @DisplayName("Prüft ob die Negation auf der richtigen Stelle ist") void testNegativKeyIndex(){ Calculator calc = new Calculator(); @@ -105,6 +105,46 @@ void testNegativKeyIndex(){ + @Test + @DisplayName(" Prüft ob man Zahlen < 9 und Zahlen > 0 eingeben kann ") + void testDevide(){ + Calculator calc = new Calculator(); + calc.pressDigitKey(22); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(2); + calc.pressEqualsKey(); + + String expected = "24"; + String actual = calc.readScreen(); + + + } + + @Test + @DisplayName("Nach dem Drücken von ClearKey darf LastOperation nicht zurückgesetzt werden ") + void testOfClearKey(){ + + Calculator calc = new Calculator(); + + calc.pressDigitKey(6); + calc.pressBinaryOperationKey("x"); + calc.pressDigitKey(6); + calc.pressClearKey(); + calc.pressDigitKey(5); + calc.pressEqualsKey(); + calc.readScreen(); + + String expected = "30"; + String actual = calc.readScreen(); + + + + + } + + + + //TODO hier weitere Tests erstellen } From 3c9081fa8d50b691ad1688956da1eaf0c92c5723 Mon Sep 17 00:00:00 2001 From: Ramsan Gook Date: Tue, 23 Apr 2024 20:51:21 +0200 Subject: [PATCH 3/3] Zwei fehlgeschlagene Tests in zwei verschiedenen Methoden. --- .../java/htw/berlin/prog2/ha1/Calculator.java | 2 +- .../htw/berlin/prog2/ha1/CalculatorTest.java | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 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 03cda600..0a2bef83 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -53,7 +53,7 @@ public void pressDigitKey(int digit) { * sodass "0" angezeigt wird, jedoch ohne zuvor zwischengespeicherte Werte zu löschen. * Wird daraufhin noch einmal die Taste gedrückt, dann werden auch zwischengespeicherte * Werte sowie der aktuelle Operationsmodus zurückgesetzt, sodass der Rechner wieder - * im Ursprungszustand ist. + * im Ursprungszustand ist... */ public void pressClearKey() { screen = "0"; 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 73ab797b..f76e662a 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -104,6 +104,20 @@ void testNegativKeyIndex(){ } + @Test + @DisplayName(" Prüft ob man Zahlen < 9 und Zahlen > 0 eingeben kann ") + void testScreenEingabe(){ + Calculator calc = new Calculator(); + calc.pressDigitKey(22); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(2); + calc.pressEqualsKey(); + + String expected = "24"; + String actual = calc.readScreen(); + + + } @Test @DisplayName(" Prüft ob man Zahlen < 9 und Zahlen > 0 eingeben kann ") @@ -125,7 +139,7 @@ void testDevide(){ void testOfClearKey(){ Calculator calc = new Calculator(); - + //calc.pressNegativeKey(); calc.pressDigitKey(6); calc.pressBinaryOperationKey("x"); calc.pressDigitKey(6); @@ -138,8 +152,6 @@ void testOfClearKey(){ String actual = calc.readScreen(); - - }