SmartList extends AbstractList<E> implements RandomAccess { @Override public int size() { return mySize; } SmartList();  SmartList(E element);  SmartList(@NotNull Collection<? extends E> elements);  SmartList(@NotNull E... elements); @Override E get(int index); @Override boolean add(E e); @Override void add(int index, E e); @Override int size(); @Override void clear(); @Override E set(final int index, final E element); @Override E remove(final int index); @NotNull @Override Iterator<E> iterator(); void sort(Comparator<? super E> comparator); int getModificationCount(); @NotNull @Override T[] toArray(@NotNull T[] a); void trimToSize();  }
@Test public void testEmpty() { assertEquals(0, new SmartList<Integer>().size()); }