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

SeriesTest.java 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import java.util.Arrays;
  2. import java.util.Collections;
  3. import java.util.List;
  4. import org.junit.Test;
  5. import org.junit.Ignore;
  6. import org.junit.Rule;
  7. import org.junit.rules.ExpectedException;
  8. import static org.junit.Assert.assertEquals;
  9. import static org.junit.Assert.assertFalse;
  10. import static org.junit.Assert.assertNotNull;
  11. public class SeriesTest {
  12. @Rule
  13. public ExpectedException expectedException = ExpectedException.none();
  14. @Test
  15. public void hasDigitsShort() {
  16. Series series = new Series("01234");
  17. List<Integer> expected = Arrays.asList(0, 1, 2, 3, 4);
  18. List<Integer> actual = series.getDigits();
  19. assertNotNull(actual);
  20. assertFalse(actual.isEmpty());
  21. assertEquals(expected, actual);
  22. }
  23. @Ignore("Remove to run test")
  24. @Test
  25. public void hasDigitsLong() {
  26. Series series = new Series("0123456789");
  27. List<Integer> expected = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
  28. List<Integer> actual = series.getDigits();
  29. assertNotNull(actual);
  30. assertFalse(actual.isEmpty());
  31. assertEquals(expected, actual);
  32. }
  33. @Ignore("Remove to run test")
  34. @Test
  35. public void keepsTheDigitOrderIfReversed() {
  36. Series series = new Series("9876543210");
  37. List<Integer> expected = Arrays.asList(9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
  38. List<Integer> actual = series.getDigits();
  39. assertNotNull(actual);
  40. assertFalse(actual.isEmpty());
  41. assertEquals(expected, actual);
  42. }
  43. @Ignore("Remove to run test")
  44. @Test
  45. public void keepsArbitraryDigitOrder() {
  46. Series series = new Series("936923468");
  47. List<Integer> expected = Arrays.asList(9, 3, 6, 9, 2, 3, 4, 6, 8);
  48. List<Integer> actual = series.getDigits();
  49. assertNotNull(actual);
  50. assertFalse(actual.isEmpty());
  51. assertEquals(expected, actual);
  52. }
  53. @Ignore("Remove to run test")
  54. @Test
  55. public void canSliceByOne() {
  56. Series series = new Series("01234");
  57. List<List<Integer>> expected = Arrays.asList(
  58. Collections.singletonList(0),
  59. Collections.singletonList(1),
  60. Collections.singletonList(2),
  61. Collections.singletonList(3),
  62. Collections.singletonList(4)
  63. );
  64. List<List<Integer>> actual = series.slices(1);
  65. assertNotNull(actual);
  66. assertFalse(actual.isEmpty());
  67. assertEquals(expected, actual);
  68. }
  69. @Ignore("Remove to run test")
  70. @Test
  71. public void canSliceByTwo() {
  72. Series series = new Series("98273463");
  73. List<List<Integer>> expected = Arrays.asList(
  74. Arrays.asList(9, 8),
  75. Arrays.asList(8, 2),
  76. Arrays.asList(2, 7),
  77. Arrays.asList(7, 3),
  78. Arrays.asList(3, 4),
  79. Arrays.asList(4, 6),
  80. Arrays.asList(6, 3)
  81. );
  82. List<List<Integer>> actual = series.slices(2);
  83. assertNotNull(actual);
  84. assertFalse(actual.isEmpty());
  85. assertEquals(expected, actual);
  86. }
  87. @Ignore("Remove to run test")
  88. @Test
  89. public void canSliceByThree() {
  90. Series series = new Series("01234");
  91. List<List<Integer>> expected = Arrays.asList(
  92. Arrays.asList(0, 1, 2),
  93. Arrays.asList(1, 2, 3),
  94. Arrays.asList(2, 3, 4)
  95. );
  96. List<List<Integer>> actual = series.slices(3);
  97. assertNotNull(actual);
  98. assertFalse(actual.isEmpty());
  99. assertEquals(expected, actual);
  100. }
  101. @Ignore("Remove to run test")
  102. @Test
  103. public void canSliceByThreeWithDuplicateDigits() {
  104. Series series = new Series("31001");
  105. List<List<Integer>> expected = Arrays.asList(
  106. Arrays.asList(3, 1, 0),
  107. Arrays.asList(1, 0, 0),
  108. Arrays.asList(0, 0, 1)
  109. );
  110. List<List<Integer>> actual = series.slices(3);
  111. assertNotNull(actual);
  112. assertFalse(actual.isEmpty());
  113. assertEquals(expected, actual);
  114. }
  115. @Ignore("Remove to run test")
  116. @Test
  117. public void canSliceByFour() {
  118. Series series = new Series("91274");
  119. List<List<Integer>> expected = Arrays.asList(
  120. Arrays.asList(9, 1, 2, 7),
  121. Arrays.asList(1, 2, 7, 4)
  122. );
  123. List<List<Integer>> actual = series.slices(4);
  124. assertNotNull(actual);
  125. assertFalse(actual.isEmpty());
  126. assertEquals(expected, actual);
  127. }
  128. @Ignore("Remove to run test")
  129. @Test
  130. public void canSliceByFive() {
  131. Series series = new Series("81228");
  132. List<List<Integer>> expected = Arrays.asList(
  133. Arrays.asList(8, 1, 2, 2, 8)
  134. );
  135. List<List<Integer>> actual = series.slices(5);
  136. assertNotNull(actual);
  137. assertFalse(actual.isEmpty());
  138. assertEquals(expected, actual);
  139. }
  140. @Ignore("Remove to run test")
  141. @Test
  142. public void throwsAnErrorIfNotEnoughDigitsToSlice() {
  143. expectedException.expect(IllegalArgumentException.class);
  144. new Series("01032987583").slices(12);
  145. }
  146. }