From b1a2ba85726f4d124bf349bb649d19dbb2f3638f Mon Sep 17 00:00:00 2001 From: kyeorai Date: Mon, 27 Apr 2026 23:39:37 +0200 Subject: [PATCH] Add tests and fix calculator bugs --- .../java/htw/berlin/prog2/ha1/Calculator.java | 1 + .../htw/berlin/prog2/ha1/CalculatorTest.java | 36 ++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/htw/berlin/prog2/ha1/Calculator.java b/src/main/java/htw/berlin/prog2/ha1/Calculator.java index 84c04f2..538f796 100644 --- a/src/main/java/htw/berlin/prog2/ha1/Calculator.java +++ b/src/main/java/htw/berlin/prog2/ha1/Calculator.java @@ -118,6 +118,7 @@ public void pressNegativeKey() { * und das Ergebnis direkt angezeigt. */ public void pressEqualsKey() { + if(latestOperation.equals("")) return; var result = switch(latestOperation) { case "+" -> latestValue + Double.parseDouble(screen); case "-" -> latestValue - Double.parseDouble(screen); diff --git a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java index ddff0da..b64378b 100644 --- a/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java +++ b/src/test/java/htw/berlin/prog2/ha1/CalculatorTest.java @@ -90,5 +90,39 @@ void testMultipleDecimalDots() { //TODO hier weitere Tests erstellen -} + @Test + @DisplayName("should multiply two numbers") + void testMultiplication() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(3); + calc.pressBinaryOperationKey("x"); + calc.pressDigitKey(4); + calc.pressEqualsKey(); + + assertEquals("12", calc.readScreen()); + + } + @Test + @DisplayName("should not change value when equals pressed without operation") + void testEqualsWithoutOperation() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(5); + calc.pressEqualsKey(); + + assertEquals("5", calc.readScreen()); + } + @Test + @DisplayName("should toggle negative sign correctly") + void testNegativeToggle() { + Calculator calc = new Calculator(); + + calc.pressDigitKey(7); + calc.pressNegativeKey(); + calc.pressNegativeKey(); + + assertEquals("7", calc.readScreen()); + } +} \ No newline at end of file