import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.junit.Assert.*; public class ReconstructBinaryTreeTest { private BinaryTree<Integer> expected; private List<Integer> preorder; private List<Integer> inorder; @Test public void binaryTreeFromPreorderInorder1() throws Exception { expected = BinaryTreeUtil.getOddTree(); preorder = Arrays.asList(0,1,2); inorder = Arrays.asList(2,1,0); test(expected, preorder, inorder); } @Test public void binaryTreeFromPreorderInorder2() throws Exception { expected = BinaryTreeUtil.getFullTree(); preorder = Arrays.asList(0,1,2,3,4,5,6); inorder = Arrays.asList(2,1,3,0,5,4,6); test(expected, preorder, inorder); } @Test public void binaryTreeFromPreorderInorder3() throws Exception { expected = BinaryTreeUtil.getFigureTenDotOne(); preorder = Arrays.asList(314,6,271,28,0,561,3,17,6,2,1,401,641,257,271,28); inorder = Arrays.asList(28,271,0,6,561,17,3,314,2,401,614,1,257,6,271,28); test(expected, preorder, inorder); } private void test(BinaryTree<Integer> expected, List<Integer> preorder, List<Integer> inorder) { assertEquals(expected, ReconstructBinaryTree.binaryTreeFromPreorderInorder(preorder, inorder)); } }