lots of exercises in java... from https://github.com/exercism/java

AnagramTest.java 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import static org.hamcrest.CoreMatchers.*;
  2. import static org.junit.matchers.JUnitMatchers.*;
  3. import static org.junit.Assert.*;
  4. import java.util.*;
  5. import org.junit.*;
  6. public class AnagramTest {
  7. @Test
  8. public void testNoMatches() {
  9. Anagram detector = new Anagram("diaper");
  10. assertTrue(detector.match(Arrays.asList("hello", "world", "zombies", "pants")).isEmpty());
  11. }
  12. @Test
  13. public void testSimpleAnagram() {
  14. Anagram detector = new Anagram("ant");
  15. List<String> anagram = detector.match(Arrays.asList("tan", "stand", "at"));
  16. assertThat(anagram, hasItems("tan"));
  17. }
  18. @Test
  19. public void testDetectMultipleAnagrams() {
  20. Anagram detector = new Anagram("master");
  21. List<String> anagrams = detector.match(Arrays.asList("stream", "pigeon", "maters"));
  22. assertThat(anagrams, hasItems("maters", "stream"));
  23. }
  24. @Test
  25. public void testDoesNotConfuseDifferentDuplicates() {
  26. Anagram detector = new Anagram("galea");
  27. List<String> anagrams = detector.match(Arrays.asList("eagle"));
  28. assertTrue(anagrams.isEmpty());
  29. }
  30. @Test
  31. public void testIdenticalWordIsNotAnagram() {
  32. Anagram detector = new Anagram("corn");
  33. List<String> anagrams = detector.match(Arrays.asList("corn", "dark", "Corn", "rank", "CORN", "cron", "park"));
  34. assertEquals(anagrams, Arrays.asList("cron"));
  35. }
  36. @Test
  37. public void testEliminateAnagramsWithSameChecksum() {
  38. Anagram detector = new Anagram("mass");
  39. assertTrue(detector.match(Arrays.asList("last")).isEmpty());
  40. }
  41. @Test
  42. public void testEliminateAnagramSubsets() {
  43. Anagram detector = new Anagram("good");
  44. assertTrue(detector.match(Arrays.asList("dog", "goody")).isEmpty());
  45. }
  46. @Test
  47. public void testDetectAnagrams() {
  48. Anagram detector = new Anagram("listen");
  49. List<String> anagrams = detector.match(Arrays.asList("enlists", "google", "inlets", "banana"));
  50. assertThat(anagrams, hasItems("inlets"));
  51. }
  52. @Test
  53. public void testMultipleAnagrams() {
  54. Anagram detector = new Anagram("allergy");
  55. List<String> anagrams = detector.match(Arrays.asList("gallery", "ballerina", "regally", "clergy", "largely", "leading"));
  56. assertThat(anagrams, hasItems("gallery", "largely", "regally"));
  57. }
  58. @Test
  59. public void testAnagramsAreCaseInsensitive() {
  60. Anagram detector = new Anagram("Orchestra");
  61. List<String> anagrams = detector.match(Arrays.asList("cashregister", "Carthorse", "radishes"));
  62. assertThat(anagrams, hasItems("Carthorse"));
  63. }
  64. }