Merge branch 'develop' into patch/JAL-4281_idwidthandannotHeight_in_project
[jalview.git] / test / jalview / datamodel / PAEContactMatrixTest.java
index 8cc2ec4..fa7aca5 100644 (file)
@@ -73,7 +73,7 @@ public class PAEContactMatrixTest
     verifyPAEmatrix(seq, aa, 0, 0, 4);
 
     // test clustering
-    paematrix.setGroupSet(GroupSet.makeGroups(paematrix, 0.1f, false));
+    paematrix.setGroupSet(GroupSet.makeGroups(paematrix, false,0.1f, false));
 
     // remap - test the MappableContactMatrix.liftOver method
     SequenceI newseq = new Sequence("Seq", "ASDQEASDQEASDQE");
@@ -116,7 +116,11 @@ public class PAEContactMatrixTest
     AlignmentI alForSeq = new Alignment(new SequenceI[] { alseq });
     newaa = AlignmentUtils.addReferenceAnnotationTo(alForSeq, alseq, newaa,
             null);
-    ContactListI alcl = alForSeq.getContactListFor(newaa, 1);
+    // check for null on out of bounds
+    ContactListI alcl = alForSeq.getContactListFor(newaa, newaa.annotations.length);
+    assertNull(alcl,"Should've gotten null!");
+    // now check for mapping
+    alcl = alForSeq.getContactListFor(newaa, 1);
     assertNotNull(alcl);
     mappedCl = alcl.getMappedPositionsFor(0, 4);
     assertNotNull(mappedCl);
@@ -206,4 +210,41 @@ public class PAEContactMatrixTest
     }
   }
 
+  /**
+   * check mapping and resolution methods work
+   */
+  @Test(groups= {"Functional"})
+  public void testMappableContactMatrix() {
+    SequenceI newseq = new Sequence("Seq", "ASDQEASDQEASDQE");
+    MapList map = new MapList(new int[]
+            { 5, 9 }, new int[] { 1, 5 }, 1, 1);
+    AlignmentAnnotation aa = newseq
+            .addContactList(new PAEContactMatrix(newseq,map, PAEdata,null));
+    ContactListI clist = newseq.getContactListFor(aa, 4);
+    assertNotNull(clist);
+    clist = newseq.getContactListFor(aa, 3);
+    assertNull(clist);
+    
+    ContactMatrixI cm = newseq.getContactMatrixFor(aa);
+    MappableContactMatrixI mcm = (MappableContactMatrixI) cm;
+    int[] pos = mcm.getMappedPositionsFor(newseq, 0);
+    assertNull(pos);
+
+    pos = mcm.getMappedPositionsFor(newseq, 1);
+    assertNotNull(pos);
+    assertEquals(pos[0],4+newseq.getStart());
+    
+    pos = mcm.getMappedPositionsFor(newseq, 6); // after end of matrix
+    assertNull(pos);
+    pos = mcm.getMappedPositionsFor(newseq, 5); // at end of matrix
+    assertNotNull(pos);
+    assertEquals(pos[0],8+newseq.getStart());
+    SequenceI alseq = newseq.deriveSequence();
+    alseq.insertCharAt(5,'-');
+    pos = mcm.getMappedPositionsFor(alseq, 5); // at end of matrix
+    assertNotNull(pos);
+    assertEquals(pos[0],8+newseq.getStart());
+    
+    
+  }
 }