package datastructure;
import datastructure.basic.BinarySortedTree;
import datastructure.basic.BinaryTreeNode;
import org.junit.Assert;
import org.junit.Test;
import org.junit.Before;
import org.junit.After;
/**
* BinarySortedTree Tester.
*
* @author <Authors name>
* @version 1.0
* @since <pre>二月 24, 2017</pre>
*/
public class BinarySortedTreeTest {
@Before
public void before() throws Exception {
}
@After
public void after() throws Exception {
}
private BinarySortedTree<Integer> getTree() {
return new BinarySortedTree<>();
}
/**
* Method: add(T o)
*/
@Test
public void testAdd() throws Exception {
//TODO: Test goes here...
BinarySortedTree<Integer> tree = getTree();
int[] addValues = {5, 3, 1, 7, 6, 4, 8};
for (int i : addValues) {
tree.add(i);
}
final Object[] left = new Object[addValues.length];
final Object[] value = new Object[addValues.length];
final Object[] right = new Object[addValues.length];
tree.traverse(new BinarySortedTree.Visitor() {
int pos = 0;
@Override
public void visit(BinaryTreeNode node) {
left[pos] = node.getLeft() == null ? null : (int) node.getLeft().getData();
value[pos] = node.getData();
right[pos] = node.getRight() == null ? null : (int) node.getRight().getData();
pos++;
}
});
Assert.assertArrayEquals(left, new Object[]{null, 1, null, 3, null, 6, null});
Assert.assertArrayEquals(value, new Object[]{1, 3, 4, 5, 6, 7, 8});
Assert.assertArrayEquals(right, new Object[]{null, 4, null, 7, null, 8, null});
}
}