package com.interview.tree;
import com.interview.TestUtil;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class VerticalOrderTest {
@Test
public void testDifferentCases() {
SerializeDeserializeBinaryTree serializeDeserializeBinaryTree = new SerializeDeserializeBinaryTree();
Node root = serializeDeserializeBinaryTree.deserializeLevelOrder("5,1,6,%,3,%,%,2,4");
VerticalOrder verticalOrder = new VerticalOrder();
List<List<Integer>> result = verticalOrder.verticalOrder(root);
List<List<Integer>> expected = new ArrayList<>();
expected.add(Arrays.asList(1, 2));
expected.add(Arrays.asList(5, 3));
expected.add(Arrays.asList(6, 4));
int index = 0;
TestUtil<Integer> t = new TestUtil<>();
for (List<Integer> r : result) {
t.compareList(expected.get(index++), r);
}
expected = new ArrayList<>();
expected.add(Arrays.asList(9));
expected.add(Arrays.asList(3, 15));
expected.add(Arrays.asList(20));
expected.add(Arrays.asList(7));
root = serializeDeserializeBinaryTree.deserializeLevelOrder("3,9,20,%,%,15,7");
result = verticalOrder.verticalOrder(root);
index = 0;
for (List<Integer> r : result) {
t.compareList(expected.get(index++), r);
}
}
}