public void testLocateVisibleBoundsofSequence()
{
ColumnSelection cs = new ColumnSelection();
- SequenceI seq = new Sequence("RefSeq", "-A-SD-ASD--E");
+ SequenceI seq = new Sequence("RefSeq", "-A-SD-ASD--E---");
assertEquals(2, seq.findIndex(seq.getStart()));
- assertEquals(Arrays.toString(new int[] { seq.findIndex(seq.getStart()),
- seq.findIndex(seq.getEnd()), seq.getStart(), seq.getEnd() }),
+
+ // no hidden columns
+ assertEquals(
+ Arrays.toString(new int[] { seq.findIndex(seq.getStart()) - 1,
+ seq.findIndex(seq.getEnd()) - 1, seq.getStart(),
+ seq.getEnd() }),
+ Arrays.toString(cs.locateVisibleBoundsOfSequence(seq)));
+
+ // hidden column on gap after end of sequence - should not affect bounds
+ cs.hideColumns(13);
+ assertEquals(
+ Arrays.toString(new int[] { seq.findIndex(seq.getStart()) - 1,
+ seq.findIndex(seq.getEnd()) - 1, seq.getStart(),
+ seq.getEnd() }),
+ Arrays.toString(cs.locateVisibleBoundsOfSequence(seq)));
+
+ cs.revealAllHiddenColumns();
+ // hidden column on gap before beginning of sequence - should vis bounds by
+ // one
+ cs.hideColumns(0);
+ assertEquals(
+ Arrays.toString(new int[] { seq.findIndex(seq.getStart()) - 2,
+ seq.findIndex(seq.getEnd()) - 2, seq.getStart(),
+ seq.getEnd() }),
Arrays.toString(cs.locateVisibleBoundsOfSequence(seq)));
+
+ cs.revealAllHiddenColumns();
+ // hide columns around most of sequence - leave one residue remaining
cs.hideColumns(1, 3);
cs.hideColumns(6, 11);
assertEquals("-D",
cs.getVisibleSequenceStrings(0, 5, new SequenceI[] { seq })[0]);
assertEquals(Arrays.toString(new int[] { 1, 1, 3, 3 }),
Arrays.toString(cs.locateVisibleBoundsOfSequence(seq)));
+ cs.revealAllHiddenColumns();
+
+ // hide whole sequence - should just get location of hidden region
+ // containing sequence
+ cs.hideColumns(1, 11);
+ assertEquals(Arrays.toString(new int[] { 0, 1, 0, 0 }),
+ Arrays.toString(cs.locateVisibleBoundsOfSequence(seq)));
+
}
@Test(groups = { "Functional" })