AlignmentI al = gen.generate(20, 30, 1, 5, 5);
- @BeforeMethod
+ AlignmentI smallAl = gen.generate(7, 2, 2, 5, 5);
+
+ @BeforeMethod(alwaysRun = true)
public void cleanUp()
{
ColumnSelection sel = new ColumnSelection();
al.getHiddenColumns().revealAllHiddenColumns(sel);
al.getHiddenSequences().showAll(null);
+ smallAl.getHiddenColumns().revealAllHiddenColumns(sel);
+ smallAl.getHiddenSequences().showAll(null);
}
@Test(groups = { "Functional" })
assertEquals(vr.getEndRes(), 19);
vr.setStartEndRes(al.getWidth(), al.getWidth());
- assertEquals(vr.getEndRes(), al.getWidth());
+ assertEquals(vr.getEndRes(), al.getWidth() - 1);
+
+ ViewportRanges vrsmall = new ViewportRanges(smallAl);
+ vrsmall.setStartEndRes(al.getWidth(), al.getWidth());
+ assertEquals(vrsmall.getEndRes(), 6);
+
+ // make visible alignment width = 0
+ smallAl.getHiddenColumns().hideColumns(0, 6);
+ vrsmall.setStartEndRes(0, 4);
+ assertEquals(vrsmall.getStartRes(), 0);
+ assertEquals(vrsmall.getEndRes(), 0);
}
@Test(groups = { "Functional" })
vr.setStartEndSeq(al.getHeight(), al.getHeight());
assertEquals(vr.getEndSeq(), al.getHeight() - 1);
+
+ // make visible alignment height = 0
+ smallAl.getHiddenSequences().hideSequence(smallAl.getSequenceAt(0));
+ smallAl.getHiddenSequences().hideSequence(smallAl.getSequenceAt(0));
+ ViewportRanges vrsmall = new ViewportRanges(smallAl);
+ vrsmall.setStartEndSeq(0, 3);
+ assertEquals(vrsmall.getStartSeq(), 0);
+ assertEquals(vrsmall.getEndSeq(), 0);
}
@Test(groups = { "Functional" })
// reset out of bounds start values to within bounds
vr.setViewportStartAndWidth(35, 5);
assertEquals(vr.getViewportWidth(), 5);
- assertEquals(vr.getStartRes(), 20);
+ assertEquals(vr.getStartRes(), 16);
+
+ // small alignment doesn't get bounds reset
+ ViewportRanges vrsmall = new ViewportRanges(smallAl);
+ vrsmall.setViewportStartAndWidth(0, 63);
+ assertEquals(vrsmall.getViewportWidth(), 7);
+ assertEquals(vrsmall.getStartRes(), 0);
}
@Test(groups = { "Functional" })
vr.scrollRight(false);
assertEquals(vr.getStartRes(), 0);
- vr.setViewportStartAndWidth(19, 5);
+ vr.setViewportStartAndWidth(15, 5);
vr.scrollRight(true);
- assertEquals(vr.getStartRes(), 20);
+ assertEquals(vr.getStartRes(), 16);
// can't scroll right past end
vr.scrollRight(true);
- assertEquals(vr.getStartRes(), 20);
+ assertEquals(vr.getStartRes(), 16);
}
@Test(groups = { "Functional" })
// hide last 2 columns
HiddenColumns cols = new HiddenColumns();
- cols.hideColumns(18, 19);
+ cols.hideColumns(19, 20);
al.setHiddenColumns(cols);
vr.setViewportStartAndWidth(1, 5);
vr.scrollRight(false);
assertEquals(vr.getStartRes(), 0);
- vr.setViewportStartAndWidth(19, 5);
+ vr.setViewportStartAndWidth(13, 5);
vr.scrollRight(true);
- assertEquals(vr.getStartRes(), 18);
+ assertEquals(vr.getStartRes(), 14);
// can't scroll right past last visible col
vr.scrollRight(true);
- assertEquals(vr.getStartRes(), 18);
+ assertEquals(vr.getStartRes(), 14);
}
@Test(groups = { "Functional" })
assertTrue(l.verify(1, Arrays.asList("startres")));
l.reset();
}
+
+ @Test(groups = { "Functional" })
+ public void testGetWrappedScrollPosition()
+ {
+ AlignmentI al2 = gen.generate(157, 15, 1, 5, 5);
+ ViewportRanges vr = new ViewportRanges(al2);
+ vr.setStartEndRes(0, 39);
+ int width = vr.getViewportWidth(); // 40
+
+ /*
+ * scroll is 0 at column 0 (only)
+ */
+ assertEquals(vr.getWrappedScrollPosition(0), 0);
+
+ /*
+ * scroll is 1 at columns 1-40
+ */
+ int i = 1;
+ int j = width;
+ for (; i <= j; i++)
+ {
+ assertEquals(1, vr.getWrappedScrollPosition(i));
+ }
+
+ /*
+ * scroll is 2 at columns 41-80, etc
+ */
+ j += width;
+ for (; i <= j; i++)
+ {
+ assertEquals(2, vr.getWrappedScrollPosition(i), "For " + i);
+ }
+ }
}
// mock listener for property change events