@org.jmlspecs.annotation.NullableByDefault public class TestInteger { @org.jmlspecs.annotation.SkipEsc public static void main(String... args) { esc(10); } public static void esc(int i) { Integer a = new Integer(i); Integer c = new Integer(i+1); Integer b = i; //@ assert a != null; //@ assert b != null; // @ assert a != b; // Does not necessarily hold //@ assert a.intValue() == b.intValue(); //@ assert a.equals(b); //@ assert a.intValue() != c.intValue(); //@ assert !a.equals(c); //@ assert ((int)a) == i; int k = b; //@ assert k == i; //@ assert a.equals(b); //@ assert !a.equals(c); //@ assert !a.equals(null); //@ assert Integer.MIN_VALUE == -2147483648; //@ assert Integer.MAX_VALUE == 2147483647; //@ assert \typeof(a) == \type(Integer); //@ assert \typeof(a) != \type(Object); // FIXME SIZE // FIXME - string operations // String s = a.toString(); // int k = Integer.parseInt(s); // //@ assert k == i; // s = Integer.toString(a); // k = Integer.parseInt(s); // //@ assert k == i; //@ assert a.hashCode() == i; } }