From 10edd0c2b4648d576dd1078a3b336808937b257b Mon Sep 17 00:00:00 2001 From: Phil <79200375+phil-beep@users.noreply.github.com> Date: Mon, 10 Jan 2022 13:33:42 +0100 Subject: [PATCH] modified case detections in the main program, created tests --- src/TriangleChecker.java | 17 +++++++++++- test/TriangleCheckerTest.java | 52 +++++++++++++++++++++++++++-------- 2 files changed, 57 insertions(+), 12 deletions(-) diff --git a/src/TriangleChecker.java b/src/TriangleChecker.java index 14f4841..17ffd5f 100644 --- a/src/TriangleChecker.java +++ b/src/TriangleChecker.java @@ -47,8 +47,23 @@ public class TriangleChecker { // Analyse der Dreiecksart public static TriangleType checkTriangle(float a, float b, float c) { + if(checkTrianglePossible(a, b, c)) { + if (a == b && a == c) { + return TriangleType.EQUILATERAL; + } + if (a == b || a == c || b == c) { + return TriangleType.ISOSCELES; + } + return TriangleType.NORMAL; + } return TriangleType.NONE; } -} \ No newline at end of file + public static boolean checkTrianglePossible(float a, float b, float c){ + if(a <= 0 || b <= 0 || c <= 0){ + return false; + } + return a+b > c && a + c > b && b + c > a; + } +} diff --git a/test/TriangleCheckerTest.java b/test/TriangleCheckerTest.java index 5c9ff57..00319ef 100644 --- a/test/TriangleCheckerTest.java +++ b/test/TriangleCheckerTest.java @@ -2,21 +2,51 @@ import org.junit.Test; import static org.junit.Assert.*; public class TriangleCheckerTest { - + + // Arrange + float a = 2; + float b = 3; + float c = 4; + float d = - a; + + TriangleChecker.TriangleType none = TriangleChecker.TriangleType.NONE; + TriangleChecker.TriangleType normal = TriangleChecker.TriangleType.NORMAL; + TriangleChecker.TriangleType isosceles = TriangleChecker.TriangleType.ISOSCELES; // Gleichschenklig + TriangleChecker.TriangleType equilateral = TriangleChecker.TriangleType.EQUILATERAL; // Gleichseitig + + @Test public void testValidTriangle() { - // Arrange - float a = 2; - float b = 3; - float c = 4; - - // Act - TriangleChecker.TriangleType type = TriangleChecker.checkTriangle(a, b, c); - - // Assert - assertEquals(TriangleChecker.TriangleType.NORMAL, type); + assertTrue(TriangleChecker.checkTrianglePossible(a,b,c)); + assertFalse(TriangleChecker.checkTrianglePossible(0,0,0)); + assertFalse(TriangleChecker.checkTrianglePossible(0,b,c)); + assertFalse(TriangleChecker.checkTrianglePossible(a,0,c)); + assertFalse(TriangleChecker.checkTrianglePossible(a,b,0)); + //combination of falses + assertFalse(TriangleChecker.checkTrianglePossible(d,c,c)); + assertFalse(TriangleChecker.checkTrianglePossible(0,0,c)); + assertFalse(TriangleChecker.checkTrianglePossible(d,d,d)); + assertFalse(TriangleChecker.checkTrianglePossible(a,b,0)); } + @Test + public void testTriangleType(){ + + assertEquals(none, TriangleChecker.checkTriangle(a, b, 400)); + + assertEquals(normal, TriangleChecker.checkTriangle(a, b, c)); + + assertEquals(isosceles, TriangleChecker.checkTriangle(a, b, b)); + assertEquals(isosceles, TriangleChecker.checkTriangle(a, a, c/3)); + assertEquals(isosceles, TriangleChecker.checkTriangle(c, b, c)); + assertNotEquals(isosceles, TriangleChecker.checkTriangle(a, b, c)); + assertNotEquals(isosceles, TriangleChecker.checkTriangle(a, a, a)); + + assertNotEquals(equilateral, TriangleChecker.checkTriangle(b, a, a)); + assertEquals(equilateral, TriangleChecker.checkTriangle(a, a, a)); + assertNotEquals(equilateral, TriangleChecker.checkTriangle(a, b, a)); + assertNotEquals(equilateral, TriangleChecker.checkTriangle(a, a, b)); + } }