diff --git a/Aufgaben.md b/Aufgaben.md index 8d668dc34def986c9ef9a634fa7bd91ae963ff77..585398d6db284e574022a2f2c7d72409cac83df7 100644 --- a/Aufgaben.md +++ b/Aufgaben.md @@ -97,6 +97,7 @@ PI Test bietet noch weitere Mutations-Operationen an. Diese wollen wir in der fo **Ziel**: Dieselben Tests mit verschiedenen, immer größer werdenden Mutations-Operator Gruppen zu analysieren und zu verbessern. 1. Führe für die Klassen im Ordner `Übung_5` eine `pitest:mutationCoverage` durch. + - Ignoriere im Verlauf der Aufgabe die Klasse `FinancialSummary` Klasse. - Lasse dir dabei eine Timestamped Version des Reports zurückgeben. 2. Verbessere die Tests so das keine gefundenen Mutanten überleben. 3. Nun wollen wir dasselbe nochmal mit einer größeren Gruppe durchführen. Konfiguriere dafür deine `pom.xml` Datei oder den Maven-Commandline Aufruf so, dass mit der [STRONGER group](https://pitest.org/quickstart/mutators/) mutiert wird. diff --git a/src/test/java/Helper/Helper_5 b/src/test/java/Helper/Helper_5 new file mode 100644 index 0000000000000000000000000000000000000000..905074d6746d6d93167bdec0bbd96598d1cd5e62 --- /dev/null +++ b/src/test/java/Helper/Helper_5 @@ -0,0 +1,56 @@ + // Original test case for revenue >= cost + @Test + public void testIsProfitableOriginal() { + + boolean result = calculator.isProfitable(10.0, 15.0); + assertTrue(result); + } + + // Test case for mutant where revenue > cost + @Test + public void testIsProfitableMutant() { + + boolean result = calculator.isProfitable(10.0, 10.0); + assertTrue(result); // According to original behavior, should be true + } +// STRONGER: + @Test + void testCostEqualsRevenue() { + double cost = 100.0; + double revenue = 100.0; + double result = calculator.BreakEvenCosts(cost, revenue); + assertEquals(cost, result, "If cost equals revenue, the result should be cost"); + } + + @Test + void testCostNotEqualsRevenue() { + double cost = 100.0; + double revenue = 150.0; + double result = calculator.BreakEvenCosts(cost, revenue); + assertEquals(revenue, result, "If cost does not equal revenue, the result should be revenue"); + } + + @Test + public void testPrintYear() { + assertEquals("One Year", calculator.printYear(1)); + assertEquals("Two Years", calculator.printYear(2)); + assertEquals("Three Years", calculator.printYear(3)); + assertEquals("Out of spectrum", calculator.printYear(4)); + } +//ALL: + @Test + public void testFinance() { + double principal = 1000; + double rate = 5; + int years = 2; + double cost = 500; + double revenue = 700; + + FinancialSummary summary = calculator.finance(principal, rate, years, cost, revenue); + assertNotNull(summary, "Expected non-null FinancialSummary"); + assertEquals(principal, summary.getPrincipal()); + assertEquals(principal * rate / 100 * years, summary.getInterest()); + assertEquals(principal + principal * rate / 100 * years, summary.getTotalAmount()); + assertEquals(cost, summary.getCost()); + assertEquals(revenue, summary.getRevenue()); + } \ No newline at end of file diff --git "a/src/test/java/\303\234bung_5/FinancialCalculatorTest.java" "b/src/test/java/\303\234bung_5/FinancialCalculatorTest.java" index 8f179785eb4276b26cb5600b06ba0325efde44aa..91486973f392a7b0dee4b5ef28d5739c223e0d1f 100644 --- "a/src/test/java/\303\234bung_5/FinancialCalculatorTest.java" +++ "b/src/test/java/\303\234bung_5/FinancialCalculatorTest.java" @@ -57,60 +57,5 @@ public class FinancialCalculatorTest { assertFalse(result); } - // Original test case for revenue >= cost - @Test - public void testIsProfitableOriginal() { - - boolean result = calculator.isProfitable(10.0, 15.0); - assertTrue(result); - } - - // Test case for mutant where revenue > cost - @Test - public void testIsProfitableMutant() { - - boolean result = calculator.isProfitable(10.0, 10.0); - assertTrue(result); // According to original behavior, should be true - } -// STRONGER: - @Test - void testCostEqualsRevenue() { - double cost = 100.0; - double revenue = 100.0; - double result = calculator.BreakEvenCosts(cost, revenue); - assertEquals(cost, result, "If cost equals revenue, the result should be cost"); - } - @Test - void testCostNotEqualsRevenue() { - double cost = 100.0; - double revenue = 150.0; - double result = calculator.BreakEvenCosts(cost, revenue); - assertEquals(revenue, result, "If cost does not equal revenue, the result should be revenue"); - } - - @Test - public void testPrintYear() { - assertEquals("One Year", calculator.printYear(1)); - assertEquals("Two Years", calculator.printYear(2)); - assertEquals("Three Years", calculator.printYear(3)); - assertEquals("Out of spectrum", calculator.printYear(4)); - } -//ALL: - @Test - public void testFinance() { - double principal = 1000; - double rate = 5; - int years = 2; - double cost = 500; - double revenue = 700; - - FinancialSummary summary = calculator.finance(principal, rate, years, cost, revenue); - assertNotNull(summary, "Expected non-null FinancialSummary"); - assertEquals(principal, summary.getPrincipal()); - assertEquals(principal * rate / 100 * years, summary.getInterest()); - assertEquals(principal + principal * rate / 100 * years, summary.getTotalAmount()); - assertEquals(cost, summary.getCost()); - assertEquals(revenue, summary.getRevenue()); - } }