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

SeriesTest.java 4.7KB

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