### Question:
Version implements Serializable, Comparable<Version> { @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Version other = (Version) obj; if (major == null) { if (other.major != null) return false; } else if (!major.equals(other.major)) return false; if (minor == null) { if (other.minor != null) return false; } else if (!minor.equals(other.minor)) return false; if (patch == null) { if (other.patch != null) return false; } else if (!patch.equals(other.patch)) return false; return true; } Version(String version);  Version(Integer major, Integer minor, Integer patch); Integer major(); Integer minor(); Integer patch(); @Override int compareTo(Version v); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void testEquals() { assertEquals(new Version(1,2,3), new Version(1,2,3)); }