X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fgui%2FAlignViewportTest.java;h=812fd8ff5e6e63436f7994fce03ee6751e357237;hb=e3f8846ad3af97c5b26e09f7a4e3bcc901f758ca;hp=e6c16b7fac0d6723bc00bc9a5cd20fa7b477ef42;hpb=05c426f2c673337b28eec19858179159124a6c48;p=jalview.git diff --git a/test/jalview/gui/AlignViewportTest.java b/test/jalview/gui/AlignViewportTest.java index e6c16b7..812fd8f 100644 --- a/test/jalview/gui/AlignViewportTest.java +++ b/test/jalview/gui/AlignViewportTest.java @@ -46,6 +46,7 @@ import jalview.schemes.ColourSchemeI; import jalview.schemes.PIDColourScheme; import jalview.structure.StructureSelectionManager; import jalview.util.MapList; +import jalview.viewmodel.ViewportRanges; import java.util.ArrayList; import java.util.List; @@ -74,6 +75,13 @@ public class AlignViewportTest { Jalview.main(new String[] { "-nonews", "-props", "test/jalview/testProps.jvprops" }); + + /* + * remove any sequence mappings left lying around by other tests + */ + StructureSelectionManager ssm = StructureSelectionManager + .getStructureSelectionManager(Desktop.instance); + ssm.resetAll(); } @BeforeMethod(alwaysRun = true) @@ -160,7 +168,7 @@ public class AlignViewportTest acf2.addMap(s1, s1, new MapList(new int[] { 1, 4 }, new int[] { 4, 1 }, 1, 1)); - List mappings = new ArrayList(); + List mappings = new ArrayList<>(); mappings.add(acf1); mappings.add(acf2); af1.getViewport().getAlignment().setCodonFrames(mappings); @@ -172,18 +180,19 @@ public class AlignViewportTest */ StructureSelectionManager ssm = StructureSelectionManager .getStructureSelectionManager(Desktop.instance); - assertEquals(2, ssm.getSequenceMappings().size()); - assertTrue(ssm.getSequenceMappings().contains(acf1)); - assertTrue(ssm.getSequenceMappings().contains(acf2)); + List sequenceMappings = ssm.getSequenceMappings(); + assertEquals(2, sequenceMappings.size()); + assertTrue(sequenceMappings.contains(acf1)); + assertTrue(sequenceMappings.contains(acf2)); /* * Close the second view. Verify that mappings are not removed as the first * view still holds a reference to them. */ af1.closeMenuItem_actionPerformed(false); - assertEquals(2, ssm.getSequenceMappings().size()); - assertTrue(ssm.getSequenceMappings().contains(acf1)); - assertTrue(ssm.getSequenceMappings().contains(acf2)); + assertEquals(2, sequenceMappings.size()); + assertTrue(sequenceMappings.contains(acf1)); + assertTrue(sequenceMappings.contains(acf2)); } /** @@ -217,11 +226,11 @@ public class AlignViewportTest acf3.addMap(cs2, cs2, new MapList(new int[] { 1, 12 }, new int[] { 1, 12 }, 1, 1)); - List mappings1 = new ArrayList(); + List mappings1 = new ArrayList<>(); mappings1.add(acf1); af1.getViewport().getAlignment().setCodonFrames(mappings1); - List mappings2 = new ArrayList(); + List mappings2 = new ArrayList<>(); mappings2.add(acf2); mappings2.add(acf3); af2.getViewport().getAlignment().setCodonFrames(mappings2); @@ -280,12 +289,12 @@ public class AlignViewportTest acf3.addMap(cs2, cs2, new MapList(new int[] { 1, 12 }, new int[] { 1, 12 }, 1, 1)); - List mappings1 = new ArrayList(); + List mappings1 = new ArrayList<>(); mappings1.add(acf1); mappings1.add(acf2); af1.getViewport().getAlignment().setCodonFrames(mappings1); - List mappings2 = new ArrayList(); + List mappings2 = new ArrayList<>(); mappings2.add(acf2); mappings2.add(acf3); af2.getViewport().getAlignment().setCodonFrames(mappings2); @@ -389,7 +398,8 @@ public class AlignViewportTest /** * Verify that setting the selection group has the side-effect of setting the - * context on the group, unless it already has one + * context on the group, unless it already has one, but does not change + * whether the group is defined or not. */ @Test(groups = { "Functional" }) public void testSetSelectionGroup() @@ -399,13 +409,21 @@ public class AlignViewportTest AlignViewport av = af.getViewport(); SequenceGroup sg1 = new SequenceGroup(); SequenceGroup sg2 = new SequenceGroup(); + SequenceGroup sg3 = new SequenceGroup(); av.setSelectionGroup(sg1); assertSame(sg1.getContext(), av.getAlignment()); // context set + assertFalse(sg1.isDefined()); // group not defined - sg2.setContext(sg1); + sg2.setContext(sg1, false); av.setSelectionGroup(sg2); + assertFalse(sg2.isDefined()); // unchanged assertSame(sg2.getContext(), sg1); // unchanged + + // create a defined group + sg3.setContext(av.getAlignment(), true); + av.setSelectionGroup(sg3); + assertTrue(sg3.isDefined()); // unchanged } /** * Verify that setting/clearing SHOW_OCCUPANCY preference adds or omits occupancy row from viewport @@ -441,6 +459,65 @@ public class AlignViewportTest } ; Assert.assertEquals(c, 1, "Expected to find one occupancy row."); + } + + @Test(groups = { "Functional" }) + public void testGetConsensusSeq() + { + /* + * A-C + * A-C + * A-D + * --D + * consensus expected to be A-C + */ + String fasta = ">s1\nA-C\n>s2\nA-C\n>s3\nA-D\n>s4\n--D\n"; + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(fasta, + DataSourceType.PASTE); + AlignViewport testme = af.getViewport(); + SequenceI cons = testme.getConsensusSeq(); + assertEquals("A-C", cons.getSequenceAsString()); + } + @Test(groups = { "Functional" }) + public void testHideRevealSequences() + { + ViewportRanges ranges = testee.getRanges(); + assertEquals(3, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(2, ranges.getEndSeq()); + + /* + * hide first sequence + */ + testee.hideSequence(new SequenceI[] { al.getSequenceAt(0) }); + assertEquals(2, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(1, ranges.getEndSeq()); + + /* + * reveal hidden sequences above the first + */ + testee.showSequence(0); + assertEquals(3, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(2, ranges.getEndSeq()); + + /* + * hide first and third sequences + */ + testee.hideSequence(new SequenceI[] { al.getSequenceAt(0), + al.getSequenceAt(2) }); + assertEquals(1, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(0, ranges.getEndSeq()); + + /* + * reveal all hidden sequences + */ + testee.showAllHiddenSeqs(); + assertEquals(3, al.getHeight()); + assertEquals(0, ranges.getStartSeq()); + assertEquals(2, ranges.getEndSeq()); } }