### Question:
ObjDoublePair implements ImmutableBean, Tuple, Comparable<ObjDoublePair<A>>, Serializable { public static <A> ObjDoublePair<A> of(A first, double second) { return new ObjDoublePair<A>(first, second); } private  ObjDoublePair(
      A first,
      double second); static ObjDoublePair<A> of(A first, double second); static ObjDoublePair<A> ofPair(Pair<A, Double> pair); @Override int size(); @Override ImmutableList<Object> elements(); Pair<A, Double> toPair(); @Override int compareTo(ObjDoublePair<A> other); @Override String toString(); @SuppressWarnings("rawtypes") static ObjDoublePair.Meta meta(); @SuppressWarnings("unchecked") static ObjDoublePair.Meta<R> metaObjDoublePair(Class<R> cls); @SuppressWarnings("unchecked") @Override ObjDoublePair.Meta<A> metaBean(); A getFirst(); double getSecond(); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void test_compareTo() { ObjDoublePair<String> p12 = ObjDoublePair.of("1", 2d); ObjDoublePair<String> p13 = ObjDoublePair.of("1", 3d); ObjDoublePair<String> p21 = ObjDoublePair.of("2", 1d); List<ObjDoublePair<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() { ObjDoublePair<String> a = ObjDoublePair.of("1", 2.0d); ObjDoublePair<String> a2 = ObjDoublePair.of("1", 2.0d); ObjDoublePair<String> b = ObjDoublePair.of("1", 3.0d); ObjDoublePair<String> c = ObjDoublePair.of("2", 2.0d); ObjDoublePair<String> d = ObjDoublePair.of("2", 3.0d); assertThat(a) .isEqualTo(a) .isEqualTo(a2) .isNotEqualTo(b) .isNotEqualTo(c) .isNotEqualTo(d) .isNotEqualTo(null) .isNotEqualTo(ANOTHER_TYPE) .isNotEqualTo(Pair.of(Integer.valueOf(1), Double.valueOf(1.7d))) .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() { ObjDoublePair<String> test = ObjDoublePair.of("1", 1.7d); TestHelper.coverImmutableBean(test); }