Quellcode durchsuchen

Add new exercise pangram

Matthew Morgan vor 10 Jahren
Ursprung
Commit
368a9839bb

+ 1
- 0
config.json Datei anzeigen

@@ -7,6 +7,7 @@
7 7
     "etl",
8 8
     "nucleotide-count",
9 9
     "word-count",
10
+    "pangram",
10 11
     "anagram",
11 12
     "hamming",
12 13
     "bob",

+ 11
- 0
pangram/build.gradle Datei anzeigen

@@ -0,0 +1,11 @@
1
+apply plugin: "java"
2
+apply plugin: "eclipse"
3
+apply plugin: "idea"
4
+
5
+repositories {
6
+  mavenCentral()
7
+}
8
+
9
+dependencies {
10
+  testCompile "junit:junit:4.10"
11
+}

+ 12
- 0
pangram/src/example/java/Pangrams.java Datei anzeigen

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

+ 0
- 0
pangram/src/main/java/.keep Datei anzeigen


+ 0
- 0
pangram/src/test/java/.keep Datei anzeigen


+ 33
- 0
pangram/src/test/java/PangramTest.java Datei anzeigen

@@ -0,0 +1,33 @@
1
+import org.junit.Test;
2
+
3
+import static org.junit.Assert.assertTrue;
4
+import static org.junit.Assert.assertFalse;
5
+
6
+public class PangramTest {
7
+
8
+    @Test
9
+    public void emptySentence() {
10
+        assertFalse(Pangrams.isPangram(""));
11
+    }
12
+
13
+    @Test
14
+    public void testLowercasePangram() {
15
+        assertTrue(Pangrams.isPangram("the quick brown fox jumps over the lazy dog"));
16
+    }
17
+
18
+    @Test
19
+    public void missingCharacterX() {
20
+        assertFalse(Pangrams.isPangram("a quick movement of the enemy will jeopardize five gunboats"));
21
+    }
22
+
23
+    @Test
24
+    public void mixedCaseAndPunctuation() {
25
+        assertTrue(Pangrams.isPangram("\"Five quacking Zephyrs jolt my wax bed.\""));
26
+    }
27
+
28
+    @Test
29
+    public void nonAsciiCharacters() {
30
+        assertTrue(Pangrams.isPangram("Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich."));
31
+    }
32
+
33
+}

+ 1
- 0
settings.gradle Datei anzeigen

@@ -13,6 +13,7 @@ include 'luhn'
13 13
 include 'meetup'
14 14
 include 'nucleotide-count'
15 15
 include 'octal'
16
+include 'pangram'
16 17
 include 'pascals-triangle'
17 18
 include 'phone-number'
18 19
 include 'pig-latin'