Преглед изворни кода

Merge pull request #403 from FridaTveit/SumOfMultiplesUseInstanceMethod

sum-of-multiples: use instance method instead of static method [Fix #355]
Stuart Kent пре 9 година
родитељ
комит
850415253e

+ 17
- 9
exercises/sum-of-multiples/src/example/java/SumOfMultiples.java Прегледај датотеку

1
 public class SumOfMultiples {
1
 public class SumOfMultiples {
2
-    
3
-    
4
-    public static int sum(int number, int[] set) {
5
-        
2
+    private final int sum;
3
+
4
+    public SumOfMultiples(int number, int[] set) {
5
+        sum = calculateSum(number, set);
6
+    }
7
+
8
+    public int getSum() {
9
+        return sum;
10
+    }
11
+
12
+    private int calculateSum(int number, int[] set) {
13
+
6
         int sum = 0;
14
         int sum = 0;
7
         int count = 0;
15
         int count = 0;
8
-        
16
+
9
         for (int i = 1; i < number; i++) {
17
         for (int i = 1; i < number; i++) {
10
-            
18
+
11
             for (int j = 0; j < set.length; j++) {
19
             for (int j = 0; j < set.length; j++) {
12
                 if (i % set[j] == 0) {
20
                 if (i % set[j] == 0) {
13
                     count++;
21
                     count++;
14
                 }
22
                 }
15
             }
23
             }
16
-            
24
+
17
             if (count > 0) {
25
             if (count > 0) {
18
                 sum = sum + i;
26
                 sum = sum + i;
19
                 count = 0;
27
                 count = 0;
20
             }
28
             }
21
         }
29
         }
22
-        
30
+
23
         return sum;
31
         return sum;
24
     }
32
     }
25
-    
33
+
26
 }
34
 }

+ 73
- 88
exercises/sum-of-multiples/src/test/java/SumOfMultiplesTest.java Прегледај датотеку

1
-import static org.junit.Assert.*;
2
-
3
 import org.junit.Ignore;
1
 import org.junit.Ignore;
4
 import org.junit.Test;
2
 import org.junit.Test;
5
 
3
 
4
+import static org.junit.Assert.*;
5
+
6
 public class SumOfMultiplesTest {
6
 public class SumOfMultiplesTest {
7
-    
8
-    
7
+
9
     @Test
8
     @Test
10
     public void testSumOfMultiplesOf3and4UpToOne() {
9
     public void testSumOfMultiplesOf3and4UpToOne() {
11
-        
10
+
12
         int[] set = {
11
         int[] set = {
13
-            3,
14
-            5
12
+                3,
13
+                5
15
         };
14
         };
16
-        int output = SumOfMultiples.sum(1, set);
15
+        int output = new SumOfMultiples(1, set).getSum();
17
         assertEquals(0, output);
16
         assertEquals(0, output);
18
-        
17
+
19
     }
18
     }
20
-    
21
-    
19
+
22
     @Test
20
     @Test
23
     @Ignore
21
     @Ignore
24
     public void testSumOfMultiplesOf3and5UpToFour() {
22
     public void testSumOfMultiplesOf3and5UpToFour() {
25
-        
23
+
26
         int[] set = {
24
         int[] set = {
27
-            3,
28
-            5
25
+                3,
26
+                5
29
         };
27
         };
30
-        int output = SumOfMultiples.sum(4, set);
28
+        int output = new SumOfMultiples(4, set).getSum();
31
         assertEquals(3, output);
29
         assertEquals(3, output);
32
-        
30
+
33
     }
31
     }
34
-    
35
-    
32
+
36
     @Test
33
     @Test
37
     @Ignore
34
     @Ignore
38
     public void testSumOfMultiplesOf3and5UpToTen() {
35
     public void testSumOfMultiplesOf3and5UpToTen() {
39
-        
36
+
40
         int[] set = {
37
         int[] set = {
41
-            3,
42
-            5
38
+                3,
39
+                5
43
         };
40
         };
44
-        int output = SumOfMultiples.sum(10, set);
41
+        int output = new SumOfMultiples(10, set).getSum();
45
         assertEquals(23, output);
42
         assertEquals(23, output);
46
-        
43
+
47
     }
44
     }
48
-    
49
-    
45
+
50
     @Test
46
     @Test
51
     @Ignore
47
     @Ignore
52
     public void testSumOfMultiplesOf3and5UpToOneHundred() {
48
     public void testSumOfMultiplesOf3and5UpToOneHundred() {
53
-        
49
+
54
         int[] set = {
50
         int[] set = {
55
-            3,
56
-            5
51
+                3,
52
+                5
57
         };
53
         };
58
-        int output = SumOfMultiples.sum(100, set);
54
+        int output = new SumOfMultiples(100, set).getSum();
59
         assertEquals(2318, output);
55
         assertEquals(2318, output);
60
-        
56
+
61
     }
57
     }
62
-    
63
-    
58
+
64
     @Test
59
     @Test
65
     @Ignore
60
     @Ignore
66
     public void testSumOfMultiplesOf3and5UpToOneThousand() {
61
     public void testSumOfMultiplesOf3and5UpToOneThousand() {
67
-        
62
+
68
         int[] set = {
63
         int[] set = {
69
-            3,
70
-            5
64
+                3,
65
+                5
71
         };
66
         };
72
-        int output = SumOfMultiples.sum(1000, set);
67
+        int output = new SumOfMultiples(1000, set).getSum();
73
         assertEquals(233168, output);
68
         assertEquals(233168, output);
74
-        
69
+
75
     }
70
     }
76
-    
77
-    
71
+
78
     @Test
72
     @Test
79
     @Ignore
73
     @Ignore
80
     public void testSumOfMultiplesOf7and13and17UpToTwenty() {
74
     public void testSumOfMultiplesOf7and13and17UpToTwenty() {
81
-        
75
+
82
         int[] set = {
76
         int[] set = {
83
-            7,
84
-            13,
85
-            17
77
+                7,
78
+                13,
79
+                17
86
         };
80
         };
87
-        int output = SumOfMultiples.sum(20, set);
81
+        int output = new SumOfMultiples(20, set).getSum();
88
         assertEquals(51, output);
82
         assertEquals(51, output);
89
-        
83
+
90
     }
84
     }
91
-    
92
-    
85
+
93
     @Test
86
     @Test
94
     @Ignore
87
     @Ignore
95
     public void testSumOfMultiplesOf4and6UpToFifteen() {
88
     public void testSumOfMultiplesOf4and6UpToFifteen() {
96
-        
89
+
97
         int[] set = {
90
         int[] set = {
98
-            4,
99
-            6
91
+                4,
92
+                6
100
         };
93
         };
101
-        int output = SumOfMultiples.sum(15, set);
94
+        int output = new SumOfMultiples(15, set).getSum();
102
         assertEquals(30, output);
95
         assertEquals(30, output);
103
-        
96
+
104
     }
97
     }
105
-    
106
-    
98
+
107
     @Test
99
     @Test
108
     @Ignore
100
     @Ignore
109
     public void testSumOfMultiplesOf5and6and8UpToOneHundredFifty() {
101
     public void testSumOfMultiplesOf5and6and8UpToOneHundredFifty() {
110
-        
102
+
111
         int[] set = {
103
         int[] set = {
112
-            5,
113
-            6,
114
-            8
104
+                5,
105
+                6,
106
+                8
115
         };
107
         };
116
-        int output = SumOfMultiples.sum(150, set);
108
+        int output = new SumOfMultiples(150, set).getSum();
117
         assertEquals(4419, output);
109
         assertEquals(4419, output);
118
-        
110
+
119
     }
111
     }
120
-    
121
-    
112
+
122
     @Test
113
     @Test
123
     @Ignore
114
     @Ignore
124
     public void testSumOfMultiplesOf5and25UpToTwoHundredSeventyFive() {
115
     public void testSumOfMultiplesOf5and25UpToTwoHundredSeventyFive() {
125
-        
116
+
126
         int[] set = {
117
         int[] set = {
127
-            5,
128
-            25
118
+                5,
119
+                25
129
         };
120
         };
130
-        int output = SumOfMultiples.sum(51, set);
121
+        int output = new SumOfMultiples(51, set).getSum();
131
         assertEquals(275, output);
122
         assertEquals(275, output);
132
-        
123
+
133
     }
124
     }
134
-    
135
-    
125
+
136
     @Test
126
     @Test
137
     @Ignore
127
     @Ignore
138
     public void testSumOfMultiplesOf43and47UpToTenThousand() {
128
     public void testSumOfMultiplesOf43and47UpToTenThousand() {
139
-        
129
+
140
         int[] set = {
130
         int[] set = {
141
-            43,
142
-            47
131
+                43,
132
+                47
143
         };
133
         };
144
-        int output = SumOfMultiples.sum(10000, set);
134
+        int output = new SumOfMultiples(10000, set).getSum();
145
         assertEquals(2203160, output);
135
         assertEquals(2203160, output);
146
-        
136
+
147
     }
137
     }
148
-    
149
-    
138
+
150
     @Test
139
     @Test
151
     @Ignore
140
     @Ignore
152
     public void testSumOfMultiplesOfOneUpToOneHundred() {
141
     public void testSumOfMultiplesOfOneUpToOneHundred() {
153
-        
142
+
154
         int[] set = {
143
         int[] set = {
155
-            1
144
+                1
156
         };
145
         };
157
-        int output = SumOfMultiples.sum(100, set);
146
+        int output = new SumOfMultiples(100, set).getSum();
158
         assertEquals(4950, output);
147
         assertEquals(4950, output);
159
-        
148
+
160
     }
149
     }
161
-    
162
-    
150
+
163
     @Test
151
     @Test
164
     @Ignore
152
     @Ignore
165
     public void testSumOfMultiplesOfNoneUpToTenThousand() {
153
     public void testSumOfMultiplesOfNoneUpToTenThousand() {
166
-        
154
+
167
         int[] set = {};
155
         int[] set = {};
168
-        int output = SumOfMultiples.sum(10000, set);
156
+        int output = new SumOfMultiples(10000, set).getSum();
169
         assertEquals(0, output);
157
         assertEquals(0, output);
170
-        
158
+
171
     }
159
     }
172
-    
173
-    
174
-    
175
 }
160
 }