### Question:
LinkedBinaryTree extends AbstractBinaryTree<E> { @Override public Position<E> root() { return root; } LinkedBinaryTree(); @Override int size(); @Override Position<E> root(); @Override Position<E> parent(Position<E> p); @Override Position<E> left(Position<E> p); @Override Position<E> right(Position<E> p); Position<E> addRoot(E e); void insert(E e); Position<E> addLeft(Position<E> p, E e); Position<E> addRight(Position<E> p, E e); E set(Position<E> p, E e); void attach(Position<E> p, LinkedBinaryTree<E> t1,
                    LinkedBinaryTree<E> t2); E remove(Position<E> p); String toString(); static void main(String [] args);  }### Answer:
@Test void testDepth() { LinkedBinaryTree<Integer> bt = new LinkedBinaryTree<Integer>(); Integer [] arr = new Integer[] {1,2,3,4,5,6,7,8,9,10,11,12}; bt.createLevelOrder(arr); assertEquals(0, bt.depth(bt.root())); }
@Test void testHeight() { LinkedBinaryTree<Integer> bt = new LinkedBinaryTree<Integer>(); Integer [] arr = new Integer[] {1,2,3,4,5,6,7,8,9,10,11,12}; bt.createLevelOrder(arr); assertEquals(3, bt.height(bt.root())); }