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

Merge pull request #405 from FridaTveit/TwelveDaysUseInstanceMethod

twelve-days: use instance methods [Fix #357]
FridaTveit пре 9 година
родитељ
комит
5c8de882d5

+ 16
- 20
exercises/twelve-days/src/example/java/TwelveDays.java Прегледај датотеку

@@ -1,7 +1,7 @@
1 1
 public class TwelveDays {
2
-    private static String[] days = new String[] {"first", "second", "third", "fourth", "fifth", "sixth", "seventh",
3
-        "eighth", "ninth", "tenth", "eleventh", "twelfth"};
4
-    private static String[] gifts = new String[] {
2
+    private static String[] days = new String[]{"first", "second", "third", "fourth", "fifth", "sixth", "seventh",
3
+            "eighth", "ninth", "tenth", "eleventh", "twelfth"};
4
+    private static String[] gifts = new String[]{
5 5
             "a Partridge in a Pear Tree.",
6 6
             "two Turtle Doves, ",
7 7
             "three French Hens, ",
@@ -16,31 +16,27 @@ public class TwelveDays {
16 16
             "twelve Drummers Drumming, "
17 17
     };
18 18
 
19
-    public static String verse(int verseNumber) {
20
-        return constructVerse(verseNumber);
19
+    public String verse(int verseNumber) {
20
+        StringBuilder stringBuilder = new StringBuilder("On the " + days[verseNumber - 1]
21
+                + " day of Christmas my true love gave to me, ");
22
+        for (int i = verseNumber; i > 0; i--) {
23
+            if (verseNumber != 1 && i == 1) stringBuilder.append("and ");
24
+            stringBuilder.append(gifts[i - 1]);
25
+        }
26
+        stringBuilder.append("\n");
27
+        return stringBuilder.toString();
21 28
     }
22 29
 
23
-    public static String verses(int verseNumberStart, int verseNumberEnd) {
24
-        StringBuilder stringBuilder = new StringBuilder(constructVerse(verseNumberStart));
30
+    public String verses(int verseNumberStart, int verseNumberEnd) {
31
+        StringBuilder stringBuilder = new StringBuilder(verse(verseNumberStart));
25 32
         for (int i = verseNumberStart + 1; i <= verseNumberEnd; i++) {
26 33
             stringBuilder.append("\n");
27
-            stringBuilder.append(constructVerse(i));
34
+            stringBuilder.append(verse(i));
28 35
         }
29 36
         return stringBuilder.toString();
30 37
     }
31 38
 
32
-    public static String sing() {
39
+    public String sing() {
33 40
         return verses(1, 12);
34 41
     }
35
-
36
-    private static String constructVerse(int verseNumber) {
37
-        StringBuilder stringBuilder = new StringBuilder("On the " + days[verseNumber - 1]
38
-                + " day of Christmas my true love gave to me, ");
39
-        for (int i = verseNumber; i > 0; i--) {
40
-            if (verseNumber != 1 && i == 1) stringBuilder.append("and ");
41
-            stringBuilder.append(gifts[i - 1]);
42
-        }
43
-        stringBuilder.append("\n");
44
-        return stringBuilder.toString();
45
-    }
46 42
 }

+ 21
- 14
exercises/twelve-days/src/test/java/TwelveDaysTest.java Прегледај датотеку

@@ -1,15 +1,22 @@
1
+import org.junit.Before;
1 2
 import org.junit.Ignore;
2 3
 import org.junit.Test;
3 4
 
4 5
 import static org.junit.Assert.assertEquals;
5 6
 
6 7
 public class TwelveDaysTest {
8
+    private TwelveDays twelveDays;
9
+
10
+    @Before
11
+    public void setup() {
12
+        twelveDays = new TwelveDays();
13
+    }
7 14
 
8 15
     @Test
9 16
     public void testVerseOne() {
10 17
         String expectedVerseOne = "On the first day of Christmas my true love gave to me, " +
11 18
                 "a Partridge in a Pear Tree.\n";
12
-        assertEquals(expectedVerseOne, TwelveDays.verse(1));
19
+        assertEquals(expectedVerseOne, twelveDays.verse(1));
13 20
     }
14 21
 
15 22
     @Ignore
@@ -17,7 +24,7 @@ public class TwelveDaysTest {
17 24
     public void testVerseTwo() {
18 25
         String expectedVerseTwo = "On the second day of Christmas my true love gave to me, two Turtle Doves, " +
19 26
                 "and a Partridge in a Pear Tree.\n";
20
-        assertEquals(expectedVerseTwo, TwelveDays.verse(2));
27
+        assertEquals(expectedVerseTwo, twelveDays.verse(2));
21 28
     }
22 29
 
23 30
     @Ignore
@@ -25,7 +32,7 @@ public class TwelveDaysTest {
25 32
     public void testVerseThree() {
26 33
         String expectedVerseThree = "On the third day of Christmas my true love gave to me, three French Hens, " +
27 34
                 "two Turtle Doves, and a Partridge in a Pear Tree.\n";
28
-        assertEquals(expectedVerseThree, TwelveDays.verse(3));
35
+        assertEquals(expectedVerseThree, twelveDays.verse(3));
29 36
     }
30 37
 
31 38
     @Ignore
@@ -33,7 +40,7 @@ public class TwelveDaysTest {
33 40
     public void testVerseFour() {
34 41
         String expectedVerseFour = "On the fourth day of Christmas my true love gave to me, four Calling Birds, " +
35 42
                 "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n";
36
-        assertEquals(expectedVerseFour, TwelveDays.verse(4));
43
+        assertEquals(expectedVerseFour, twelveDays.verse(4));
37 44
     }
38 45
 
39 46
     @Ignore
@@ -41,7 +48,7 @@ public class TwelveDaysTest {
41 48
     public void testVerseFive() {
42 49
         String expectedVerseFive = "On the fifth day of Christmas my true love gave to me, five Gold Rings, " +
43 50
                 "four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n";
44
-        assertEquals(expectedVerseFive, TwelveDays.verse(5));
51
+        assertEquals(expectedVerseFive, twelveDays.verse(5));
45 52
     }
46 53
 
47 54
     @Ignore
@@ -50,7 +57,7 @@ public class TwelveDaysTest {
50 57
         String expectedVerseSix = "On the sixth day of Christmas my true love gave to me, six Geese-a-Laying, " +
51 58
                 "five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, " +
52 59
                 "and a Partridge in a Pear Tree.\n";
53
-        assertEquals(expectedVerseSix, TwelveDays.verse(6));
60
+        assertEquals(expectedVerseSix, twelveDays.verse(6));
54 61
     }
55 62
 
56 63
     @Ignore
@@ -59,7 +66,7 @@ public class TwelveDaysTest {
59 66
         String expectedVerseSeven = "On the seventh day of Christmas my true love gave to me, " +
60 67
                 "seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, " +
61 68
                 "two Turtle Doves, and a Partridge in a Pear Tree.\n";
62
-        assertEquals(expectedVerseSeven, TwelveDays.verse(7));
69
+        assertEquals(expectedVerseSeven, twelveDays.verse(7));
63 70
     }
64 71
 
65 72
     @Ignore
@@ -68,7 +75,7 @@ public class TwelveDaysTest {
68 75
         String expectedVerseEight = "On the eighth day of Christmas my true love gave to me, eight Maids-a-Milking," +
69 76
                 " seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, " +
70 77
                 "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n";
71
-        assertEquals(expectedVerseEight, TwelveDays.verse(8));
78
+        assertEquals(expectedVerseEight, twelveDays.verse(8));
72 79
     }
73 80
 
74 81
     @Ignore
@@ -77,7 +84,7 @@ public class TwelveDaysTest {
77 84
         String expectedVerseNine = "On the ninth day of Christmas my true love gave to me, nine Ladies Dancing, " +
78 85
                 "eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, " +
79 86
                 "four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n";
80
-        assertEquals(expectedVerseNine, TwelveDays.verse(9));
87
+        assertEquals(expectedVerseNine, twelveDays.verse(9));
81 88
     }
82 89
 
83 90
     @Ignore
@@ -87,7 +94,7 @@ public class TwelveDaysTest {
87 94
                 "nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, " +
88 95
                 "five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, " +
89 96
                 "and a Partridge in a Pear Tree.\n";
90
-        assertEquals(expectedVerseTen, TwelveDays.verse(10));
97
+        assertEquals(expectedVerseTen, twelveDays.verse(10));
91 98
     }
92 99
 
93 100
     @Ignore
@@ -97,7 +104,7 @@ public class TwelveDaysTest {
97 104
                 "eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, " +
98 105
                 "seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, " +
99 106
                 "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n";
100
-        assertEquals(expectedVerseEleven, TwelveDays.verse(11));
107
+        assertEquals(expectedVerseEleven, twelveDays.verse(11));
101 108
     }
102 109
 
103 110
     @Ignore
@@ -107,7 +114,7 @@ public class TwelveDaysTest {
107 114
                 "twelve Drummers Drumming, eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, " +
108 115
                 "eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, " +
109 116
                 "four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n";
110
-        assertEquals(expectedVerseTwelve, TwelveDays.verse(12));
117
+        assertEquals(expectedVerseTwelve, twelveDays.verse(12));
111 118
     }
112 119
 
113 120
     @Ignore
@@ -119,7 +126,7 @@ public class TwelveDaysTest {
119 126
                 "and a Partridge in a Pear Tree.\n\n" +
120 127
                 "On the third day of Christmas my true love gave to me, three French Hens, two Turtle Doves, " +
121 128
                 "and a Partridge in a Pear Tree.\n";
122
-        assertEquals(expectedVerseOneToThree, TwelveDays.verses(1, 3));
129
+        assertEquals(expectedVerseOneToThree, twelveDays.verses(1, 3));
123 130
     }
124 131
 
125 132
     @Ignore
@@ -167,6 +174,6 @@ public class TwelveDaysTest {
167 174
                 "eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, " +
168 175
                 "seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, " +
169 176
                 "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n";
170
-        assertEquals(expectedSong, TwelveDays.sing());
177
+        assertEquals(expectedSong, twelveDays.sing());
171 178
     }
172 179
 }