Merge branch 'develop' into spike/JAL-4047/JAL-4048_columns_in_sequenceID
[jalview.git] / test / jalview / gui / AlignViewportTest.java
index b3c6b2a..4537dcc 100644 (file)
@@ -42,8 +42,10 @@ import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
+import jalview.datamodel.ContactMatrixI;
 import jalview.datamodel.SearchResults;
 import jalview.datamodel.SearchResultsI;
+import jalview.datamodel.SeqDistanceContactMatrix;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
@@ -537,4 +539,29 @@ public class AlignViewportTest
     assertEquals(0, ranges.getStartSeq());
     assertEquals(2, ranges.getEndSeq());
   }
+  @Test(groups = {"Functional"})
+  public void testGetSelectionAsNewSequences_withContactMatrices()
+  {
+    SequenceI seq = new Sequence("seq","ACADA");
+    ContactMatrixI cmat = new SeqDistanceContactMatrix(5);
+    seq.addContactList(cmat);
+    Alignment al = new Alignment(new SequenceI[] {seq.deriveSequence() });
+    al.addAnnotation(al.getSequenceAt(0).getAnnotation()[0]);
+    AlignFrame af = new AlignFrame(al,500,500);
+    
+    SequenceI selseqs[] = af.getViewport().getSelectionAsNewSequence();
+    assertNotNull(selseqs[0].getAnnotation());
+    assertNotNull(selseqs[0].getAnnotation()[0]);
+    assertEquals(cmat,selseqs[0].getContactMatrixFor(selseqs[0].getAnnotation()[0]));
+    
+    assertNotNull(selseqs[0].getContactListFor(selseqs[0].getAnnotation()[0], 2));
+    
+    // now select everything and test again
+    af.selectAllSequenceMenuItem_actionPerformed(null);
+    selseqs = af.getViewport().getSelectionAsNewSequence();
+    assertNotNull(selseqs[0].getAnnotation());
+    assertNotNull(selseqs[0].getAnnotation()[0]);
+    assertEquals(cmat,selseqs[0].getContactMatrixFor(selseqs[0].getAnnotation()[0]));
+    assertNotNull(selseqs[0].getContactListFor(selseqs[0].getAnnotation()[0], 2));
+  }
 }