X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fgui%2FAlignViewportTest.java;fp=test%2Fjalview%2Fgui%2FAlignViewportTest.java;h=fc6a80dae6b5b6c70fab471323d23a17dba10c9d;hb=5bad8435fd8ef2481b42814d876c12d4f52f0620;hp=959abb086155807e590011b6265180df5a9a7e90;hpb=f5bf054e21d902fc452fd235c2901969562f21ce;p=jalview.git diff --git a/test/jalview/gui/AlignViewportTest.java b/test/jalview/gui/AlignViewportTest.java index 959abb0..fc6a80d 100644 --- a/test/jalview/gui/AlignViewportTest.java +++ b/test/jalview/gui/AlignViewportTest.java @@ -511,4 +511,71 @@ public class AlignViewportTest assertEquals(0, ranges.getStartSeq()); assertEquals(2, ranges.getEndSeq()); } + + @Test(groups = { "Functional" }) + public void testGetAbsoluteColumn() + { + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + AlignViewport av = af.getViewport(); + ViewportRanges ranges = av.getRanges(); + assertEquals(0, ranges.getStartRes()); + assertEquals(59, ranges.getEndRes()); // 60 columns wide + + int cw = av.getCharWidth(); + assertEquals(0, av.getAbsoluteColumn(0)); + assertEquals(0, av.getAbsoluteColumn(cw - 1)); + assertEquals(1, av.getAbsoluteColumn(cw)); + + // negative x is treated as zero: + assertEquals(0, av.getAbsoluteColumn(-20)); + + // x to the right of panel is restricted to panel width: + assertEquals(59, av.getAbsoluteColumn(100 * cw)); + + // scroll right by 10 columns + af.alignPanel.setScrollValues(10, 0); + assertEquals(10, av.getAbsoluteColumn(0)); + assertEquals(10, av.getAbsoluteColumn(cw - 1)); + assertEquals(11, av.getAbsoluteColumn(cw)); + assertEquals(10, av.getAbsoluteColumn(-20)); + assertEquals(69, av.getAbsoluteColumn(100 * cw)); + } + + @Test( + groups = + { "Functional" }, + expectedExceptions = + { IllegalStateException.class }) + public void testGetAbsoluteColumn_wrapped() + { + testee.setWrapAlignment(true); + testee.getAbsoluteColumn(0); + } + + @Test(groups = { "Functional" }) + public void testGetAbsoluteColumn_hiddenColumns() + { + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + AlignViewport av = af.getViewport(); + ViewportRanges ranges = av.getRanges(); + assertEquals(0, ranges.getStartRes()); + assertEquals(59, ranges.getEndRes()); // 60 columns wide + + av.hideColumns(11, 40); // 30 columns hidden, cols 0-10 visible + int cw = av.getCharWidth(); + assertEquals(0, av.getAbsoluteColumn(0)); + assertEquals(10, av.getAbsoluteColumn(10 * cw)); // left of hidden cols + assertEquals(41, av.getAbsoluteColumn(11 * cw)); // skipped 30 hidden + + // scroll right by 11 columns - to just past hidden columns marker + af.alignPanel.setScrollValues(11, 0); + assertEquals(41, av.getAbsoluteColumn(0)); + + // hide absolute columns 60-70 (visible columns 19-29) + av.hideColumns(60, 70); + assertEquals(59, av.getAbsoluteColumn(18 * cw)); + assertEquals(71, av.getAbsoluteColumn(19 * cw)); // skipped 11 hidden + } }