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

AnagramTest.java 2.6KB

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