X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FAlignmentViewTest.java;fp=test%2Fjalview%2Fdatamodel%2FAlignmentViewTest.java;h=b201c7eb1f19cd9f4cbe9055a10c5328d1c0ff24;hb=d54f8d3b0bf910b99991441485fd5d42acf1df7d;hp=594d6e6adb800c8372646306128620bc227e19f1;hpb=27b32113c6ffa2f60392633eb9f69de96f40d2d5;p=jalview.git diff --git a/test/jalview/datamodel/AlignmentViewTest.java b/test/jalview/datamodel/AlignmentViewTest.java index 594d6e6..b201c7e 100644 --- a/test/jalview/datamodel/AlignmentViewTest.java +++ b/test/jalview/datamodel/AlignmentViewTest.java @@ -22,7 +22,11 @@ package jalview.datamodel; import static org.testng.Assert.assertEquals; +import jalview.gui.AlignFrame; +import jalview.gui.AlignViewport; import jalview.gui.JvOptionPane; +import jalview.io.DataSourceType; +import jalview.io.FileLoader; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -50,4 +54,69 @@ public class AlignmentViewTest assertEquals(av.getVisibleAlignment('$').getSequenceAt(0) .getSequenceAsString(), "A$$CDE"); } + + @Test(groups = { "Functional" }) + public void testGetVisibleContigs() + { + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + ">s1\n0123456789\n", DataSourceType.PASTE); + AlignViewport av = af.getViewport(); + AlignmentView view = av.getAlignmentView(true); + + /* + * verify getVisibleContigs returns inclusive [start, end] ranges + * + * no columns hidden + */ + int[] contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 0, 9 }); + + /* + * hide 3 internal columns + */ + av.hideColumns(5, 7); + // the old AlignmentView is now stale! + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 0, 9 }); + // get a fresh AlignmentView + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 0, 4, 8, 9 }); + + // hide first 2 columns + av.hideColumns(0, 1); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 2, 4, 8, 9 }); + + // hide last column + av.hideColumns(9, 9); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 2, 4, 8, 8 }); + + // unhide columns 5-7 + av.showColumn(5); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 2, 8 }); + + // hide columns 2-7 + av.hideColumns(2, 7); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 8, 8 }); + + // hide column 8 + av.hideColumns(8, 8); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] {}); + + // unhide all + av.showAllHiddenColumns(); + view = av.getAlignmentView(true); + contigs = view.getVisibleContigs(); + assertEquals(contigs, new int[] { 0, 9 }); + } }