### Question:
ObjIntPair implements ImmutableBean, Tuple, Comparable<ObjIntPair<A>>, Serializable { public static <A> ObjIntPair<A> of(A first, int second) { return new ObjIntPair<A>(first, second); } private  ObjIntPair(
      A first,
      int second); static ObjIntPair<A> of(A first, int second); static ObjIntPair<A> ofPair(Pair<A, Integer> pair); @Override int size(); @Override ImmutableList<Object> elements(); Pair<A, Integer> toPair(); @Override int compareTo(ObjIntPair<A> other); @Override String toString(); @SuppressWarnings("rawtypes") static ObjIntPair.Meta meta(); @SuppressWarnings("unchecked") static ObjIntPair.Meta<R> metaObjIntPair(Class<R> cls); @SuppressWarnings("unchecked") @Override ObjIntPair.Meta<A> metaBean(); A getFirst(); int getSecond(); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void test_compareTo() { ObjIntPair<String> p12 = ObjIntPair.of("1", 2); ObjIntPair<String> p13 = ObjIntPair.of("1", 3); ObjIntPair<String> p21 = ObjIntPair.of("2", 1); List<ObjIntPair<String>> list = new ArrayList<>(); list.add(p12); list.add(p13); list.add(p21); list.sort(Comparator.naturalOrder()); assertThat(list).containsExactly(p12, p13, p21); list.sort(Comparator.reverseOrder()); assertThat(list).containsExactly(p21, p13, p12); }
@Test public void test_equals() { ObjIntPair<String> a = ObjIntPair.of("1", 2); ObjIntPair<String> a2 = ObjIntPair.of("1", 2); ObjIntPair<String> b = ObjIntPair.of("1", 3); ObjIntPair<String> c = ObjIntPair.of("2", 2); ObjIntPair<String> d = ObjIntPair.of("2", 3); assertThat(a) .isEqualTo(a) .isEqualTo(a2) .isNotEqualTo(b) .isNotEqualTo(c) .isNotEqualTo(d) .isNotEqualTo(null) .isNotEqualTo(ANOTHER_TYPE) .isNotEqualTo(Pair.of(Integer.valueOf(1), Integer.valueOf(1))) .hasSameHashCodeAs(a2); assertThat(b) .isNotEqualTo(a) .isEqualTo(b) .isNotEqualTo(c) .isNotEqualTo(d); assertThat(c) .isNotEqualTo(a) .isEqualTo(c) .isNotEqualTo(b) .isNotEqualTo(d); assertThat(d) .isNotEqualTo(a) .isNotEqualTo(b) .isNotEqualTo(c) .isEqualTo(d); }
@Test public void coverage() { ObjIntPair<String> test = ObjIntPair.of("1", 1); TestHelper.coverImmutableBean(test); }