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

AnagramTest.java 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import org.junit.Ignore;
  2. import org.junit.Test;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import static org.hamcrest.CoreMatchers.*;
  6. import static org.junit.Assert.*;
  7. public class AnagramTest {
  8. @Test
  9. public void testNoMatches() {
  10. Anagram detector = new Anagram("diaper");
  11. assertTrue(detector.match(Arrays.asList("hello", "world", "zombies", "pants")).isEmpty());
  12. }
  13. @Ignore
  14. @Test
  15. public void testDetectSimpleAnagram() {
  16. Anagram detector = new Anagram("ant");
  17. List<String> anagram = detector.match(Arrays.asList("tan", "stand", "at"));
  18. assertThat(anagram, hasItem("tan"));
  19. assertThat(anagram.size(), is(1));
  20. }
  21. @Ignore
  22. @Test
  23. public void testDetectLongerAnagram() {
  24. Anagram detector = new Anagram("listen");
  25. List<String> anagrams = detector.match(Arrays.asList("enlists", "google", "inlets", "banana"));
  26. assertThat(anagrams, hasItem("inlets"));
  27. }
  28. @Ignore
  29. @Test
  30. public void testDetectMultipleAnagrams() {
  31. Anagram detector = new Anagram("master");
  32. List<String> anagrams = detector.match(Arrays.asList("stream", "pigeon", "maters"));
  33. assertThat(anagrams, allOf(hasItem("maters"), hasItem("stream")));
  34. }
  35. @Ignore
  36. @Test
  37. public void testDetectMultipleAnagramsForLongerWord() {
  38. Anagram detector = new Anagram("allergy");
  39. List<String> anagrams = detector.match(Arrays.asList("gallery", "ballerina", "regally", "clergy", "largely", "leading"));
  40. assertThat(anagrams, allOf(hasItem("gallery"), hasItem("largely"), hasItem("regally")));
  41. }
  42. @Ignore
  43. @Test
  44. public void testDoesNotConfuseDifferentDuplicates() {
  45. Anagram detector = new Anagram("galea");
  46. assertTrue(detector.match(Arrays.asList("eagle")).isEmpty());
  47. }
  48. @Ignore
  49. @Test
  50. public void testIdenticalWordIsNotAnagram() {
  51. Anagram detector = new Anagram("corn");
  52. List<String> anagrams = detector.match(Arrays.asList("corn", "dark", "Corn", "rank", "CORN", "cron", "park"));
  53. assertThat(anagrams, hasItem("cron"));
  54. assertThat(anagrams.size(), is(1));
  55. }
  56. @Ignore
  57. @Test
  58. public void testCapitalWordIsNotAnagram() {
  59. Anagram detector = new Anagram("BANANA");
  60. assertTrue(detector.match(Arrays.asList("Banana")).isEmpty());
  61. }
  62. @Ignore
  63. @Test
  64. public void testIdenticalWordRepeatedIsNotAnagram() {
  65. Anagram detector = new Anagram("go");
  66. assertTrue(detector.match(Arrays.asList("go Go GO")).isEmpty());
  67. }
  68. @Ignore
  69. @Test
  70. public void testEliminateAnagramsWithSameChecksum() {
  71. Anagram detector = new Anagram("mass");
  72. assertTrue(detector.match(Arrays.asList("last")).isEmpty());
  73. }
  74. @Ignore
  75. @Test
  76. public void testEliminateAnagramSubsets() {
  77. Anagram detector = new Anagram("good");
  78. assertTrue(detector.match(Arrays.asList("dog", "goody")).isEmpty());
  79. }
  80. @Ignore
  81. @Test
  82. public void testCaseInsensitiveWhenSubjectStartsWithUpperCaseLetter() {
  83. Anagram detector = new Anagram("Orchestra");
  84. List<String> anagrams = detector.match(Arrays.asList("cashregister", "carthorse", "radishes"));
  85. assertThat(anagrams, hasItem("carthorse"));
  86. }
  87. @Ignore
  88. @Test
  89. public void testCaseInsensitiveWhenAnagramStartsWithUpperCaseLetter() {
  90. Anagram detector = new Anagram("orchestra");
  91. List<String> anagrams = detector.match(Arrays.asList("cashregister", "Carthorse", "radishes"));
  92. assertThat(anagrams, hasItem("Carthorse"));
  93. }
  94. @Ignore
  95. @Test
  96. public void testCaseInsensitiveWhenBothAnagramAndSubjectStartWithUpperCaseLetter() {
  97. Anagram detector = new Anagram("Orchestra");
  98. List<String> anagrams = detector.match(Arrays.asList("cashregister", "Carthorse", "radishes"));
  99. assertThat(anagrams, hasItem("Carthorse"));
  100. }
  101. }