### Question:
Version { @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null || object.getClass() != getClass()) { return false; } final Version other = (Version) object; return major == other.major && minor == other.minor && micro == other.micro; } private  Version(int major, int minor, int micro); static Version create(int major, int minor, int micro); int getMajor(); int getMinor(); int getMicro(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString(); static final Version DEFAULT; }### Answer:
@Test void testEquals() { final Version version = Version.create(3, 2, 1); assertEquals(version, version); assertEquals(version, Version.create(3, 2, 1)); assertNotEquals(version, null); assertNotEquals(version, new Object()); assertNotEquals(version, Version.create(3, 2, 0)); assertNotEquals(version, Version.create(3, 0, 1)); assertNotEquals(version, Version.create(0, 2, 1)); assertNotEquals(version, Version.create(3, 0, 0)); assertNotEquals(version, Version.create(0, 0, 1)); assertNotEquals(version, Version.create(0, 0, 0)); }