package org.nextprot.api.commons.bio.variation.prot.impl.format; import org.junit.Assert; import org.junit.Test; import org.nextprot.api.commons.bio.AminoAcidCode; import org.nextprot.api.commons.bio.variation.prot.SequenceVariation; import org.nextprot.api.commons.bio.variation.prot.impl.SequenceVariationImpl; import org.nextprot.api.commons.bio.variation.prot.impl.seqchange.ExtensionInitiation; import org.nextprot.api.commons.bio.variation.prot.impl.seqchange.ExtensionTermination; import org.nextprot.api.commons.bio.variation.prot.seqchange.SequenceChange; public class SequenceVariantHGVSExtensionFormatTest { private SequenceVariantHGVSFormat format = new SequenceVariantHGVSFormat(); @Test public void testParseInitiationExtensionCode3() throws Exception { SequenceVariation pm = format.parse("p.Met1Valext-12"); Assert.assertEquals(AminoAcidCode.METHIONINE, pm.getVaryingSequence().getFirstAminoAcid()); Assert.assertEquals(1, pm.getVaryingSequence().getFirstAminoAcidPos()); Assert.assertEquals(SequenceChange.Type.EXTENSION_INIT, pm.getSequenceChange().getType()); Assert.assertEquals(-12, ((ExtensionInitiation)pm.getSequenceChange()).getNewPos()); Assert.assertEquals(AminoAcidCode.VALINE, ((ExtensionInitiation)pm.getSequenceChange()).getValue()); } @Test public void testParseTerminationExtensionCode3() throws Exception { SequenceVariation pm = format.parse("p.Ter110Glnext*17"); Assert.assertEquals(AminoAcidCode.STOP, pm.getVaryingSequence().getFirstAminoAcid()); Assert.assertEquals(110, pm.getVaryingSequence().getFirstAminoAcidPos()); Assert.assertEquals(SequenceChange.Type.EXTENSION_TERM, pm.getSequenceChange().getType()); Assert.assertEquals(17, ((ExtensionTermination)pm.getSequenceChange()).getNewPos()); Assert.assertEquals(AminoAcidCode.GLUTAMINE, ((ExtensionTermination)pm.getSequenceChange()).getValue()); } @Test(expected = java.text.ParseException.class) public void shouldNotParseTer() throws Exception { format.parse("p.Ter110GlnextTer17"); } @Test public void testParseInitiationExtensionCode1() throws Exception { SequenceVariation pm = format.parse("p.M1Vext-12"); Assert.assertEquals(AminoAcidCode.METHIONINE, pm.getVaryingSequence().getFirstAminoAcid()); Assert.assertEquals(1, pm.getVaryingSequence().getFirstAminoAcidPos()); Assert.assertEquals(SequenceChange.Type.EXTENSION_INIT, pm.getSequenceChange().getType()); Assert.assertEquals(-12, ((ExtensionInitiation)pm.getSequenceChange()).getNewPos()); Assert.assertEquals(AminoAcidCode.VALINE, ((ExtensionInitiation)pm.getSequenceChange()).getValue()); } @Test public void testParseTerminationExtensionCode1() throws Exception { SequenceVariation pm = format.parse("p.*110Glnext*17"); Assert.assertEquals(AminoAcidCode.STOP, pm.getVaryingSequence().getFirstAminoAcid()); Assert.assertEquals(110, pm.getVaryingSequence().getFirstAminoAcidPos()); Assert.assertEquals(SequenceChange.Type.EXTENSION_TERM, pm.getSequenceChange().getType()); Assert.assertEquals(17, ((ExtensionTermination)pm.getSequenceChange()).getNewPos()); Assert.assertEquals(AminoAcidCode.GLUTAMINE, ((ExtensionTermination)pm.getSequenceChange()).getValue()); } @Test public void testFormatExtensionCode1() throws Exception { SequenceVariation pm = new SequenceVariationImpl.FluentBuilding().selectAminoAcid(AminoAcidCode.METHIONINE, 1) .thenInitiationExtension(-12, AminoAcidCode.VALINE).build(); Assert.assertEquals("p.M1Vext-12", format.format(pm)); } @Test public void testFormatExtensionCode3() throws Exception { SequenceVariation pm = new SequenceVariationImpl.FluentBuilding().selectAminoAcid(AminoAcidCode.METHIONINE, 1) .thenInitiationExtension(-12, AminoAcidCode.VALINE).build(); Assert.assertEquals("p.Met1Valext-12", format.format(pm, AminoAcidCode.CodeType.THREE_LETTER)); } @Test public void testFormatExtensionTermCode1() throws Exception { SequenceVariation pm = new SequenceVariationImpl.FluentBuilding().selectAminoAcid(AminoAcidCode.STOP, 110) .thenTerminationExtension(17, AminoAcidCode.GLUTAMINE).build(); Assert.assertEquals("p.*110Qext*17", format.format(pm)); } @Test public void testFormatExtensionTermCode3() throws Exception { SequenceVariation pm = new SequenceVariationImpl.FluentBuilding().selectAminoAcid(AminoAcidCode.STOP, 110) .thenTerminationExtension(17, AminoAcidCode.GLUTAMINE).build(); Assert.assertEquals("p.Ter110Glnext*17", format.format(pm, AminoAcidCode.CodeType.THREE_LETTER)); } }