import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.junit.Assert.*; public class ComputeKthNodeInorderTest { private BinaryTree<Integer> expected; private static BinaryTree<Integer> tree; private int k; static { tree = new BinaryTree<>(5); tree.left = new BinaryTree<>(2); tree.left.left = new BinaryTree<>(1); tree.right = new BinaryTree<>(2); tree.right.left = new BinaryTree<>(1); } @Test public void findKthNodeBinaryTree1() throws Exception { k = 0; expected = tree.left.left; test(expected, k); } @Test public void findKthNodeBinaryTree2() throws Exception { k = 1; expected = tree.left; test(expected, k); } @Test public void findKthNodeBinaryTree3() throws Exception { k = 2; expected = tree; test(expected, k); } @Test public void findKthNodeBinaryTree4() throws Exception { k = 3; expected = tree.right.left; test(expected, k); } @Test public void findKthNodeBinaryTree5() throws Exception { k = 4; expected = tree.right; test(expected, k); } private void test(BinaryTree<Integer> expected, int k) { assertEquals(expected, ComputeKthNodeInorder.findKthNodeBinaryTree(tree, k)); } }