Skip to content

Commit b15b6e2

Browse files
committed
Added RB tree tests
1 parent dcfa1f2 commit b15b6e2

File tree

2 files changed

+51
-5
lines changed

2 files changed

+51
-5
lines changed

RedBlackTree/RedBlackTree.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ private void insertionRelabel(Node node) {
210210
}
211211

212212
}
213-
display();
213+
// display();
214214
insertionRelabel(grandParent);
215215

216216
}

RedBlackTree/tests/RedBlackTreeTest.java

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void testNullInsertion() {
2626
public void testTreeContainsNull() {
2727
assertFalse(tree.contains(null));
2828
}
29-
/*
29+
3030
@Test
3131
public void testLeftLeftRotation() {
3232

@@ -118,11 +118,12 @@ public void testRightRightRotation() {
118118
assertCorrectParentLinks(tree.root, null);
119119

120120
}
121-
*/
122121

123122
@Test
124-
public void testLeftRedUncleCase() {
123+
public void testLeftUncleCase() {
125124

125+
/* Red left uncle case. */
126+
126127
tree.insert(1);
127128
tree.insert(2);
128129
tree.insert(3);
@@ -141,7 +142,9 @@ public void testLeftRedUncleCase() {
141142
assertNull(tree.root.right.left);
142143
assertNullChildren(tree.root.left, tree.root.right.right);
143144
assertCorrectParentLinks(tree.root, null);
144-
// System.out.println("====================================");
145+
146+
/* Black left uncle case. */
147+
145148
tree.insert(5);
146149

147150
assertEquals(2, tree.root.value.intValue());
@@ -159,6 +162,49 @@ public void testLeftRedUncleCase() {
159162

160163
}
161164

165+
@Test
166+
public void testRightUncleCase() {
167+
168+
/* Red right uncle case. */
169+
170+
tree.insert(2);
171+
tree.insert(3);
172+
tree.insert(4);
173+
tree.insert(1);
174+
175+
assertEquals(3, tree.root.value.intValue());
176+
assertEquals(2, tree.root.left.value.intValue());
177+
assertEquals(4, tree.root.right.value.intValue());
178+
assertEquals(1, tree.root.left.left.value.intValue());
179+
180+
assertEquals(RedBlackTree.BLACK, tree.root.color);
181+
assertEquals(RedBlackTree.BLACK, tree.root.left.color);
182+
assertEquals(RedBlackTree.BLACK, tree.root.right.color);
183+
assertEquals(RedBlackTree.RED, tree.root.left.left.color);
184+
185+
assertNull(tree.root.left.right);
186+
assertNullChildren(tree.root.right, tree.root.left.left);
187+
assertCorrectParentLinks(tree.root, null);
188+
189+
/* Black right uncle case. */
190+
191+
tree.insert(0);
192+
193+
assertEquals(3, tree.root.value.intValue());
194+
assertEquals(1, tree.root.left.value.intValue());
195+
assertEquals(4, tree.root.right.value.intValue());
196+
assertEquals(0, tree.root.left.left.value.intValue());
197+
assertEquals(2, tree.root.left.right.value.intValue());
198+
199+
assertEquals(RedBlackTree.BLACK, tree.root.color);
200+
assertEquals(RedBlackTree.BLACK, tree.root.left.color);
201+
assertEquals(RedBlackTree.BLACK, tree.root.right.color);
202+
assertEquals(RedBlackTree.RED, tree.root.left.left.color);
203+
assertEquals(RedBlackTree.RED, tree.root.left.right.color);
204+
assertCorrectParentLinks(tree.root, null);
205+
206+
}
207+
162208
static void assertNullChildren(RedBlackTree.Node... nodes) {
163209
for (RedBlackTree.Node node : nodes) {
164210
assertNull(node.left);

0 commit comments

Comments
 (0)