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

StrainTest.java 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import org.junit.Assert;
  2. import org.junit.Test;
  3. import java.util.Arrays;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6. public class StrainTest {
  7. @Test
  8. public void emptyKeep() {
  9. List<Integer> input = new LinkedList<>();
  10. List<Integer> expectedOutput = new LinkedList<>();
  11. Assert.assertEquals(expectedOutput, Strain.keep(input, x -> x < 10));
  12. }
  13. @Test
  14. public void keepEverything() {
  15. List<Integer> input = Arrays.asList(1, 2, 3);
  16. List<Integer> expectedOutput = Arrays.asList(1, 2, 3);
  17. Assert.assertEquals(expectedOutput, Strain.keep(input, x -> x < 10));
  18. }
  19. @Test
  20. public void keepFirstAndLast() {
  21. List<Integer> input = Arrays.asList(1, 2, 3);
  22. List<Integer> expectedOutput = Arrays.asList(1, 3);
  23. Assert.assertEquals(expectedOutput, Strain.keep(input, x -> x % 2 != 0));
  24. }
  25. @Test
  26. public void keepNeitherFirstNorLast() {
  27. List<Integer> input = Arrays.asList(1, 2, 3, 4, 5);
  28. List<Integer> expectedOutput = Arrays.asList(2, 4);
  29. Assert.assertEquals(expectedOutput, Strain.keep(input, x -> x % 2 == 0));
  30. }
  31. @Test
  32. public void KeepStrings() {
  33. List<String> words = Arrays
  34. .asList("apple zebra banana zombies cherimoya zelot".split(" "));
  35. List<String> expectedOutput = Arrays.asList("zebra", "zombies", "zelot");
  36. Assert.assertEquals(expectedOutput,
  37. Strain.keep(words, x -> x.startsWith("z")));
  38. }
  39. @Test
  40. public void KeepArrays() {
  41. List<List<Integer>> actual = Arrays.asList(
  42. Arrays.asList(1, 2, 3),
  43. Arrays.asList(5, 5, 5),
  44. Arrays.asList(5, 1, 2),
  45. Arrays.asList(2, 1, 2),
  46. Arrays.asList(1, 5, 2),
  47. Arrays.asList(2, 2, 1),
  48. Arrays.asList(1, 2, 5));
  49. List<List<Integer>> expectedOutput = Arrays.asList(
  50. Arrays.asList(5, 5, 5),
  51. Arrays.asList(5, 1, 2),
  52. Arrays.asList(1, 5, 2),
  53. Arrays.asList(1, 2, 5));
  54. Assert.assertEquals(expectedOutput,
  55. Strain.keep(actual, col -> col.contains(5)));
  56. }
  57. @Test
  58. public void emptyDiscard() {
  59. List<Integer> input = new LinkedList<>();
  60. List<Integer> expectedOutput = new LinkedList<>();
  61. Assert.assertEquals(expectedOutput, Strain.discard(input, x -> x < 10));
  62. }
  63. @Test
  64. public void discardNothing() {
  65. List<Integer> input = Arrays.asList(1, 2, 3);
  66. List<Integer> expectedOutput = Arrays.asList(1, 2, 3);
  67. Assert.assertEquals(expectedOutput, Strain.discard(input, x -> x > 10));
  68. }
  69. @Test
  70. public void discardFirstAndLast() {
  71. List<Integer> input = Arrays.asList(1, 2, 3);
  72. List<Integer> expectedOutput = Arrays.asList(2);
  73. Assert.assertEquals(expectedOutput, Strain.discard(input, x -> x % 2 != 0));
  74. }
  75. @Test
  76. public void discardNeitherFirstNorLast() {
  77. List<Integer> input = Arrays.asList(1, 2, 3, 4, 5);
  78. List<Integer> expectedOutput = Arrays.asList(1, 3, 5);
  79. Assert.assertEquals(expectedOutput, Strain.discard(input, x -> x % 2 == 0));
  80. }
  81. @Test
  82. public void discardStrings() {
  83. List<String> words = Arrays
  84. .asList("apple zebra banana zombies cherimoya zelot".split(" "));
  85. List<String> expectedOutput = Arrays.asList("apple", "banana", "cherimoya");
  86. Assert.assertEquals(expectedOutput,
  87. Strain.discard(words, x -> x.startsWith("z")));
  88. }
  89. @Test
  90. public void discardArrays() {
  91. List<List<Integer>> actual = Arrays.asList(
  92. Arrays.asList(1, 2, 3),
  93. Arrays.asList(5, 5, 5),
  94. Arrays.asList(5, 1, 2),
  95. Arrays.asList(2, 1, 2),
  96. Arrays.asList(1, 5, 2),
  97. Arrays.asList(2, 2, 1),
  98. Arrays.asList(1, 2, 5));
  99. List<List<Integer>> expectedOutput = Arrays.asList(
  100. Arrays.asList(1, 2, 3),
  101. Arrays.asList(2, 1, 2),
  102. Arrays.asList(2, 2, 1));
  103. Assert.assertEquals(expectedOutput,
  104. Strain.discard(actual, col -> col.contains(5)));
  105. }
  106. }