X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FAlignmentAnnotationTests.java;h=7c1aa8136bd9a66b2734cc61f29abfcb484c4928;hb=fd9ed8df6a98c86228100aa4e9d6698c87a61c08;hp=f23b3d2ea38baf32af977a2aa0f8058ad890423e;hpb=898ef7e2238d8eade34829e9fc86b422f14f29d8;p=jalview.git diff --git a/test/jalview/datamodel/AlignmentAnnotationTests.java b/test/jalview/datamodel/AlignmentAnnotationTests.java index f23b3d2..7c1aa81 100644 --- a/test/jalview/datamodel/AlignmentAnnotationTests.java +++ b/test/jalview/datamodel/AlignmentAnnotationTests.java @@ -1,11 +1,13 @@ package jalview.datamodel; import static org.junit.Assert.assertEquals; -import jalview.analysis.AlignSeq; -import jalview.io.AppletFormatAdapter; +import static org.junit.Assert.assertNull; import org.junit.Test; +import jalview.analysis.AlignSeq; +import jalview.io.AppletFormatAdapter; + public class AlignmentAnnotationTests { @Test @@ -153,7 +155,48 @@ public class AlignmentAnnotationTests : "Out of range"); assertEquals("Position " + p + " " + alm1 + " " + alm2, alm1, alm2); } - // new jalview.io.FormatAdapter().formatSequences("STOCKHOLM", n) } + @Test + public void testAdjustForAlignment() + { + SequenceI seq = new Sequence("TestSeq", "ABCDEFG"); + seq.createDatasetSequence(); + + /* + * Annotate positions 3/4/5 (CDE) with values 1/2/3 + */ + Annotation[] anns = new Annotation[] + { null, null, new Annotation(1), new Annotation(2), new Annotation(3) }; + AlignmentAnnotation ann = new AlignmentAnnotation("SS", + "secondary structure", anns); + seq.addAlignmentAnnotation(ann); + + /* + * Check annotation map before modifying aligned sequence + */ + assertNull(ann.getAnnotationForPosition(1)); + assertNull(ann.getAnnotationForPosition(2)); + assertNull(ann.getAnnotationForPosition(6)); + assertNull(ann.getAnnotationForPosition(7)); + assertEquals(1, ann.getAnnotationForPosition(3).value, 0.001d); + assertEquals(2, ann.getAnnotationForPosition(4).value, 0.001d); + assertEquals(3, ann.getAnnotationForPosition(5).value, 0.001d); + + /* + * Trim the displayed sequence to BCD and adjust annotations + */ + seq.setSequence("BCD"); + seq.setStart(2); + seq.setEnd(4); + ann.adjustForAlignment(); + + /* + * Should now have annotations for aligned positions 2, 3Q (CD) only + */ + assertEquals(3, ann.annotations.length); + assertNull(ann.annotations[0]); + assertEquals(1, ann.annotations[1].value, 0.001); + assertEquals(2, ann.annotations[2].value, 0.001); + } }