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
+ }
}