Diff { protected Diff() {} protected  Diff(); protected  Diff(final List<E> created, final List<E> deleted); List<E> getCreatedUnmodifiable(); E setCreated(int index, E element); boolean removeCreated(final E element); void clearCreated(); List<E> getDeletedUnmodifiable(); boolean containsDeleted(final K key); boolean containsDeleted(final E element); E getDeleted(final K key); boolean removeDeleted(final E element); void clearDeleted(); boolean isEmpty(); int create(final E element); void undoCreate(final E element, final int insertionPoint); UndoInfo<E> delete(final E element); void undoDelete(final E element, final UndoInfo<E> undoInfo); UndoInfo<E> modify(final E oldElement, final E newElement); void undoModify(final E oldElement, final E newElement,
      final UndoInfo<E> undoInfo); Container<E> accessPrevious(final K name); Container<E> accessCurrent(K name); List<E> apply2Previous(final List<E> previous); List<E> apply2Current(final List<E> current); void combinePosterior(final Diff<K, E> posterior,
      final Processor<E> deletedProcesser); @Override String toString();  }
@Test(timeout=60000) public void testDiff() throws Exception { for(int startSize = 0; startSize <= 10000; startSize = nextStep(startSize)) { for(int m = 0; m <= 10000; m = nextStep(m)) { runDiffTest(startSize, m); } } }