X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fgui%2FAlignViewportTest.java;h=dc9113c4b81eeebe6df28b98f24c7405a682ed3b;hb=d2b08d9048af25114cff8deabbd320471119d88d;hp=0b5840cd796dae7eb53a74d9cdb430d310e13a91;hpb=c4fdef7e109bac9f1da72ec3954a17a931f163df;p=jalview.git diff --git a/test/jalview/gui/AlignViewportTest.java b/test/jalview/gui/AlignViewportTest.java index 0b5840c..dc9113c 100644 --- a/test/jalview/gui/AlignViewportTest.java +++ b/test/jalview/gui/AlignViewportTest.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.gui; import static org.testng.AssertJUnit.assertEquals; @@ -16,9 +36,10 @@ import jalview.datamodel.SequenceI; import jalview.io.FileLoader; import jalview.io.FormatAdapter; import jalview.structure.StructureSelectionManager; +import jalview.util.MapList; -import java.util.LinkedHashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.List; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; @@ -28,6 +49,7 @@ public class AlignViewportTest { AlignmentI al; + AlignViewport testee; @BeforeClass(alwaysRun = true) @@ -37,20 +59,19 @@ public class AlignViewportTest "test/jalview/testProps.jvprops" }); } - @BeforeMethod(alwaysRun = true) + @BeforeMethod(alwaysRun = true) public void setUp() { SequenceI seq1 = new Sequence("Seq1", "ABC"); SequenceI seq2 = new Sequence("Seq2", "ABC"); SequenceI seq3 = new Sequence("Seq3", "ABC"); - SequenceI[] seqs = new SequenceI[] - { seq1, seq2, seq3 }; + SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3 }; al = new Alignment(seqs); al.setDataset(null); testee = new AlignViewport(al); } - @Test(groups ={ "Functional" }) + @Test(groups = { "Functional" }) public void testCollateForPdb() { /* @@ -64,14 +85,11 @@ public class AlignViewportTest * seq1 and seq3 refer to 1ABC, seq2 to 2ABC, none to 3ABC */ al.getSequenceAt(0).getDatasetSequence() - .addPDBId( - new PDBEntry("1ABC", "B", Type.PDB, "1ABC.pdb")); + .addPDBId(new PDBEntry("1ABC", "B", Type.PDB, "1ABC.pdb")); al.getSequenceAt(2).getDatasetSequence() - .addPDBId( - new PDBEntry("1ABC", "B", Type.PDB, "1ABC.pdb")); + .addPDBId(new PDBEntry("1ABC", "B", Type.PDB, "1ABC.pdb")); al.getSequenceAt(1).getDatasetSequence() - .addPDBId( - new PDBEntry("2ABC", "C", Type.PDB, "2ABC.pdb")); + .addPDBId(new PDBEntry("2ABC", "C", Type.PDB, "2ABC.pdb")); /* * Add a second chain PDB xref to Seq2 - should not result in a duplicate in * the results @@ -87,8 +105,8 @@ public class AlignViewportTest /* * run method under test */ - SequenceI[][] seqs = testee.collateForPDB(new PDBEntry[] - { pdb1, pdb2, pdb3 }); + SequenceI[][] seqs = testee.collateForPDB(new PDBEntry[] { pdb1, pdb2, + pdb3 }); // seq1 and seq3 refer to PDBEntry[0] assertEquals(2, seqs[0].length); @@ -107,7 +125,7 @@ public class AlignViewportTest * Test that a mapping is not deregistered when a second view is closed but * the first still holds a reference to the mapping */ - @Test(groups ={ "Functional" }) + @Test(groups = { "Functional" }) public void testDeregisterMapping_onCloseView() { /* @@ -115,40 +133,45 @@ public class AlignViewportTest */ AlignFrame af1 = new FileLoader().LoadFileWaitTillLoaded( ">Seq1\nCAGT\n", FormatAdapter.PASTE); - + + SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0); AlignedCodonFrame acf1 = new AlignedCodonFrame(); + acf1.addMap(s1, s1, new MapList(new int[] { 1, 4 }, new int[] { 1, 4 }, + 1, 1)); AlignedCodonFrame acf2 = new AlignedCodonFrame(); - - Set mappings = new LinkedHashSet(); + acf2.addMap(s1, s1, new MapList(new int[] { 1, 4 }, new int[] { 4, 1 }, + 1, 1)); + + List mappings = new ArrayList(); mappings.add(acf1); mappings.add(acf2); af1.getViewport().getAlignment().setCodonFrames(mappings); af1.newView_actionPerformed(null); - + /* * Verify that creating the alignment for the new View has registered the * mappings */ StructureSelectionManager ssm = StructureSelectionManager .getStructureSelectionManager(Desktop.instance); - assertEquals(2, ssm.seqmappings.size()); - assertTrue(ssm.seqmappings.contains(acf1)); - assertTrue(ssm.seqmappings.contains(acf2)); - + assertEquals(2, ssm.getSequenceMappings().size()); + assertTrue(ssm.getSequenceMappings().contains(acf1)); + assertTrue(ssm.getSequenceMappings().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.seqmappings.size()); - assertTrue(ssm.seqmappings.contains(acf1)); - assertTrue(ssm.seqmappings.contains(acf2)); + assertEquals(2, ssm.getSequenceMappings().size()); + assertTrue(ssm.getSequenceMappings().contains(acf1)); + assertTrue(ssm.getSequenceMappings().contains(acf2)); } /** * Test that a mapping is deregistered if no alignment holds a reference to it */ - @Test(groups ={ "Functional" }) + @Test(groups = { "Functional" }) public void testDeregisterMapping_withNoReference() { Desktop d = Desktop.instance; @@ -161,25 +184,35 @@ public class AlignViewportTest ">Seq1\nRSVQ\n", FormatAdapter.PASTE); AlignFrame af2 = new FileLoader().LoadFileWaitTillLoaded( ">Seq2\nDGEL\n", FormatAdapter.PASTE); - + SequenceI cs1 = new Sequence("cseq1", "CCCGGGTTTAAA"); + SequenceI cs2 = new Sequence("cseq2", "CTTGAGTCTAGA"); + SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0); + SequenceI s2 = af2.getViewport().getAlignment().getSequenceAt(0); + // need to be distinct AlignedCodonFrame acf1 = new AlignedCodonFrame(); + acf1.addMap(cs1, s1, new MapList(new int[] { 1, 4 }, + new int[] { 1, 12 }, 1, 3)); AlignedCodonFrame acf2 = new AlignedCodonFrame(); + acf2.addMap(cs2, s2, new MapList(new int[] { 1, 4 }, + new int[] { 1, 12 }, 1, 3)); AlignedCodonFrame acf3 = new AlignedCodonFrame(); - - Set mappings1 = new LinkedHashSet(); + acf3.addMap(cs2, cs2, new MapList(new int[] { 1, 12 }, new int[] { 1, + 12 }, 1, 1)); + + List mappings1 = new ArrayList(); mappings1.add(acf1); af1.getViewport().getAlignment().setCodonFrames(mappings1); - Set mappings2 = new LinkedHashSet(); + List mappings2 = new ArrayList(); mappings2.add(acf2); mappings2.add(acf3); af2.getViewport().getAlignment().setCodonFrames(mappings2); - + /* * AlignFrame1 has mapping acf1, AlignFrame2 has acf2 and acf3 */ - Set ssmMappings = ssm.seqmappings; + List ssmMappings = ssm.getSequenceMappings(); assertEquals(0, ssmMappings.size()); ssm.registerMapping(acf1); assertEquals(1, ssmMappings.size()); @@ -201,7 +234,7 @@ public class AlignViewportTest * Test that a mapping is not deregistered if another alignment holds a * reference to it */ - @Test(groups ={ "Functional" }) + @Test(groups = { "Functional" }) public void testDeregisterMapping_withReference() { Desktop d = Desktop.instance; @@ -209,31 +242,41 @@ public class AlignViewportTest StructureSelectionManager ssm = StructureSelectionManager .getStructureSelectionManager(Desktop.instance); ssm.resetAll(); - + AlignFrame af1 = new FileLoader().LoadFileWaitTillLoaded( ">Seq1\nRSVQ\n", FormatAdapter.PASTE); AlignFrame af2 = new FileLoader().LoadFileWaitTillLoaded( ">Seq2\nDGEL\n", FormatAdapter.PASTE); - + SequenceI cs1 = new Sequence("cseq1", "CCCGGGTTTAAA"); + SequenceI cs2 = new Sequence("cseq2", "CTTGAGTCTAGA"); + SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0); + SequenceI s2 = af2.getViewport().getAlignment().getSequenceAt(0); + // need to be distinct AlignedCodonFrame acf1 = new AlignedCodonFrame(); + acf1.addMap(cs1, s1, new MapList(new int[] { 1, 4 }, + new int[] { 1, 12 }, 1, 3)); AlignedCodonFrame acf2 = new AlignedCodonFrame(); + acf2.addMap(cs2, s2, new MapList(new int[] { 1, 4 }, + new int[] { 1, 12 }, 1, 3)); AlignedCodonFrame acf3 = new AlignedCodonFrame(); - - Set mappings1 = new LinkedHashSet(); + acf3.addMap(cs2, cs2, new MapList(new int[] { 1, 12 }, new int[] { 1, + 12 }, 1, 1)); + + List mappings1 = new ArrayList(); mappings1.add(acf1); mappings1.add(acf2); af1.getViewport().getAlignment().setCodonFrames(mappings1); - - Set mappings2 = new LinkedHashSet(); + + List mappings2 = new ArrayList(); mappings2.add(acf2); mappings2.add(acf3); af2.getViewport().getAlignment().setCodonFrames(mappings2); - + /* * AlignFrame1 has mappings acf1 and acf2, AlignFrame2 has acf2 and acf3 */ - - Set ssmMappings = ssm.seqmappings; + + List ssmMappings = ssm.getSequenceMappings(); assertEquals(0, ssmMappings.size()); ssm.registerMapping(acf1); assertEquals(1, ssmMappings.size()); @@ -241,7 +284,7 @@ public class AlignViewportTest assertEquals(2, ssmMappings.size()); ssm.registerMapping(acf3); assertEquals(3, ssmMappings.size()); - + /* * Closing AlignFrame2 should remove mapping acf3 from * StructureSelectionManager, but not acf2, since AlignFrame1 still has a