+ /**
+ * 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());
+
+
+ }