### Question:
BasicEventList extends AbstractEventList<E> implements Serializable, RandomAccess { @Override public void add(int index, E element) { updates.beginEvent(); updates.elementInserted(index, element); data.add(index, element); updates.commitEvent(); } BasicEventList();  BasicEventList(ReadWriteLock readWriteLock);  BasicEventList(int initalCapacity);  BasicEventList(ListEventPublisher publisher, ReadWriteLock readWriteLock);  BasicEventList(int initialCapacity, ListEventPublisher publisher, ReadWriteLock readWriteLock); @Deprecated  BasicEventList(List<E> list); @Override void add(int index, E element); @Override boolean add(E element); @Override boolean addAll(Collection<? extends E> collection); @Override boolean addAll(int index, Collection<? extends E> collection); @Override E remove(int index); @Override boolean remove(Object element); @Override void clear(); @Override E set(int index, E element); @Override E get(int index); @Override int size(); @Override boolean removeIf(Predicate<? super E> filter); @Override void replaceAll(UnaryOperator<E> operator); @Override void forEach(Consumer<? super E> action); @Override Stream<E> stream(); @Override Stream<E> parallelStream(); @Override Spliterator<E> spliterator(); @Override void dispose();  }### Answer:
@Test public void testRemoveAll_list() { EventList<String> list = new BasicEventList<>(); list.add( "One" ); list.add( "Two" ); list.add( "Three" ); list.removeAll( Arrays.asList( "Three", "Two" ) ); assertEquals( Collections.singletonList( "One" ), list ); }
@Test public void testRemoveAll_set() { EventList<String> list = new BasicEventList<>(); list.add( "One" ); list.add( "Two" ); list.add( "Three" ); list.removeAll( new HashSet<>( Arrays.asList( "Three", "Two" ) ) ); assertEquals( Collections.singletonList( "One" ), list ); }
@Test public void testRetainAll() { EventList<String> list = new BasicEventList<>(); list.add( "One" ); list.add( "Two" ); list.add( "Three" ); list.retainAll( Arrays.asList( "Four", "Three", "Two" ) ); assertEquals( Arrays.asList( "Two", "Three" ), list ); }