import org.junit.Test;
import static org.junit.Assert.*;
public class ComputeLowestCommonAncestorTest {
private BinaryTree<Integer> expected;
private BinaryTree<Integer> tree;
private BinaryTree<Integer> node0;
private BinaryTree<Integer> node1;
@Test
public void LCA1() throws Exception {
tree = BinaryTreeUtil.getEvenTree();
node0 = tree.right;
node1 = tree.left;
expected = tree;
test(expected, tree, node0, node1);
}
@Test
public void LCA2() throws Exception {
tree = BinaryTreeUtil.getFigureTenDotOne();
node0 = tree.right.left.right.left.right;
node1 = tree.right.left.right.right;
expected = tree.right.left.right;
test(expected, tree, node0, node1);
}
@Test
public void LCA3() throws Exception {
tree = BinaryTreeUtil.getOddTree();
node0 = tree.left;
node1 = tree.left.left;
expected = tree.left;
test(expected, tree, node0, node1);
}
private void test(BinaryTree<Integer> expected, BinaryTree<Integer> tree, BinaryTree<Integer> node0, BinaryTree<Integer> node1) {
assertEquals(expected, ComputeLowestCommonAncestor.LCA(tree,node0,node1));
}
}