package jalview.datamodel;
-import static org.junit.Assert.assertEquals;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertNull;
+
import jalview.analysis.AlignSeq;
import jalview.io.AppletFormatAdapter;
-import org.junit.Test;
+import org.testng.annotations.Test;
public class AlignmentAnnotationTests
{
- @Test
+ @Test(groups ={ "Functional" })
public void testCopyConstructor()
{
SequenceI sq = new Sequence("Foo", "ARAARARARAWEAWEAWRAWEAWE");
* different dataset frames (annotation transferred by mapping between
* sequences)
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testLiftOver()
{
SequenceI sqFrom = new Sequence("fromLong", "QQQCDEWGH");
: "Out of range");
assertEquals("Position " + p + " " + alm1 + " " + alm2, alm1, alm2);
}
- // new jalview.io.FormatAdapter().formatSequences("STOCKHOLM", n)
}
+ @Test(groups ={ "Functional" })
+ 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);
+ }
}