import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.junit.Assert.*; public class FindKLargestTest { private List<Integer> expected; private BinaryTree<Integer> tree; private int k; @Test public void findLargest1() throws Exception { expected = Arrays.asList(108,243,285,285,401); tree = BinaryTreeUtil.getFigureFifteenDotTwo(); k = 5; test(expected, tree, k); } @Test public void findLargest2() throws Exception { expected = Arrays.asList(53); tree = BinaryTreeUtil.getFigureFifteenDotOne(); k = 1; test(expected, tree, k); } @Test public void findLargest3() throws Exception { expected = Arrays.asList(53,47,43); tree = BinaryTreeUtil.getFigureFifteenDotOne(); k = 3; test(expected, tree, k); } private void test(List<Integer> expected, BinaryTree<Integer> tree, int k) { AssertUtils.assertSameContentsInt(expected, FindKLargest.findLargest(tree, k)); } }