import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.junit.Assert.*; public class ReconstructBinaryTreeWithMarkersTest { private BinaryTree<Integer> expected; private List<Integer> sequence; @Test public void reconstructPreorder1() throws Exception { expected = BinaryTreeUtil.getEvenTree(); sequence = Arrays.asList(0,1,null,null,2,null,null); test(expected, sequence); } @Test public void reconstructPreorder2() throws Exception { expected = BinaryTreeUtil.getFullTree(); sequence = Arrays.asList(0,1,2,null,null,3,null,null,4,5,null,null,6,null,null); test(expected, sequence); } @Test public void reconstructPreorder3() throws Exception { expected = BinaryTreeUtil.getFigureTenDotOne(); sequence = Arrays.asList(314,6,271,28,null,null,0,null,null,561,null,3,17,null,null,null,6,2,null,1,401,null,641,null,null,257,null,null,271,null,28,null,null); test(expected, sequence); } private void test(BinaryTree<Integer> expected, List<Integer> sequence) { assertEquals(expected, ReconstructBinaryTreeWithMarkers.reconstructPreorder(sequence)); } }