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

BSTTest.java 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. import java.util.Arrays;
  2. import java.util.Collections;
  3. import java.util.List;
  4. import static org.junit.Assert.assertEquals;
  5. import static org.junit.Assert.assertNotNull;
  6. import org.junit.Ignore;
  7. import org.junit.Test;
  8. public class BSTTest {
  9. @Test
  10. public void dataIsRetained() {
  11. BST<Integer> sut = new BST();
  12. final int actual = 4;
  13. sut.insert(actual);
  14. final BST.Node<Integer> root = sut.getRoot();
  15. assertNotNull(root);
  16. final int expected = root.getData();
  17. assertEquals(expected, actual);
  18. }
  19. @Test
  20. @Ignore
  21. public void insertsLess() {
  22. BST<Integer> sut = new BST();
  23. final int expectedRoot = 4;
  24. final int expectedLeft = 2;
  25. sut.insert(expectedRoot);
  26. sut.insert(expectedLeft);
  27. final BST.Node<Integer> root = sut.getRoot();
  28. assertNotNull(root);
  29. final BST.Node<Integer> left = root.getLeft();
  30. assertNotNull(left);
  31. final int actualRoot = root.getData();
  32. final int actualLeft = left.getData();
  33. assertEquals(expectedLeft, actualLeft);
  34. assertEquals(expectedRoot, actualRoot);
  35. }
  36. @Test
  37. @Ignore
  38. public void insertsSame() {
  39. BST<Integer> sut = new BST();
  40. final int expectedRoot = 4;
  41. final int expectedLeft = 4;
  42. sut.insert(expectedRoot);
  43. sut.insert(expectedLeft);
  44. final BST.Node<Integer> root = sut.getRoot();
  45. assertNotNull(root);
  46. final BST.Node<Integer> left = root.getLeft();
  47. assertNotNull(left);
  48. final int actualRoot = root.getData();
  49. final int actualLeft = left.getData();
  50. assertEquals(expectedLeft, actualLeft);
  51. assertEquals(expectedRoot, actualRoot);
  52. }
  53. @Test
  54. @Ignore
  55. public void insertsRight() {
  56. BST<Integer> sut = new BST();
  57. final int expectedRoot = 4;
  58. final int expectedRight = 5;
  59. sut.insert(expectedRoot);
  60. sut.insert(expectedRight);
  61. final BST.Node<Integer> root = sut.getRoot();
  62. assertNotNull(root);
  63. final BST.Node<Integer> right = root.getRight();
  64. assertNotNull(right);
  65. final int actualRoot = root.getData();
  66. final int actualRight = right.getData();
  67. assertEquals(expectedRight, actualRight);
  68. assertEquals(expectedRoot, actualRoot);
  69. }
  70. @Test
  71. @Ignore
  72. public void createsComplexTree() {
  73. BST<Integer> sut = new BST<>();
  74. List<Integer> expected = Collections.unmodifiableList(
  75. Arrays.asList(4, 2, 6, 1, 3, 5, 7)
  76. );
  77. List<Integer> treeData = Collections.unmodifiableList(
  78. Arrays.asList(4, 2, 6, 1, 3, 7, 5)
  79. );
  80. treeData.forEach(sut::insert);
  81. List<Integer> actual = sut.getAsLevelOrderList();
  82. assertEquals(expected, actual);
  83. }
  84. @Test
  85. @Ignore
  86. public void sortsSingleElement() {
  87. BST<Integer> sut = new BST<>();
  88. List<Integer> expected = Collections.unmodifiableList(
  89. Collections.singletonList(4)
  90. );
  91. sut.insert(4);
  92. List<Integer> actual = sut.getAsSortedList();
  93. assertEquals(expected, actual);
  94. }
  95. @Test
  96. @Ignore
  97. public void sortsCollectionOfTwoIfSecondInsertedIsSmallerThanFirst() {
  98. BST<Integer> sut = new BST<>();
  99. List<Integer> expected = Collections.unmodifiableList(
  100. Arrays.asList(2, 4)
  101. );
  102. sut.insert(4);
  103. sut.insert(2);
  104. List<Integer> actual = sut.getAsSortedList();
  105. assertEquals(expected, actual);
  106. }
  107. @Test
  108. @Ignore
  109. public void sortsCollectionOfTwoIfSecondInsertedIsBiggerThanFirst() {
  110. BST<Integer> sut = new BST<>();
  111. List<Integer> expected = Collections.unmodifiableList(
  112. Arrays.asList(4, 5)
  113. );
  114. sut.insert(4);
  115. sut.insert(5);
  116. List<Integer> actual = sut.getAsSortedList();
  117. assertEquals(expected, actual);
  118. }
  119. @Test
  120. @Ignore
  121. public void iteratesOverComplexTree() {
  122. BST<Integer> sut = new BST<>();
  123. List<Integer> expected = Collections.unmodifiableList(
  124. Arrays.asList(1, 2, 3, 4, 5, 6, 7)
  125. );
  126. List<Integer> treeData = Collections.unmodifiableList(
  127. Arrays.asList(4, 2, 1, 3, 6, 7, 5)
  128. );
  129. treeData.forEach(sut::insert);
  130. List<Integer> actual = sut.getAsSortedList();
  131. assertEquals(expected, actual);
  132. }
  133. }