* Remove data structures from core-java * Add data-structures * Update README with links to articles * Add parent module reference
120 lines
2.6 KiB
Java
120 lines
2.6 KiB
Java
package com.baeldung.tree;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertFalse;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import org.junit.Test;
|
|
|
|
public class BinaryTreeTest {
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenAddingElements_ThenTreeNotEmpty() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
assertTrue(!bt.isEmpty());
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenAddingElements_ThenTreeContainsThoseElements() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
assertTrue(bt.containsNode(6));
|
|
assertTrue(bt.containsNode(4));
|
|
|
|
assertFalse(bt.containsNode(1));
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenAddingExistingElement_ThenElementIsNotAdded() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
int initialSize = bt.getSize();
|
|
|
|
assertTrue(bt.containsNode(3));
|
|
bt.add(3);
|
|
assertEquals(initialSize, bt.getSize());
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenLookingForNonExistingElement_ThenReturnsFalse() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
assertFalse(bt.containsNode(99));
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenDeletingElements_ThenTreeDoesNotContainThoseElements() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
assertTrue(bt.containsNode(9));
|
|
bt.delete(9);
|
|
assertFalse(bt.containsNode(9));
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenDeletingNonExistingElement_ThenTreeDoesNotDelete() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
int initialSize = bt.getSize();
|
|
|
|
assertFalse(bt.containsNode(99));
|
|
bt.delete(99);
|
|
assertFalse(bt.containsNode(99));
|
|
assertEquals(initialSize, bt.getSize());
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenTraversingInOrder_ThenPrintValues() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
bt.traverseInOrder(bt.root);
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenTraversingPreOrder_ThenPrintValues() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
bt.traversePreOrder(bt.root);
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenTraversingPostOrder_ThenPrintValues() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
bt.traversePostOrder(bt.root);
|
|
}
|
|
|
|
@Test
|
|
public void givenABinaryTree_WhenTraversingLevelOrder_ThenPrintValues() {
|
|
|
|
BinaryTree bt = createBinaryTree();
|
|
|
|
bt.traverseLevelOrder();
|
|
}
|
|
|
|
private BinaryTree createBinaryTree() {
|
|
BinaryTree bt = new BinaryTree();
|
|
|
|
bt.add(6);
|
|
bt.add(4);
|
|
bt.add(8);
|
|
bt.add(3);
|
|
bt.add(5);
|
|
bt.add(7);
|
|
bt.add(9);
|
|
|
|
return bt;
|
|
}
|
|
|
|
}
|