diff --git a/.idea/libraries/jars.xml b/.idea/libraries/jars.xml new file mode 100644 index 0000000..a29960d --- /dev/null +++ b/.idea/libraries/jars.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..1029788 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..bdf963f --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TriangleCheckerAssignment.iml b/TriangleCheckerAssignment.iml new file mode 100644 index 0000000..506243b --- /dev/null +++ b/TriangleCheckerAssignment.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/TriangleChecker.java b/src/TriangleChecker.java index 14f4841..dd873b3 100644 --- a/src/TriangleChecker.java +++ b/src/TriangleChecker.java @@ -1,54 +1,76 @@ +import java.util.Arrays; import java.util.Scanner; public class TriangleChecker { - - public enum TriangleType { - NONE, - NORMAL, - ISOSCELES, // Gleichschenklig - EQUILATERAL // Gleichseitig - } - - public static void main(String[] args) { - Scanner s = new Scanner(System.in); - System.out.println("Geben Sie die Seitenlängen ein."); - float a = enterFloat(s, "a: "); - float b = enterFloat(s, "b: "); - float c = enterFloat(s, "c: "); - s.close(); - printAnalysis(a, b, c); - } - - // Eingabe einer Seitenlänge - private static float enterFloat(Scanner s, String prompt) { - System.out.print(prompt); - return s.nextFloat(); - } - - // Ausgabe der ermittelten Dreiecksart - private static void printAnalysis(float a, float b, float c) { - TriangleType type = checkTriangle(a, b, c); - switch (type) { - case NONE: - System.out.println("Kein Dreieck"); - break; - case NORMAL: - System.out.println("Dreieck"); - break; - case ISOSCELES: - System.out.println("Gleichschenkliges Dreieck"); - break; - case EQUILATERAL: - System.out.println("Gleichseitiges Dreieck"); - break; + public enum TriangleType { + NONE, + NORMAL, + ISOSCELES, // Gleichschenklig + EQUILATERAL // Gleichseitig } - } - // Analyse der Dreiecksart - public static TriangleType checkTriangle(float a, float b, float c) { - return TriangleType.NONE; - } + public static void main(String[] args) { + Scanner s = new Scanner(System.in); + System.out.println("Geben Sie die Seitenlängen ein."); + float a = enterFloat(s, "a: "); + float b = enterFloat(s, "b: "); + float c = enterFloat(s, "c: "); + s.close(); + printAnalysis(a, b, c); + } + + // Eingabe einer Seitenlänge + private static float enterFloat(Scanner s, String prompt) { + System.out.print(prompt); + return s.nextFloat(); + } + + // Ausgabe der ermittelten Dreiecksart + private static void printAnalysis(float a, float b, float c) { + TriangleType type = checkTriangle(a, b, c); + switch (type) { + case NONE: + System.out.println("Kein Dreieck"); + break; + case NORMAL: + System.out.println("Dreieck"); + break; + case ISOSCELES: + System.out.println("Gleichschenkliges Dreieck"); + break; + case EQUILATERAL: + System.out.println("Gleichseitiges Dreieck"); + 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..5060181 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,47 @@ 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); + } } +