Selaa lähdekoodia

Merge pull request #951 from jackattack24/matchCanonical

Triangle: Update tests to use canonical data
Stuart Kent 9 vuotta sitten
vanhempi
commit
6416232406

+ 1
- 0
exercises/triangle/.meta/.version Näytä tiedosto

1
+1.0.0

+ 1
- 1
exercises/triangle/.meta/src/reference/java/Triangle.java Näytä tiedosto

25
     }
25
     }
26
 
26
 
27
     boolean isIsosceles() {
27
     boolean isIsosceles() {
28
-        return uniqueSides == 2;
28
+        return (uniqueSides == 2 || isEquilateral());
29
     }
29
     }
30
 
30
 
31
     boolean isScalene() {
31
     boolean isScalene() {

+ 59
- 40
exercises/triangle/src/test/java/TriangleTest.java Näytä tiedosto

4
 import org.junit.rules.ExpectedException;
4
 import org.junit.rules.ExpectedException;
5
 
5
 
6
 import static org.junit.Assert.assertTrue;
6
 import static org.junit.Assert.assertTrue;
7
+import static org.junit.Assert.assertFalse;
7
 
8
 
8
 public class TriangleTest {
9
 public class TriangleTest {
9
 
10
 
19
 
20
 
20
     @Ignore("Remove to run test")
21
     @Ignore("Remove to run test")
21
     @Test
22
     @Test
22
-    public void largerEquilateralTrianglesAlsoHaveEqualSides() throws TriangleException {
23
-        Triangle triangle = new Triangle(10, 10, 10);
23
+    public void trianglesWithOneUnequalSideAreNotEquilateral() throws TriangleException {
24
+        Triangle triangle = new Triangle(2, 3, 2);
24
 
25
 
25
-        assertTrue(triangle.isEquilateral());
26
+        assertFalse(triangle.isEquilateral());
26
     }
27
     }
27
 
28
 
28
     @Ignore("Remove to run test")
29
     @Ignore("Remove to run test")
29
     @Test
30
     @Test
30
-    public void isoscelesTrianglesHaveLastTwoSidesEqual() throws TriangleException {
31
-        Triangle triangle = new Triangle(3, 4, 4);
31
+    public void trianglesWithNoEqualSidesAreNotEquilateral() throws TriangleException {
32
+        Triangle triangle = new Triangle(5, 4, 6);
32
 
33
 
33
-        assertTrue(triangle.isIsosceles());
34
+        assertFalse(triangle.isEquilateral());
35
+    }
36
+    
37
+    @Ignore("Remove to run test")
38
+    @Test
39
+    public void trianglesWithNoSizeAreIllegal() throws TriangleException {
40
+        expectedException.expect(TriangleException.class);
41
+        new Triangle(0, 0, 0);
34
     }
42
     }
35
 
43
 
36
     @Ignore("Remove to run test")
44
     @Ignore("Remove to run test")
37
     @Test
45
     @Test
38
-    public void isoscelesTrianglesHaveFirstAndLastSidesEqual() throws TriangleException {
39
-        Triangle triangle = new Triangle(4, 3, 4);
46
+    public void verySmallTrianglesCanBeEquilateral() throws TriangleException {
47
+        Triangle triangle = new Triangle(0.5, 0.5, 0.5);
48
+
49
+        assertTrue(triangle.isEquilateral());
50
+    }
51
+
52
+    @Ignore("Remove to run test")
53
+    @Test
54
+    public void isoscelesTrianglesHaveLastTwoSidesEqual() throws TriangleException {
55
+        Triangle triangle = new Triangle(3, 4, 4);
40
 
56
 
41
         assertTrue(triangle.isIsosceles());
57
         assertTrue(triangle.isIsosceles());
42
     }
58
     }
48
 
64
 
49
         assertTrue(triangle.isIsosceles());
65
         assertTrue(triangle.isIsosceles());
50
     }
66
     }
51
-
67
+    
52
     @Ignore("Remove to run test")
68
     @Ignore("Remove to run test")
53
     @Test
69
     @Test
54
-    public void isoscelesTrianglesHaveInFactExactlyTwoSidesEqual() throws TriangleException {
55
-        Triangle triangle = new Triangle(10, 10, 2);
70
+    public void isoscelesTrianglesHaveFirstAndLastSidesEqual() throws TriangleException {
71
+        Triangle triangle = new Triangle(4, 3, 4);
56
 
72
 
57
         assertTrue(triangle.isIsosceles());
73
         assertTrue(triangle.isIsosceles());
58
     }
74
     }
59
 
75
 
60
     @Ignore("Remove to run test")
76
     @Ignore("Remove to run test")
61
     @Test
77
     @Test
62
-    public void scaleneTrianglesHaveNoEqualSides() throws TriangleException {
63
-        Triangle triangle = new Triangle(3, 4, 5);
78
+    public void isoscelesTrianglesCanHaveAllSidesEqual() throws TriangleException {
79
+        Triangle triangle = new Triangle(4, 4, 4);
64
 
80
 
65
-        assertTrue(triangle.isScalene());
81
+        assertTrue(triangle.isIsosceles());
66
     }
82
     }
67
 
83
 
68
     @Ignore("Remove to run test")
84
     @Ignore("Remove to run test")
69
     @Test
85
     @Test
70
-    public void scaleneTrianglesHaveNoEqualSidesAtLargerScaleEither() throws TriangleException {
71
-        Triangle triangle = new Triangle(10, 11, 12);
86
+    public void isoscelesTrianglesMustHaveAtLeastTwoEqualSides() throws TriangleException {
87
+        Triangle triangle = new Triangle(2, 3, 4);
72
 
88
 
73
-        assertTrue(triangle.isScalene());
89
+        assertFalse(triangle.isIsosceles());
74
     }
90
     }
75
-
91
+    
76
     @Ignore("Remove to run test")
92
     @Ignore("Remove to run test")
77
     @Test
93
     @Test
78
-    public void scaleneTrianglesHaveNoEqualSidesInDescendingOrderEither() throws TriangleException {
79
-        Triangle triangle = new Triangle(5, 4, 2);
80
-
81
-        assertTrue(triangle.isScalene());
94
+    public void testSidesThatViolateTriangleInequalityAreNotIsoscelesEvenIfTwoAreEqual() throws TriangleException {
95
+        expectedException.expect(TriangleException.class);
96
+        new Triangle(1, 1, 3);
82
     }
97
     }
83
 
98
 
84
     @Ignore("Remove to run test")
99
     @Ignore("Remove to run test")
85
     @Test
100
     @Test
86
-    public void verySmallTrianglesAreLegal() throws TriangleException {
87
-        Triangle triangle = new Triangle(0.4, 0.6, 0.3);
101
+    public void verySmallTrianglesCanBeIsosceles() throws TriangleException {
102
+        Triangle triangle = new Triangle(0.5, 0.4, 0.5);
88
 
103
 
89
-        assertTrue(triangle.isScalene());
104
+        assertTrue(triangle.isIsosceles());
90
     }
105
     }
91
 
106
 
92
     @Ignore("Remove to run test")
107
     @Ignore("Remove to run test")
93
     @Test
108
     @Test
94
-    public void trianglesWithNoSizeAreIllegal() throws TriangleException {
95
-        expectedException.expect(TriangleException.class);
96
-        new Triangle(0, 0, 0);
109
+    public void scaleneTrianglesHaveNoEqualSides() throws TriangleException {
110
+        Triangle triangle = new Triangle(5, 4, 6);
111
+
112
+        assertTrue(triangle.isScalene());
97
     }
113
     }
98
 
114
 
99
     @Ignore("Remove to run test")
115
     @Ignore("Remove to run test")
100
     @Test
116
     @Test
101
-    public void trianglesWithNegativeSidesAreIllegal() throws TriangleException {
102
-        expectedException.expect(TriangleException.class);
103
-        new Triangle(3, 4, -5);
117
+    public void trianglesWithAllSidesEqualAreNotScalene() throws TriangleException {
118
+        Triangle triangle = new Triangle(4, 4, 4);
119
+
120
+        assertFalse(triangle.isScalene());
104
     }
121
     }
105
 
122
 
106
     @Ignore("Remove to run test")
123
     @Ignore("Remove to run test")
107
     @Test
124
     @Test
108
-    public void trianglesViolatingTriangleInequalityAreIllegal() throws TriangleException {
109
-        expectedException.expect(TriangleException.class);
110
-        new Triangle(1, 1, 3);
111
-    }
125
+    public void trianglesWithOneUnequalSideAreNotScalene() throws TriangleException {
126
+        Triangle triangle = new Triangle(4, 4, 3);
112
 
127
 
128
+        assertFalse(triangle.isScalene());
129
+    }
130
+    
113
     @Ignore("Remove to run test")
131
     @Ignore("Remove to run test")
114
     @Test
132
     @Test
115
-    public void trianglesViolatingTriangleInequalityAreIllegal2() throws TriangleException {
133
+    public void testSidesThatViolateTriangleInequalityAreNotScaleneEvenIfTheyAreAllDifferent() throws TriangleException {
116
         expectedException.expect(TriangleException.class);
134
         expectedException.expect(TriangleException.class);
117
-        new Triangle(2, 5, 2);
135
+        new Triangle(7, 3, 2);
118
     }
136
     }
119
 
137
 
120
     @Ignore("Remove to run test")
138
     @Ignore("Remove to run test")
121
     @Test
139
     @Test
122
-    public void trianglesViolatingTriangleInequalityAreIllegal3() throws TriangleException {
123
-        expectedException.expect(TriangleException.class);
124
-        new Triangle(7, 3, 2);
140
+    public void verySmallTrianglesCanBeScalene() throws TriangleException {
141
+        Triangle triangle = new Triangle(0.5, 0.4, 0.6);
142
+
143
+        assertTrue(triangle.isScalene());
125
     }
144
     }
126
 }
145
 }