import org.junit.Ignore; import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; public class AnagramTest { @Test public void testNoMatches() { Anagram detector = new Anagram("diaper"); assertTrue(detector.match(Arrays.asList("hello", "world", "zombies", "pants")).isEmpty()); } @Ignore @Test public void testSimpleAnagram() { Anagram detector = new Anagram("ant"); List anagram = detector.match(Arrays.asList("tan", "stand", "at")); assertThat(anagram, hasItem("tan")); assertThat(anagram.size(), is(1)); } @Ignore @Test public void testDetectMultipleAnagrams() { Anagram detector = new Anagram("master"); List anagrams = detector.match(Arrays.asList("stream", "pigeon", "maters")); assertThat(anagrams, allOf(hasItem("maters"), hasItem("stream"))); } @Ignore @Test public void testDoesNotConfuseDifferentDuplicates() { Anagram detector = new Anagram("galea"); List anagrams = detector.match(Arrays.asList("eagle")); assertTrue(anagrams.isEmpty()); } @Ignore @Test public void testIdenticalWordIsNotAnagram() { Anagram detector = new Anagram("corn"); List anagrams = detector.match(Arrays.asList("corn", "dark", "Corn", "rank", "CORN", "cron", "park")); assertThat(anagrams, hasItem("cron")); assertThat(anagrams.size(), is(1)); } @Ignore @Test public void testEliminateAnagramsWithSameChecksum() { Anagram detector = new Anagram("mass"); assertTrue(detector.match(Arrays.asList("last")).isEmpty()); } @Ignore @Test public void testEliminateAnagramSubsets() { Anagram detector = new Anagram("good"); assertTrue(detector.match(Arrays.asList("dog", "goody")).isEmpty()); } @Ignore @Test public void testDetectAnagrams() { Anagram detector = new Anagram("listen"); List anagrams = detector.match(Arrays.asList("enlists", "google", "inlets", "banana")); assertThat(anagrams, hasItem("inlets")); } @Ignore @Test public void testMultipleAnagrams() { Anagram detector = new Anagram("allergy"); List anagrams = detector.match(Arrays.asList("gallery", "ballerina", "regally", "clergy", "largely", "leading")); assertThat(anagrams, allOf(hasItem("gallery"), hasItem("largely"), hasItem("regally"))); } @Ignore @Test public void testAnagramsAreCaseInsensitive() { Anagram detector = new Anagram("Orchestra"); List anagrams = detector.match(Arrays.asList("cashregister", "Carthorse", "radishes")); assertThat(anagrams, hasItem("Carthorse")); } }