diff --git a/clean-code-challanges/src/main/java/Anagram.java b/clean-code-challanges/src/main/java/Anagram.java index 9930cd0..bda2dd1 100644 --- a/clean-code-challanges/src/main/java/Anagram.java +++ b/clean-code-challanges/src/main/java/Anagram.java @@ -1,4 +1,6 @@ +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * Given a word and a list of possible anagrams, select the correct sublist. @@ -6,12 +8,31 @@ * Given "listen" and a list of candidates like "enlists" "google" "inlets" "banana" the program should return a list containing "inlets". */ public class Anagram { + private final String templateWord; public Anagram(String word) { - + templateWord = word.toLowerCase(); } public List match(List candidates) { - return null; + List anagrams; + + anagrams = candidates + .stream() + .filter(this::isAnagram) + .collect(Collectors.toList()); + + return anagrams; + } + + + private boolean isAnagram(String word){ + char[] candidate = word.toLowerCase().toCharArray(); + Arrays.sort(candidate); + + char[] template = templateWord.toCharArray(); + Arrays.sort(template); + + return !word.equalsIgnoreCase(templateWord) && Arrays.equals(candidate, template); } } diff --git a/clean-code-challanges/src/test/java/AnagramTest.java b/clean-code-challanges/src/test/java/AnagramTest.java index ad4faba..76d97be 100644 --- a/clean-code-challanges/src/test/java/AnagramTest.java +++ b/clean-code-challanges/src/test/java/AnagramTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; -@Ignore + public class AnagramTest { @Test diff --git a/clean-code-challanges/src/test/java/PigLatinTranslatorTest.java b/clean-code-challanges/src/test/java/PigLatinTranslatorTest.java index c26cdcd..b295c9b 100644 --- a/clean-code-challanges/src/test/java/PigLatinTranslatorTest.java +++ b/clean-code-challanges/src/test/java/PigLatinTranslatorTest.java @@ -1,3 +1,4 @@ +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -8,6 +9,7 @@ import static org.junit.Assert.assertEquals; @RunWith(Parameterized.class) +@Ignore public class PigLatinTranslatorTest { private String englishPhrase;