From e9d2d684ba875dd2ab6ecdf65b890f5a96811648 Mon Sep 17 00:00:00 2001 From: AhmadbazChedo Date: Sun, 3 Nov 2024 20:20:43 +0100 Subject: [PATCH 1/6] test1 --- app/src/main/java/htw/berlin/prog2/.DS_Store | Bin 0 -> 6148 bytes app/src/test/java/htw/berlin/prog2/.DS_Store | Bin 0 -> 6148 bytes .../htw/berlin/prog2/ha1/CalculatorTest.java | 15 +++++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 app/src/main/java/htw/berlin/prog2/.DS_Store create mode 100644 app/src/test/java/htw/berlin/prog2/.DS_Store diff --git a/app/src/main/java/htw/berlin/prog2/.DS_Store b/app/src/main/java/htw/berlin/prog2/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3e7b29b10f4ae4a09da87af9ff64913862b3f999 GIT binary patch literal 6148 zcmeHKO-ds{6s}65R*-=#9LTc3ZNNl>Ft}-B<^t2A3zgVy2h-T;3i+8JAn`5KrKHRWBNey3`==LDg6Fe(LAzqN<+|LN-QGO^A{ZLP0^y6`^`V(2iw6a->-W zlsLwq7bYfz-d)&R@Mgs_GJxMMFFGO+wQxND{gQYvtX3anE?-z#T~ljnU7h(IGxmqU za5QKH{S)jR8k2;xb`T!L?QyHLabVJ65U1_F4Tz&QxSSrxX=KI?GfJa@jrE;D6;-iS zDo-Xm^?F6ucB|8hp8VRbR&;&0KAjfT&&{p9Kdq~zo0@-)LJ6nM$`8UB{D%hZCb_Kn z7p6<+uzdSs>6&Jf&Z)XS2yPy)?)T@d(FfLEXMR)-VYB)E`u#L9=_P1pt3xXbGr$Zm z1Ix$&-BW6P85hTEVg{IjFJ%Dl2Mq<$Bg`Dys{<;V0st03Z3WtxOJIy9^awMDU;&XX z6wrlAN-?Ah2fZdgk1%uS!iA*dL(S5Z<-brW7Fug&r5Y7ECo1#7l_v1&ruHr6#1)zFcN;u4)4vu)0=vV)s|8Q`a4c;mBDJ#OmzC83=de zuGd}b@aXvbYVw@EWb#eZ$$@Pp`vz-x2gR)BHCSY+%$~qgXV+PT!~iis3=jj`&44)< ztloChK&vMPh=B$MaDNcc5IuvHMzwW7hu3F}w-Hf5$F~HcFz6YqG(rS~>ry~n%FPpl z>vHf5ljj+%H0pB3)yy!CnYn(va5X#lg-U1K(?~rrKn!d$(9))j=l>=AGL4V?%@VSR z0b<~vF~Hm7VC=)9%-Q;5d3e?eXphiPFt0)d1oVwd02sKB^i@#D1?rIJ8LTwoDCk$^ PfOHX1giuEe`~m}C0Xs Date: Sun, 3 Nov 2024 21:04:03 +0100 Subject: [PATCH 2/6] rotertest1 --- .../htw/berlin/prog2/ha1/CalculatorTest.java | 21 +++++++++++++++++++ 1 file changed, 21 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 8ee6fbe..b230d70 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -105,5 +105,26 @@ void testMultipleAdditions() { String actual = calc.readScreen(); assertEquals(expected, actual); } + + + @Test + @DisplayName("should reset operation after pressing equals and starting new input") + void testInputAfterEquals() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(5); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(3); + calc.pressEqualsKey(); // Ergebnis: 8 + + calc.pressDigitKey(2); // Neue Eingabe sollte nicht zur Operation führen + + String expected = "2"; // Erwartet, dass der Bildschirm '2' zeigt, nicht '10' + String actual = calc.readScreen(); + + assertEquals(expected, actual); + } + } + From 7cbbd17a0e05a50214f5d13d0d0ff80bf12019e0 Mon Sep 17 00:00:00 2001 From: AhmadbazChedo Date: Sun, 3 Nov 2024 22:30:33 +0100 Subject: [PATCH 3/6] rotertestnew --- app/src/main/java/htw/berlin/prog2/.DS_Store | Bin 6148 -> 6148 bytes .../htw/berlin/prog2/ha1/CalculatorTest.java | 15 ++++++--------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/htw/berlin/prog2/.DS_Store b/app/src/main/java/htw/berlin/prog2/.DS_Store index 3e7b29b10f4ae4a09da87af9ff64913862b3f999..ed6b18002d2e74f3d1563860b95188c04f7e6e61 100644 GIT binary patch delta 19 acmZoMXffEp#mpA Date: Sun, 3 Nov 2024 22:32:33 +0100 Subject: [PATCH 4/6] bugfix1 --- app/src/main/java/htw/berlin/prog2/.DS_Store | Bin 6148 -> 6148 bytes .../java/htw/berlin/prog2/ha1/Calculator.java | 32 +++++++++++++----- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/htw/berlin/prog2/.DS_Store b/app/src/main/java/htw/berlin/prog2/.DS_Store index ed6b18002d2e74f3d1563860b95188c04f7e6e61..e19bacf09031c5e1f0e24a94bf61d82987b62cff 100644 GIT binary patch delta 41 vcmZoMXffFEiAhGvjDdlHnIVHAk-;!G-^C>-GeZVLB74`%-=)+@-hqX 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 84c04f2..060ac80 100644 --- a/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/app/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -74,16 +74,30 @@ public void pressBinaryOperationKey(String operation) { public void pressUnaryOperationKey(String operation) { latestValue = Double.parseDouble(screen); latestOperation = operation; - var result = switch(operation) { - case "√" -> Math.sqrt(Double.parseDouble(screen)); - case "%" -> Double.parseDouble(screen) / 100; - case "1/x" -> 1 / Double.parseDouble(screen); - default -> throw new IllegalArgumentException(); - }; - screen = Double.toString(result); - if(screen.equals("NaN")) screen = "Error"; - if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); + double result; + + switch (operation) { + case "√": + result = Math.sqrt(Double.parseDouble(screen)); + break; + case "%": + result = Double.parseDouble(screen) / 100; + break; + case "1/x": + if (Double.parseDouble(screen) == 0) { + screen = "Error"; // Zeigt "Error" bei Division durch 0 an + return; // Methode frühzeitig verlassen + } else { + result = 1 / Double.parseDouble(screen); + } + break; + default: + throw new IllegalArgumentException(); + } + screen = Double.toString(result); + if (screen.equals("NaN")) screen = "Error"; + if (screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); } /** From 43e8ed0f2020f4becc779866e9bc4f3cb5356de9 Mon Sep 17 00:00:00 2001 From: AhmadbazChedo Date: Sun, 3 Nov 2024 23:00:45 +0100 Subject: [PATCH 5/6] testrot --- app/src/main/java/htw/berlin/prog2/.DS_Store | Bin 6148 -> 6148 bytes .../java/htw/berlin/prog2/ha1/Calculator.java | 34 ++++++------------ .../htw/berlin/prog2/ha1/CalculatorTest.java | 13 +++---- 3 files changed, 17 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/htw/berlin/prog2/.DS_Store b/app/src/main/java/htw/berlin/prog2/.DS_Store index e19bacf09031c5e1f0e24a94bf61d82987b62cff..f2dd2011cff4bcd9fd98d28eb3e29245c3bb437a 100644 GIT binary patch delta 42 wcmZoMXffFEiAh#s9s>gdGeZVLB7 Math.sqrt(Double.parseDouble(screen)); + case "%" -> Double.parseDouble(screen) / 100; + case "1/x" -> 1 / Double.parseDouble(screen); + default -> throw new IllegalArgumentException(); + }; screen = Double.toString(result); - if (screen.equals("NaN")) screen = "Error"; - if (screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); + if(screen.equals("NaN")) screen = "Error"; + if(screen.contains(".") && screen.length() > 11) screen = screen.substring(0, 10); + } /** @@ -144,4 +130,4 @@ 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); } -} +} \ No newline at end of file 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 6bfc719..ca47ac5 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -109,19 +109,20 @@ void testMultipleAdditions() { @Test - @DisplayName("should display error when inverting zero") - void testInversionOfZero() { + @DisplayName("should return 0 when calculating the square root of zero") + void testUnaryOperationWithZero() { Calculator calc = new Calculator(); - calc.pressDigitKey(0); - calc.pressUnaryOperationKey("1/x"); + calc.pressDigitKey(0); // Eingabe von 0 + calc.pressUnaryOperationKey("√"); // Quadratwurzel - String expected = "Error"; + String expected = "0"; // Erwartetes Ergebnis: √0 = 0 String actual = calc.readScreen(); - assertEquals(expected, actual); + assertEquals(expected, actual); // Dieser Test sollte fehlschlagen, wenn der Bugfix nicht vorhanden ist } + } From 511960cb9b4a8b1ebe26bed3db9f38a37891cc58 Mon Sep 17 00:00:00 2001 From: AhmadbazChedo Date: Sun, 3 Nov 2024 23:41:00 +0100 Subject: [PATCH 6/6] final --- app/src/main/java/htw/berlin/prog2/.DS_Store | Bin 6148 -> 6148 bytes .../java/htw/berlin/prog2/ha1/Calculator.java | 11 ++++++-- .../htw/berlin/prog2/ha1/CalculatorTest.java | 26 ++++++++++++++---- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/htw/berlin/prog2/.DS_Store b/app/src/main/java/htw/berlin/prog2/.DS_Store index f2dd2011cff4bcd9fd98d28eb3e29245c3bb437a..cf1c5cf010a5f9e683c4628e2f9a6918f6b7c40d 100644 GIT binary patch delta 42 wcmZoMXffFEiAh$nih+TFnIVHAk-;!G-^C>gdGeZVLB7 11) screen = screen.substring(0, 10); - + if(screen.endsWith(".0")) screen = screen.substring(0,screen.length()-2); } /** 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 ca47ac5..e6230c0 100644 --- a/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/app/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -109,20 +109,34 @@ void testMultipleAdditions() { @Test - @DisplayName("should return 0 when calculating the square root of zero") - void testUnaryOperationWithZero() { + @DisplayName("should display result after getting the scare root of 4") + void testSquareRootOfFour() { Calculator calc = new Calculator(); - calc.pressDigitKey(0); // Eingabe von 0 - calc.pressUnaryOperationKey("√"); // Quadratwurzel + calc.pressDigitKey(4); + calc.pressUnaryOperationKey("√"); - String expected = "0"; // Erwartetes Ergebnis: √0 = 0 + String expected = "2"; String actual = calc.readScreen(); - assertEquals(expected, actual); // Dieser Test sollte fehlschlagen, wenn der Bugfix nicht vorhanden ist + assertEquals(expected, actual); } + @Test + @DisplayName("the latest value should not be deleted after pressing the Clear Key once") + void testCeKey() { + Calculator calc = new Calculator(); + calc.pressDigitKey(1); + calc.pressBinaryOperationKey("+"); + calc.pressDigitKey(1); + calc.pressClearKey(); + + String expected = "1.0"; + String actual = calc.giveLatestValue(); + + assertEquals(expected, actual); } +}