瀏覽代碼

pangram: add starter implementation and make object-based (#344)

Pangrams is currently the third exercise in the new ordering therefore
it should have a starter implementation.

* make object-orientated
* add starter implementation
* rename class to PangramChecker
FridaTveit 9 年之前
父節點
當前提交
99f4a1d30b

exercises/pangram/src/example/java/Pangrams.java → exercises/pangram/src/example/java/PangramChecker.java 查看文件

@@ -1,11 +1,13 @@
1 1
 import java.util.Arrays;
2 2
 import java.util.stream.Collectors;
3 3
 
4
-public class Pangrams {
4
+public class PangramChecker {
5 5
     private static final int alphaLength = 26;
6 6
 
7
-    public static boolean isPangram(String input){
8
-        return Arrays.stream(input.replaceAll("[^a-zA-Z]","").toLowerCase().split(""))
7
+    public boolean isPangram(String input) {
8
+        return Arrays.stream(input.replaceAll("[^a-zA-Z]", "")
9
+                .toLowerCase()
10
+                .split(""))
9 11
                 .collect(Collectors.toSet())
10 12
                 .size() == alphaLength;
11 13
     }

+ 0
- 0
exercises/pangram/src/main/java/.keep 查看文件


+ 6
- 0
exercises/pangram/src/main/java/PangramChecker.java 查看文件

@@ -0,0 +1,6 @@
1
+public class PangramChecker {
2
+
3
+    public boolean isPangram(String input) {
4
+        throw new UnsupportedOperationException("Method has not been implemented yet.");
5
+    }
6
+}

+ 82
- 0
exercises/pangram/src/test/java/PangramCheckerTest.java 查看文件

@@ -0,0 +1,82 @@
1
+import org.junit.Before;
2
+import org.junit.Ignore;
3
+import org.junit.Test;
4
+
5
+import static org.junit.Assert.assertFalse;
6
+import static org.junit.Assert.assertTrue;
7
+
8
+public class PangramCheckerTest {
9
+    private PangramChecker pangramChecker;
10
+
11
+    @Before
12
+    public void setup() {
13
+        pangramChecker = new PangramChecker();
14
+    }
15
+
16
+
17
+    @Test
18
+    public void emptySentenceIsNotPangram() {
19
+        assertFalse(pangramChecker.isPangram(""));
20
+    }
21
+
22
+    @Ignore
23
+    @Test
24
+    public void pangramWithOnlyLowerCaseLettersIsRecognizedAsPangram() {
25
+        assertTrue(pangramChecker.isPangram("the quick brown fox jumps over the lazy dog"));
26
+    }
27
+
28
+    @Ignore
29
+    @Test
30
+    public void phraseMissingCharacterXIsNotPangram() {
31
+        assertFalse(pangramChecker.isPangram("a quick movement of the enemy will jeopardize five gunboats"));
32
+    }
33
+
34
+    @Ignore
35
+    @Test
36
+    public void anotherPhraseMissingCharacterXIsNotPangram() {
37
+        assertFalse(pangramChecker.isPangram("the quick brown fish jumps over the lazy dog"));
38
+    }
39
+
40
+    @Ignore
41
+    @Test
42
+    public void pangramWithUnderscoresIsRecognizedAsPangram() {
43
+        assertTrue(pangramChecker.isPangram("\"the_quick_brown_fox_jumps_over_the_lazy_dog\""));
44
+    }
45
+
46
+    @Ignore
47
+    @Test
48
+    public void pangramWithNumbersIsRecognizedAsPangram() {
49
+        assertTrue(pangramChecker.isPangram("\"the 1 quick brown fox jumps over the 2 lazy dogs\""));
50
+    }
51
+
52
+    @Ignore
53
+    @Test
54
+    public void phraseWithMissingLettersReplacedByNumbersIsNotPangram() {
55
+        assertFalse(pangramChecker.isPangram("\"7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog\""));
56
+    }
57
+
58
+    @Ignore
59
+    @Test
60
+    public void pangramWithMixedCaseAndPunctuationIsRecognizedAsPangram() {
61
+        assertTrue(pangramChecker.isPangram("\"Five quacking Zephyrs jolt my wax bed.\""));
62
+    }
63
+
64
+    @Ignore
65
+    @Test
66
+    public void pangramWithNonAsciiCharactersIsRecognizedAsPangram() {
67
+        assertTrue(pangramChecker.isPangram("Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich."));
68
+    }
69
+
70
+
71
+    @Ignore
72
+    @Test
73
+    public void panagramInAlphabetOtherThanAsciiIsNotRecognizedAsPangram() {
74
+        assertFalse(pangramChecker.isPangram("Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства."));
75
+    }
76
+
77
+    @Ignore
78
+    @Test
79
+    public void upperAndLowerCaseVersionsOfTheSameCharacterShouldNotBeCountedSeparately() {
80
+        assertFalse(pangramChecker.isPangram("the quick brown fox jumped over the lazy FOX"));
81
+    }
82
+}

+ 0
- 75
exercises/pangram/src/test/java/PangramsTest.java 查看文件

@@ -1,75 +0,0 @@
1
-import org.junit.Test;
2
-import org.junit.Ignore;
3
-
4
-import static org.junit.Assert.assertTrue;
5
-import static org.junit.Assert.assertFalse;
6
-
7
-public class PangramsTest {
8
-
9
-
10
-    @Test
11
-    public void emptySentenceIsNotPangram() {
12
-        assertFalse(Pangrams.isPangram(""));
13
-    }
14
-
15
-    @Ignore
16
-    @Test
17
-    public void pangramWithOnlyLowerCaseLettersIsRecognizedAsPangram() {
18
-        assertTrue(Pangrams.isPangram("the quick brown fox jumps over the lazy dog"));
19
-    }
20
-
21
-    @Ignore
22
-    @Test
23
-    public void phraseMissingCharacterXIsNotPangram() {
24
-        assertFalse(Pangrams.isPangram("a quick movement of the enemy will jeopardize five gunboats"));
25
-    }
26
-
27
-    @Ignore
28
-    @Test
29
-    public void anotherPhraseMissingCharacterXIsNotPangram() {
30
-        assertFalse(Pangrams.isPangram("the quick brown fish jumps over the lazy dog"));
31
-    }
32
-
33
-    @Ignore
34
-    @Test
35
-    public void pangramWithUnderscoresIsRecognizedAsPangram() {
36
-        assertTrue(Pangrams.isPangram("\"the_quick_brown_fox_jumps_over_the_lazy_dog\""));
37
-    }
38
-
39
-    @Ignore
40
-    @Test
41
-    public void pangramWithNumbersIsRecognizedAsPangram() {
42
-        assertTrue(Pangrams.isPangram("\"the 1 quick brown fox jumps over the 2 lazy dogs\""));
43
-    }
44
-
45
-    @Ignore
46
-    @Test
47
-    public void phraseWithMissingLettersReplacedByNumbersIsNotPangram() {
48
-        assertFalse(Pangrams.isPangram("\"7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog\""));
49
-    }
50
-
51
-    @Ignore
52
-    @Test
53
-    public void pangramWithMixedCaseAndPunctuationIsRecognizedAsPangram() {
54
-        assertTrue(Pangrams.isPangram("\"Five quacking Zephyrs jolt my wax bed.\""));
55
-    }
56
-
57
-    @Ignore
58
-    @Test
59
-    public void pangramWithNonAsciiCharactersIsRecognizedAsPangram() {
60
-        assertTrue(Pangrams.isPangram("Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich."));
61
-    }
62
-
63
-
64
-    @Ignore
65
-    @Test
66
-    public void panagramInAlphabetOtherThanAsciiIsNotRecognizedAsPangram() {
67
-        assertFalse(Pangrams.isPangram("Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства."));
68
-    }
69
-
70
-    @Ignore
71
-    @Test
72
-    public void upperAndLowerCaseVersionsOfTheSameCharacterShouldNotBeCountedSeparately() {
73
-        assertFalse(Pangrams.isPangram("the quick brown fox jumped over the lazy FOX"));
74
-    }
75
-}