Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. package com.tsystems.javaschool.tasks.pyramid;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Collections;
  6. import java.util.List;
  7.  
  8. import org.junit.Assert;
  9. import org.junit.Test;
  10.  
  11. public class PyramidBuilderTest {
  12.  
  13. private PyramidBuilder pyramidBuilder = new PyramidBuilder();
  14.  
  15. @Test
  16. public void buildPyramid0() {
  17. // given
  18. List<Integer> input = Arrays.asList(1, 15, 2);
  19. int[][] expected = new int[][]{
  20. {0, 1, 0},
  21. {2, 0, 15}};
  22.  
  23. // run
  24. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  25.  
  26. // assert
  27. comparePyramids(expected, pyramid);
  28. }
  29.  
  30. @Test
  31. public void buildPyramid() {
  32. // given
  33. List<Integer> input = Arrays.asList(1, 3, 2, 9, 4, 5);
  34. int[][] expected = new int[][]{
  35. {0, 0, 1, 0, 0},
  36. {0, 2, 0, 3, 0},
  37. {4, 0, 5, 0, 9}};
  38.  
  39. // run
  40. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  41.  
  42. // assert
  43. comparePyramids(expected, pyramid);
  44. }
  45.  
  46. @Test
  47. public void buildPyramid3() {
  48. // given
  49. List<Integer> input = Arrays.asList(1, 3, 2, 9, 4, 5, 10, 8, 7, 6);
  50. int[][] expected = new int[][]{
  51. {0, 0, 0, 1, 0, 0, 0},
  52. {0, 0, 2, 0, 3, 0, 0},
  53. {0, 4, 0, 5, 0, 6, 0},
  54. {7, 0, 8, 0, 9, 0, 10}};
  55.  
  56. // run
  57. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  58.  
  59. // assert
  60. comparePyramids(expected, pyramid);
  61. }
  62.  
  63. @Test
  64. public void buildPyramid4() {
  65. // given
  66. List<Integer> input = Arrays.asList(11, 1, 12, 3, 2, 13, 9, 4, 5, 14, 10, 8, 7, 15, 6);
  67. int[][] expected = new int[][]{
  68. {0, 0, 0, 0, 1, 0, 0, 0, 0},
  69. {0, 0, 0, 2, 0, 3, 0, 0, 0},
  70. {0, 0, 4, 0, 5, 0, 6, 0, 0},
  71. {0, 7, 0, 8, 0, 9, 0, 10, 0},
  72. {11, 0, 12, 0, 13, 0, 14, 0, 15}
  73. };
  74.  
  75. // run
  76. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  77.  
  78. // assert
  79. comparePyramids(expected, pyramid);
  80. }
  81.  
  82. @Test
  83. public void buildPyramid5() {
  84. // given
  85. List<Integer> input = Arrays.asList(11, 1, 21, 12, 3, 16, 2, 13, 9, 4, 17, 5, 14, 10, 18, 8, 7, 19, 15, 6, 20);
  86. int[][] expected = new int[][]{
  87. {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
  88. {0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0},
  89. {0, 0, 0, 4, 0, 5, 0, 6, 0, 0, 0},
  90. {0, 0, 7, 0, 8, 0, 9, 0, 10, 0, 0},
  91. {0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0},
  92. {16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21}
  93. };
  94.  
  95. // run
  96. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  97.  
  98. // assert
  99. comparePyramids(expected, pyramid);
  100. }
  101.  
  102.  
  103. @Test(expected = CannotBuildPyramidException.class)
  104. public void buildPyramid1() {
  105. // given
  106. List<Integer> input = Arrays.asList(1, 3, 2, 9, 4, null);
  107.  
  108. // run
  109. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  110.  
  111. // assert (exception)
  112. }
  113.  
  114. @Test(expected = CannotBuildPyramidException.class)
  115. public void buildPyramid2() {
  116. // given
  117. List<Integer> input = Arrays.asList(1, 3, 2, 9, 4, 5, null);
  118.  
  119. // run
  120. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  121.  
  122. // assert (exception)
  123. }
  124.  
  125. @Test(expected = CannotBuildPyramidException.class)
  126. public void buildPyramid6() {
  127. // given
  128. List<Integer> input = new ArrayList<>();
  129. for (int i = 1; i < 256; i++) {
  130. input.add(i);
  131. }
  132.  
  133. // run
  134. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  135.  
  136. // assert (exception)
  137. }
  138.  
  139. @Test(expected = CannotBuildPyramidException.class)
  140. public void buildPyramid7() {
  141. // given
  142. List<Integer> input = new ArrayList<>();
  143. for (int i = 1; i < 10000; i++) {
  144. input.add(i);
  145. }
  146.  
  147. // run
  148. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  149.  
  150. // assert (exception)
  151. }
  152.  
  153. @Test(expected = CannotBuildPyramidException.class)
  154. public void buildPyramid8() {
  155. // given
  156. List<Integer> input = Collections.nCopies(Integer.MAX_VALUE - 1, 0);
  157.  
  158. // run
  159. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  160.  
  161. // assert (exception)
  162. }
  163.  
  164. @Test
  165. public void buildPyramid9() {
  166. // given
  167. List<Integer> input = Arrays.asList(1, 3, 2, 0, 4, 5);
  168. int[][] expected = new int[][]{
  169. {0, 0, 0, 0, 0},
  170. {0, 1, 0, 2, 0},
  171. {3, 0, 4, 0, 5}};
  172.  
  173. // run
  174. int[][] pyramid = pyramidBuilder.buildPyramid(input);
  175.  
  176. // assert
  177. comparePyramids(expected, pyramid);
  178. }
  179.  
  180. private void comparePyramids(int[][] expected, int[][] pyramid) {
  181. Assert.assertEquals("Amount of rows is different.", expected.length, pyramid.length);
  182. for (int i = 0; i < expected.length; i++) {
  183. Assert.assertArrayEquals(expected[i], pyramid[i]);
  184. }
  185. }
  186.  
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement