### Question:
LinkedBinaryTree extends AbstractBinaryTree<E> { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("["); for(Position<E> p : positions()) { sb.append(p.getElement()); sb.append(", "); } sb.append("]"); return sb.toString(); } 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 testToString() { 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("[8, 4, 9, 2, 10, 5, 11, 1, 12, 6, 3, 7]", bt.toString()); }
@Test void testCreateLevelOrder() { 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("[8, 4, 9, 2, 10, 5, 11, 1, 12, 6, 3, 7]", bt.toString()); }
@Test void testInorder() { 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("[8, 4, 9, 2, 10, 5, 11, 1, 12, 6, 3, 7]", bt.inorder().toString()); }