import java.util.HashSet; public class TestHashSet { @org.jmlspecs.annotation.SkipEsc public static void main(String... args) { esc(10); } public static void esc(int i) { HashSet<Integer> a = new HashSet<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(2); //@ assert a.size() == 2; b1 = a.contains(2); //@ assert b1; b1 = a.contains(3); //@ assert !b1; b1 = a.remove(1); //@ assert b1; //@ assert a.size() == 1; b1 = a.remove(10); //@ assert !b1; //@ assert a.size() == 1; HashSet<Integer> aa = (HashSet<Integer>)a.clone(); a.clear(); b1 = a.isEmpty(); //@ assert b1; // Still to check: // HashSet: other constructors // Set: addAll, retainAll, removeAll, containsAll, equals, hashCode, toArray // AbstractCollection: toArray(2 version), containsAll, removeAll, retainAll, toString // anything inherited from Collection, Iterable, Cloneable, Serializable, } }