From 03ca03fb0ff181353b0d3024d9f9a17c12a5c48b Mon Sep 17 00:00:00 2001 From: ptuor Date: Tue, 13 Oct 2020 12:44:56 +0200 Subject: [PATCH 1/3] ignore PigLatinTranslatorTest --- clean-code-challanges/src/test/java/PigLatinTranslatorTest.java | 2 ++ 1 file changed, 2 insertions(+) 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; From 46d9233da429116b39797259ac8fa30dac1a1856 Mon Sep 17 00:00:00 2001 From: ptuor Date: Tue, 13 Oct 2020 12:47:25 +0200 Subject: [PATCH 2/3] activate AnagramTest --- clean-code-challanges/src/test/java/AnagramTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 60e6d083f4d0f0837aa8fc0c4b5ef16a0e9b7b6f Mon Sep 17 00:00:00 2001 From: ptuor Date: Wed, 14 Oct 2020 20:41:04 +0200 Subject: [PATCH 3/3] return all anagrams identical words are not are not counted as anagram --- .../src/main/java/Anagram.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) 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); } }