From b0cc3ac20d18f22e7590f93acda43234b40037ab Mon Sep 17 00:00:00 2001 From: juleslepitschka Date: Wed, 22 Dec 2021 15:45:16 +0100 Subject: [PATCH] Fertige Abgabe mit mehreren Tests --- src/TriangleChecker.java | 42 ++++++++++++++++++++++++------ test/TriangleCheckerTest.java | 49 ++++++++++++++++++++++++++++++++--- 2 files changed, 80 insertions(+), 11 deletions(-) diff --git a/src/TriangleChecker.java b/src/TriangleChecker.java index 14f4841..d82902b 100644 --- a/src/TriangleChecker.java +++ b/src/TriangleChecker.java @@ -1,10 +1,10 @@ import java.util.Scanner; public class TriangleChecker { - + public enum TriangleType { - NONE, - NORMAL, + NONE, // kein Dreieck + NORMAL, // Dreieck ISOSCELES, // Gleichschenklig EQUILATERAL // Gleichseitig } @@ -32,23 +32,49 @@ public class TriangleChecker { switch (type) { case NONE: System.out.println("Kein Dreieck"); - break; + break; case NORMAL: System.out.println("Dreieck"); - break; + break; case ISOSCELES: System.out.println("Gleichschenkliges Dreieck"); - break; + break; case EQUILATERAL: System.out.println("Gleichseitiges Dreieck"); - break; + break; } } - // Analyse der Dreiecksart + // Analysen public static TriangleType checkTriangle(float a, float b, float c) { + if(checkIfNotValid(a,b,c)) return TriangleType.NONE; + if(checkIfEquilateral(a,b,c)) return TriangleType.EQUILATERAL; + if(checkIfIsosceles(a,b,c)) return TriangleType.ISOSCELES; + if(checkIfNormal(a,b,c)) return TriangleType.NORMAL; return TriangleType.NONE; } + // Analyse kein Dreieck + private static boolean checkIfNotValid(float a, float b, float c){ + if (a + b <= c || a + c <= b || b + c <= a) return true; + return false; + } + // Analyse normales Dreieck + private static boolean checkIfNormal(float a, float b, float c){ + if (a != b && b != c && a != c) return true; + return false; + } + + // Analyse gleichschenkliges Dreieck + private static boolean checkIfIsosceles(float a, float b, float c){ + if (a == b || a == c || b == c) return true; + return false; + } + + // Analyse gleichseitiges Dreieck + private static boolean checkIfEquilateral(float a, float b, float c){ + if (a == b && b == c) return true; + return false; + } } \ No newline at end of file diff --git a/test/TriangleCheckerTest.java b/test/TriangleCheckerTest.java index 5c9ff57..6abd211 100644 --- a/test/TriangleCheckerTest.java +++ b/test/TriangleCheckerTest.java @@ -2,7 +2,7 @@ import org.junit.Test; import static org.junit.Assert.*; public class TriangleCheckerTest { - + @Test public void testValidTriangle() { @@ -16,7 +16,50 @@ public class TriangleCheckerTest { // Assert assertEquals(TriangleChecker.TriangleType.NORMAL, type); - } -} + @Test + public void testIfNotValidTriangle_SumOfTwoSidesEqualsThird() { + + // Arrange + float a = 10; + float b = 20; + float c = 30; + + // Act + TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); + + // Assert + assertEquals(TriangleChecker.TriangleType.NONE, type); + } + + @Test + public void testEquilateralTriangle() { + + // Arrange + float a = 1; + float b = 1; + float c = 1; + + // Act + TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); + + // Assert + assertEquals(TriangleChecker.TriangleType.EQUILATERAL, type); + } + + @Test + public void testIsoscelesTriangleIfAEqualsB() { + + // Arrange + float a = 10; + float b = 10; + float c = 5; + + // Act + TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); + + // Assert + assertEquals(TriangleChecker.TriangleType.ISOSCELES, type); + } +} \ No newline at end of file