import java.util.ArrayList;
public class TestArrayList {
@org.jmlspecs.annotation.SkipEsc
public static void main(String... args) {
esc(10);
}
public static void esc(int i) {
ArrayList<Integer> a = new ArrayList<Integer>();
boolean b1 = a.isEmpty();
//@ assert b1;
int i1 = a.size();
//@ assert i1 == 0;
b1 = a.add(1);
//@ assert b1;
//@ assert a.size() == 1;
//@ assert !a.isEmpty();
a.add(1,2);
//@ assert a.size() == 2;
b1 = a.contains(2);
//@ assert b1;
b1 = a.contains(3);
//@ assert !b1;
a.set(1,3);
b1 = a.contains(3);
//@ assert b1;
b1 = a.contains(2);
//@ assert !b1;
i1 = a.get(0);
//@ assert i1 == 1;
i1 = a.indexOf(3);
//@ assert i1 == 1;
i1 = a.lastIndexOf(1);
//@ assert i1 == 0;
i1 = a.remove(1);
//@ assert i1 == 3;
//@ assert a.size() == 1;
ArrayList<Integer> aa = (ArrayList<Integer>)a.clone();
a.clear();
b1 = a.isEmpty();
//@ assert b1;
// Still to check:
// addAll, addAll, clone, ensuresCapacity, trimToSize, removeRange, toArray
// AbstractList: iterator, listIterator, subList, equals, hashCode
// AbstractCollection: toArray(2 version), containsAll, removeAll, retainAll, toString
// anything inherited from Iterable, RandomAccess, Cloneable, Serializable,
}
}