X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=test%2Fjalview%2Fgui%2FAlignViewportTest.java;fp=test%2Fjalview%2Fgui%2FAlignViewportTest.java;h=08e98115150fed7755b26803fedd5753280495e4;hb=db93a1adcbe0a4eaaf06e0a70ade0d6c5c1961c3;hp=da3e5fc19e399a893274f975091a0a92343e0f4c;hpb=a90e2fe3cc3b779521a81cf8de410936f3a777c1;p=jalview.git diff --git a/test/jalview/gui/AlignViewportTest.java b/test/jalview/gui/AlignViewportTest.java index da3e5fc..08e9811 100644 --- a/test/jalview/gui/AlignViewportTest.java +++ b/test/jalview/gui/AlignViewportTest.java @@ -26,9 +26,13 @@ import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertSame; import static org.testng.AssertJUnit.assertTrue; +import jalview.bin.Cache; +import jalview.bin.Jalview; import jalview.datamodel.AlignedCodonFrame; import jalview.datamodel.Alignment; +import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; +import jalview.datamodel.Annotation; import jalview.datamodel.PDBEntry; import jalview.datamodel.PDBEntry.Type; import jalview.datamodel.Sequence; @@ -36,9 +40,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; @@ -54,8 +59,7 @@ public class AlignViewportTest @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { - jalview.bin.Jalview.main(new String[] { "-props", - "test/jalview/testProps.jvprops" }); + Jalview.main(new String[] { "-props", "test/jalview/testProps.jvprops" }); } @BeforeMethod(alwaysRun = true) @@ -73,15 +77,16 @@ public class AlignViewportTest @Test(groups = { "Functional" }) public void testCollateForPdb() { + // JBP: What behaviour is this supposed to test ? /* * Set up sequence pdb ids */ - PDBEntry pdb1 = new PDBEntry("1ABC", "A", Type.PDB, "1ABC.pdb"); - PDBEntry pdb2 = new PDBEntry("2ABC", "A", Type.PDB, "2ABC.pdb"); - PDBEntry pdb3 = new PDBEntry("3ABC", "A", Type.PDB, "3ABC.pdb"); + PDBEntry pdb1 = new PDBEntry("1ABC", "B", Type.PDB, "1ABC.pdb"); + PDBEntry pdb2 = new PDBEntry("2ABC", "C", Type.PDB, "2ABC.pdb"); + PDBEntry pdb3 = new PDBEntry("3ABC", "D", Type.PDB, "3ABC.pdb"); /* - * seq1 and seq3 refer to 1ABC, seq2 to 2ABC, none to 3ABC + * seq1 and seq3 refer to 1abcB, seq2 to 2abcC, none to 3abcD */ al.getSequenceAt(0).getDatasetSequence() .addPDBId(new PDBEntry("1ABC", "B", Type.PDB, "1ABC.pdb")); @@ -133,10 +138,15 @@ 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(); + acf2.addMap(s1, s1, new MapList(new int[] { 1, 4 }, new int[] { 4, 1 }, + 1, 1)); - Set mappings = new LinkedHashSet(); + List mappings = new ArrayList(); mappings.add(acf1); mappings.add(acf2); af1.getViewport().getAlignment().setCodonFrames(mappings); @@ -148,18 +158,18 @@ public class AlignViewportTest */ 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)); } /** @@ -178,16 +188,26 @@ 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(); + acf3.addMap(cs2, cs2, new MapList(new int[] { 1, 12 }, new int[] { 1, + 12 }, 1, 1)); - Set mappings1 = new LinkedHashSet(); + 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); @@ -196,7 +216,7 @@ public class AlignViewportTest * 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()); @@ -231,17 +251,27 @@ 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(); + acf3.addMap(cs2, cs2, new MapList(new int[] { 1, 12 }, new int[] { 1, + 12 }, 1, 1)); - Set mappings1 = new LinkedHashSet(); + 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); @@ -250,7 +280,7 @@ public class AlignViewportTest * 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()); @@ -270,4 +300,33 @@ public class AlignViewportTest assertTrue(ssmMappings.contains(acf2)); assertFalse(ssmMappings.contains(acf3)); } + + /** + * Test for JAL-1306 - conservation thread should run even when only Quality + * (and not Conservation) is enabled in Preferences + */ + @Test(groups = { "Functional" }) + public void testUpdateConservation_qualityOnly() + { + Cache.applicationProperties.setProperty("SHOW_ANNOTATIONS", + Boolean.TRUE.toString()); + Cache.applicationProperties.setProperty("SHOW_QUALITY", + Boolean.TRUE.toString()); + Cache.applicationProperties.setProperty("SHOW_CONSERVATION", + Boolean.FALSE.toString()); + Cache.applicationProperties.setProperty("SHOW_IDENTITY", + Boolean.FALSE.toString()); + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", FormatAdapter.FILE); + AlignmentAnnotation[] anns = af.viewport.getAlignment() + .getAlignmentAnnotation(); + assertNotNull("No annotations found", anns); + assertEquals("More than one annotation found", 1, anns.length); + assertTrue("Annotation is not Quality", + anns[0].description.startsWith("Alignment Quality")); + Annotation[] annotations = anns[0].annotations; + assertNotNull("Quality annotations are null", annotations); + assertNotNull("Quality in column 1 is null", annotations[0]); + assertTrue("No quality value in column 1", annotations[0].value > 10f); + } }