diff --git a/src/TriangleChecker.java b/src/TriangleChecker.java index 14f4841..ecab1ab 100644 --- a/src/TriangleChecker.java +++ b/src/TriangleChecker.java @@ -1,9 +1,10 @@ +import java.util.Arrays; import java.util.Scanner; public class TriangleChecker { - + public enum TriangleType { - NONE, + NONE, NORMAL, ISOSCELES, // Gleichschenklig EQUILATERAL // Gleichseitig @@ -32,23 +33,44 @@ 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 public static TriangleType checkTriangle(float a, float b, float c) { + //find Hypotenuse + float[] tmp = {a, b, c}; + Arrays.sort(tmp); + float hypo = tmp[2]; + float a1 = tmp[0]; + float b1 = tmp[1]; + + + //normal + if (a1 + b1 > hypo) { + + //gleichseitig + if (a1 + b1 + hypo == 3 * a1) + return TriangleType.EQUILATERAL; + + //gleichschenklig + if (a1 == b1 || b1 == hypo || a1 == hypo) + return TriangleType.ISOSCELES; + + return TriangleType.NORMAL; + + } return TriangleType.NONE; } - -} \ No newline at end of file +} diff --git a/test/TriangleCheckerTest.java b/test/TriangleCheckerTest.java index 5c9ff57..bd659e4 100644 --- a/test/TriangleCheckerTest.java +++ b/test/TriangleCheckerTest.java @@ -1,8 +1,11 @@ import org.junit.Test; + +import java.util.Arrays; + import static org.junit.Assert.*; public class TriangleCheckerTest { - + @Test public void testValidTriangle() { @@ -18,5 +21,46 @@ public class TriangleCheckerTest { assertEquals(TriangleChecker.TriangleType.NORMAL, type); } + @Test + public void testEquilateralTriangle() { + // Arrange + float a = 2; + float b = 2; + float c = 2; + + // Act + TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); + + // Assert + assertEquals(TriangleChecker.TriangleType.EQUILATERAL, type); + } + @Test + public void testIsocelesTriangle() { + + // Arrange + float a = 2; + float b = 2; + float c = 3; + + // Act + TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); + + // Assert + assertEquals(TriangleChecker.TriangleType.ISOSCELES, type); + } + @Test + public void testNoTriangle() { + + // Arrange + float a = 2; + float b = 2; + float c = 4; + + // Act + TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); + + // Assert + assertEquals(TriangleChecker.TriangleType.NONE, type); + } }