package test.com.coding.basic;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.coding.basic.BinaryTree;
import com.coding.basic.BinaryTreeNode;
import com.coding.basic.List;
public class BinaryTreeTest {
BinaryTree<Integer> tree ;
@Before
public void setup() {
tree = new BinaryTree<>();
Assert.assertEquals(tree.getRoot(), null);
tree.insert(5);
tree.insert(2);
tree.insert(7);
tree.insert(1);
tree.insert(6);
}
@Test
public void insert(){
BinaryTreeNode<Integer> node = tree.insert(4);
Assert.assertEquals((int)node.getParent().getData(), 2);
Assert.assertEquals((int)node.getParent().getLeft().getData(), 1);
BinaryTreeNode<Integer> node2 = tree.insert(8);
Assert.assertEquals((int)node2.getParent().getData(), 7);
Assert.assertEquals((int)node2.getParent().getLeft().getData(), 6);
}
//@Test
public void traversal(){
insert();
//以根节点为起点先序遍历
List<Integer> treeList = tree.traversalBefore(tree.getRoot());
//expected value
int[] exValue = {5,2,1,4,7,6,8};
for (int i = 0; i < exValue.length; i++) {
Assert.assertEquals((int)treeList.get(i),exValue[i]);
}
//以数据2位起点先序遍历
List<Integer> treeList2 = tree.traversalBefore(tree.getRoot().getLeft());
//expected value
int[] exValue2 = {2,1,4};
for (int i = 0; i < exValue2.length; i++) {
Assert.assertEquals((int)treeList2.get(i),exValue2[i]);
}
}
}