### Question:
ProteinPointLocation implements ConvertibleToHGVSString { @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ProteinPointLocation other = (ProteinPointLocation) obj; if (aa == null) { if (other.aa != null) return false; } else if (!aa.equals(other.aa)) return false; if (downstreamOfTerminal != other.downstreamOfTerminal) return false; if (offset != other.offset) return false; if (pos != other.pos) return false; return true; } ProteinPointLocation(String aa, int pos, int offset, boolean downstreamOfTerminal); static ProteinPointLocation build(String aa, int pos); static ProteinPointLocation buildWithOffset(String aa, int pos, int offset); static ProteinPointLocation buildDownstreamOfTerminal(String aa, int pos); int getPos(); String getAA(); int getOffset(); boolean isDownstreamOfTerminal(); @Override String toHGVSString(); @Override String toHGVSString(AminoAcidCode code); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testEquals() { Assert.assertTrue(location1.equals(location2)); Assert.assertTrue(location2.equals(location1)); Assert.assertFalse(location1.equals(location3)); Assert.assertFalse(location3.equals(location1)); }