Просмотр исходного кода

Added isEquilateral, isIsosceles, and isScalene, and updated tests

Jack Mustacato 9 лет назад
Родитель
Сommit
5a6c615057

+ 11
- 10
exercises/triangle/.meta/src/reference/java/Triangle.java Просмотреть файл

@@ -6,6 +6,7 @@ class Triangle {
6 6
     private double side1;
7 7
     private double side2;
8 8
     private double side3;
9
+    private int uniqueSides;
9 10
 
10 11
     Triangle(double side1, double side2, double side3) throws TriangleException {
11 12
         this.side1 = side1;
@@ -15,20 +16,20 @@ class Triangle {
15 16
         if (allSidesAreZero() || hasImpossibleSides() || violatesTriangleInequality()) {
16 17
             throw new TriangleException();
17 18
         }
18
-    }
19 19
 
20
-    TriangleKind getKind() {
21
-        int uniqueSides = getNumberOfUniqueSides();
20
+        this.uniqueSides = getNumberOfUniqueSides();
21
+    }
22 22
 
23
-        if (uniqueSides == 1) {
24
-            return TriangleKind.EQUILATERAL;
25
-        }
23
+    private boolean isEquilateral() {
24
+        return uniqueSides == 1;
25
+    }
26 26
 
27
-        if (uniqueSides == 2) {
28
-            return TriangleKind.ISOSCELES;
29
-        }
27
+    private boolean isIsosceles() {
28
+        return uniqueSides == 2;
29
+    }
30 30
 
31
-        return TriangleKind.SCALENE;
31
+    private boolean isScalene() {
32
+        return uniqueSides == 3;
32 33
     }
33 34
 
34 35
     private boolean allSidesAreZero() {

+ 10
- 10
exercises/triangle/src/test/java/TriangleTest.java Просмотреть файл

@@ -14,7 +14,7 @@ public class TriangleTest {
14 14
     public void equilateralTrianglesHaveEqualSides() throws TriangleException {
15 15
         Triangle triangle = new Triangle(2, 2, 2);
16 16
 
17
-        assertEquals(TriangleKind.EQUILATERAL, triangle.getKind());
17
+        assertEquals(true, triangle.isEquilateral());
18 18
     }
19 19
 
20 20
     @Ignore("Remove to run test")
@@ -22,7 +22,7 @@ public class TriangleTest {
22 22
     public void largerEquilateralTrianglesAlsoHaveEqualSides() throws TriangleException {
23 23
         Triangle triangle = new Triangle(10, 10, 10);
24 24
 
25
-        assertEquals(TriangleKind.EQUILATERAL, triangle.getKind());
25
+        assertEquals(true, triangle.isEquilateral());
26 26
     }
27 27
 
28 28
     @Ignore("Remove to run test")
@@ -30,7 +30,7 @@ public class TriangleTest {
30 30
     public void isoscelesTrianglesHaveLastTwoSidesEqual() throws TriangleException {
31 31
         Triangle triangle = new Triangle(3, 4, 4);
32 32
 
33
-        assertEquals(TriangleKind.ISOSCELES, triangle.getKind());
33
+        assertEquals(true, triangle.isIsosceles());
34 34
     }
35 35
 
36 36
     @Ignore("Remove to run test")
@@ -38,7 +38,7 @@ public class TriangleTest {
38 38
     public void isoscelesTrianglesHaveFirstAndLastSidesEqual() throws TriangleException {
39 39
         Triangle triangle = new Triangle(4, 3, 4);
40 40
 
41
-        assertEquals(TriangleKind.ISOSCELES, triangle.getKind());
41
+        assertEquals(true, triangle.isIsosceles());
42 42
     }
43 43
 
44 44
     @Ignore("Remove to run test")
@@ -46,7 +46,7 @@ public class TriangleTest {
46 46
     public void isoscelesTrianglesHaveTwoFirstSidesEqual() throws TriangleException {
47 47
         Triangle triangle = new Triangle(4, 4, 3);
48 48
 
49
-        assertEquals(TriangleKind.ISOSCELES, triangle.getKind());
49
+        assertEquals(true, triangle.isIsosceles());
50 50
     }
51 51
 
52 52
     @Ignore("Remove to run test")
@@ -54,7 +54,7 @@ public class TriangleTest {
54 54
     public void isoscelesTrianglesHaveInFactExactlyTwoSidesEqual() throws TriangleException {
55 55
         Triangle triangle = new Triangle(10, 10, 2);
56 56
 
57
-        assertEquals(TriangleKind.ISOSCELES, triangle.getKind());
57
+        assertEquals(true, triangle.isIsosceles());
58 58
     }
59 59
 
60 60
     @Ignore("Remove to run test")
@@ -62,7 +62,7 @@ public class TriangleTest {
62 62
     public void scaleneTrianglesHaveNoEqualSides() throws TriangleException {
63 63
         Triangle triangle = new Triangle(3, 4, 5);
64 64
 
65
-        assertEquals(TriangleKind.SCALENE, triangle.getKind());
65
+        assertEquals(true, triangle.isScalene());
66 66
     }
67 67
 
68 68
     @Ignore("Remove to run test")
@@ -70,7 +70,7 @@ public class TriangleTest {
70 70
     public void scaleneTrianglesHaveNoEqualSidesAtLargerScaleEither() throws TriangleException {
71 71
         Triangle triangle = new Triangle(10, 11, 12);
72 72
 
73
-        assertEquals(TriangleKind.SCALENE, triangle.getKind());
73
+        assertEquals(true, triangle.isScalene());
74 74
     }
75 75
 
76 76
     @Ignore("Remove to run test")
@@ -78,7 +78,7 @@ public class TriangleTest {
78 78
     public void scaleneTrianglesHaveNoEqualSidesInDescendingOrderEither() throws TriangleException {
79 79
         Triangle triangle = new Triangle(5, 4, 2);
80 80
 
81
-        assertEquals(TriangleKind.SCALENE, triangle.getKind());
81
+        assertEquals(true, triangle.isScalene());
82 82
     }
83 83
 
84 84
     @Ignore("Remove to run test")
@@ -86,7 +86,7 @@ public class TriangleTest {
86 86
     public void verySmallTrianglesAreLegal() throws TriangleException {
87 87
         Triangle triangle = new Triangle(0.4, 0.6, 0.3);
88 88
 
89
-        assertEquals(TriangleKind.SCALENE, triangle.getKind());
89
+        assertEquals(true, triangle.isScalene());
90 90
     }
91 91
 
92 92
     @Ignore("Remove to run test")