### Question:
ProteinFrameshift extends ProteinChange { @Override public String toHGVSString(AminoAcidCode code) { String targetAA = this.targetAA; if (!isShort() && code == AminoAcidCode.THREE_LETTER) targetAA = Translator.getTranslator().toLong(targetAA); if (isShort()) return wrapIfOnlyPredicted(Joiner.on("").join(position.toHGVSString(code), "fs")); else if (shiftLength == LEN_NO_TER) return wrapIfOnlyPredicted(Joiner.on("").join(position.toHGVSString(code), targetAA, "fs*?")); else return wrapIfOnlyPredicted(Joiner.on("").join(position.toHGVSString(code), targetAA, "fs*", shiftLength)); } ProteinFrameshift(boolean onlyPredicted, ProteinPointLocation position, String targetAA, int shiftLength); static ProteinFrameshift build(boolean onlyPredicted, String wtAA, int position, String targetAA,
										  int shiftLength); static ProteinFrameshift build(boolean onlyPredicted, ProteinPointLocation position, String targetAA,
										  int shiftLength); static ProteinFrameshift buildShort(boolean onlyPredicted, String wtAA, int position); static ProteinFrameshift buildShort(boolean onlyPredicted, ProteinPointLocation position); static ProteinFrameshift buildWithoutTerminal(boolean onlyPredicted, String wtAA, int position,
														 String targetAA); static ProteinFrameshift buildWithoutTerminal(boolean onlyPredicted, ProteinPointLocation position,
														 String targetAA); boolean isShort(); boolean isNoTerminalFrameshfit(); ProteinPointLocation getPosition(); String getTargetAA(); int getShiftLength(); @Override String toHGVSString(AminoAcidCode code); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object obj); @Override ProteinChange withOnlyPredicted(boolean onlyPredicted); static final int LEN_NO_TER; static final int LEN_SHORT; }### Answer:
@Test public void testFullFrameshiftToHGVSString() { Assert.assertEquals("A124Tfs*23", fullFrameshift.toHGVSString()); Assert.assertEquals("Ala124Thrfs*23", fullFrameshift.toHGVSString(AminoAcidCode.THREE_LETTER)); Assert.assertEquals("A124Tfs*23", fullFrameshift.toHGVSString(AminoAcidCode.ONE_LETTER)); }
@Test public void testNoTerFrameshiftToHGVSString() { Assert.assertEquals("A124Tfs*?", noTerFrameshift.toHGVSString()); Assert.assertEquals("Ala124Thrfs*?", noTerFrameshift.toHGVSString(AminoAcidCode.THREE_LETTER)); Assert.assertEquals("A124Tfs*?", noTerFrameshift.toHGVSString(AminoAcidCode.ONE_LETTER)); }
@Test public void testShortFrameshiftToHGVSString() { Assert.assertEquals("A124fs", shortFrameshift.toHGVSString()); Assert.assertEquals("Ala124fs", shortFrameshift.toHGVSString(AminoAcidCode.THREE_LETTER)); Assert.assertEquals("A124fs", shortFrameshift.toHGVSString(AminoAcidCode.ONE_LETTER)); }