From 92d99447831c6e1a48c5122e88f5931ab5fcaacb Mon Sep 17 00:00:00 2001 From: gmungoc Date: Tue, 19 Nov 2019 14:26:47 +0000 Subject: [PATCH 1/1] JAL-3484 tests for load project with changed autocalc Preferences --- test/jalview/project/Jalview2xmlTests.java | 152 ++++++++++++++++++++++++---- 1 file changed, 135 insertions(+), 17 deletions(-) diff --git a/test/jalview/project/Jalview2xmlTests.java b/test/jalview/project/Jalview2xmlTests.java index d902fa2..57cade5 100644 --- a/test/jalview/project/Jalview2xmlTests.java +++ b/test/jalview/project/Jalview2xmlTests.java @@ -32,8 +32,10 @@ import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.api.FeatureColourI; import jalview.api.ViewStyleI; +import jalview.bin.Cache; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; +import jalview.datamodel.Annotation; import jalview.datamodel.HiddenSequences; import jalview.datamodel.PDBEntry; import jalview.datamodel.PDBEntry.Type; @@ -99,7 +101,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase } @Test(groups = { "Functional" }) - public void testRNAStructureRecovery() throws Exception + public void testRestoreRNAStructure() throws Exception { String inFile = "examples/RF00031_folded.stk"; String tfile = File.createTempFile("JalviewTest", ".jvp") @@ -137,7 +139,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase } @Test(groups = { "Functional" }) - public void testTCoffeeScores() throws Exception + public void testRestoreTCoffeeColouring() throws Exception { String inFile = "examples/uniref50.fa", inAnnot = "examples/uniref50.score_ascii"; @@ -172,7 +174,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase } @Test(groups = { "Functional" }) - public void testColourByAnnotScores() throws Exception + public void testRestoreColourByAnnotion() throws Exception { String inFile = "examples/uniref50.fa", inAnnot = "examples/testdata/uniref50_iupred.jva"; @@ -400,7 +402,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase * @throws Exception */ @Test(groups = { "Functional" }, enabled = true) - public void testStoreAndRecoverExpandedviews() throws Exception + public void testRestoreExpandedviews() throws Exception { Desktop.instance.closeAll_actionPerformed(null); @@ -419,7 +421,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase int oldviews = Desktop.getAlignFrames().length; Assert.assertEquals(Desktop.getAlignFrames().length, Desktop.getAlignmentPanels(afid).length); - File tfile = File.createTempFile("testStoreAndRecoverExpanded", ".jvp"); + File tfile = File.createTempFile("testRestoreExpandedviews", ".jvp"); try { new Jalview2XML(false).saveState(tfile); @@ -454,7 +456,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase * @throws Exception */ @Test(groups = { "Functional" }) - public void testStoreAndRecoverReferenceSeqSettings() throws Exception + public void testRestoreReferenceSeqSettings() throws Exception { Desktop.instance.closeAll_actionPerformed(null); AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( @@ -486,7 +488,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase n++; } - File tfile = File.createTempFile("testStoreAndRecoverReferenceSeq", + File tfile = File.createTempFile("testRestoreReferenceSeqSettings", ".jvp"); try { @@ -587,7 +589,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase * @throws Exception */ @Test(groups = { "Functional" }) - public void testStoreAndRecoverGroupRepSeqs() throws Exception + public void testRestoreGroupRepSeqs() throws Exception { Desktop.instance.closeAll_actionPerformed(null); AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( @@ -655,8 +657,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase n++; } - File tfile = File.createTempFile("testStoreAndRecoverGroupReps", - ".jvp"); + File tfile = File.createTempFile("testRestoreGroupRepSeqs", ".jvp"); try { new Jalview2XML(false).saveState(tfile); @@ -707,7 +708,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase * @throws Exception */ @Test(groups = { "Functional" }) - public void testStoreAndRecoverPDBEntry() throws Exception + public void testRestorePDBEntry() throws Exception { Desktop.instance.closeAll_actionPerformed(null); String exampleFile = "examples/3W5V.pdb"; @@ -750,7 +751,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase seqs[3].getDatasetSequence().getAllPDBEntries().get(0), pdbEntries[3]); - File tfile = File.createTempFile("testStoreAndRecoverPDBEntry", ".jvp"); + File tfile = File.createTempFile("testRestorePDBEntry", ".jvp"); try { new Jalview2XML(false).saveState(tfile); @@ -807,7 +808,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase * @throws IOException */ @Test(groups = { "Functional" }) - public void testStoreAndRecoverColourThresholds() throws IOException + public void testRestoreColourThresholds() throws IOException { Desktop.instance.closeAll_actionPerformed(null); AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( @@ -865,7 +866,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase /* * save project, close windows, reload project, verify */ - File tfile = File.createTempFile("testStoreAndRecoverColourThresholds", + File tfile = File.createTempFile("testRestoreColourThresholds", ".jvp"); tfile.deleteOnExit(); new Jalview2XML(false).saveState(tfile); @@ -901,7 +902,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase * @throws IOException */ @Test(groups = { "Functional" }) - public void testSaveLoadFeatureColoursAndFilters() throws IOException + public void testRestoreFeatureColoursAndFilters() throws IOException { AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( ">Seq1\nACDEFGHIKLM", DataSourceType.PASTE); @@ -1119,12 +1120,13 @@ public class Jalview2xmlTests extends Jalview2xmlBase } @Test(groups = "Functional") - public void testPcaViewAssociation() throws IOException + public void testRestorePCAViewAssociation() throws IOException { Desktop.instance.closeAll_actionPerformed(null); final String PCAVIEWNAME = "With PCA"; // create a new tempfile - File tempfile = File.createTempFile("jvPCAviewAssoc", "jvp"); + File tempfile = File.createTempFile("testRestorePCAViewAssociation", + "jvp"); { String exampleFile = "examples/uniref50.fa"; @@ -1179,4 +1181,120 @@ public class Jalview2xmlTests extends Jalview2xmlBase .getAlignViewport(), "Didn't restore correct view association for the PCA view"); } + + /** + * Test that annotation ordering is faithfully restored + * + * @throws Exception + */ + @Test(groups = { "Functional" }) + public void testRestoreAnnotationOrdering() throws Exception + { + Desktop.instance.closeAll_actionPerformed(null); + Cache.setProperty("SHOW_ANNOTATION", "true"); + Cache.setProperty("SHOW_CONSERVATION", "true"); + Cache.setProperty("SHOW_QUALITY", "false"); + Cache.setProperty("SHOW_IDENTITY", "false"); + Cache.setProperty("SHOW_OCCUPANCY", "true"); + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + "examples/uniref50.fa", DataSourceType.FILE); + assertNotNull(af, "Didn't read in the example file correctly."); + + AlignFrame[] afs = Desktop.getAlignFrames(); + assertEquals(afs.length, 1); + AlignmentI alignment = afs[0].getViewport().getAlignment(); + AlignmentAnnotation[] anns = alignment.getAlignmentAnnotation(); + assertEquals(anns.length, 2); + + /* + * this order is hard wired in AlignmentViewport.initAutoAnnotation() + */ + assertEquals(anns[0].label, "Conservation"); + assertEquals(anns[1].label, "Occupancy"); + + /* + * add two user annotations, adjust order, height and visibility + */ + AlignmentAnnotation tmp = anns[0]; + anns[0] = anns[1]; + anns[1] = tmp; + Annotation[] an1 = new Annotation[] { new Annotation(2f) }; + Annotation[] an2 = new Annotation[] { new Annotation(3f) }; + alignment.addAnnotation(new AlignmentAnnotation("hello", "desc1", an1), + 1); + alignment.addAnnotation(new AlignmentAnnotation("world", "desc2", an2), + 3); + anns = alignment.getAlignmentAnnotation(); + assertEquals(anns[0].label, "Occupancy"); + assertEquals(anns[1].label, "hello"); + assertEquals(anns[2].label, "Conservation"); + assertEquals(anns[3].label, "world"); + anns[0].graphHeight = 60; + anns[0].visible = false; + anns[1].graphHeight = 70; + anns[2].graphHeight = 80; + anns[3].graphHeight = 90; + anns[3].visible = false; + + /* + * save project to temporary file and reload on to an empty desktop, + * verify annotation order, height and visibility is restored + */ + File projectFile = File.createTempFile("jvTest", ".jvp"); + new Jalview2XML(false).saveState(projectFile); + Desktop.instance.closeAll_actionPerformed(null); + if (Desktop.getAlignFrames() != null) + { + Assert.assertEquals(Desktop.getAlignFrames().length, 0); + } + + af = new FileLoader().LoadFileWaitTillLoaded( + projectFile.getAbsolutePath(), + DataSourceType.FILE); + anns = af.getViewport().getAlignment().getAlignmentAnnotation(); + assertEquals(anns.length, 4); + assertEquals(anns[0].label, "Occupancy"); + assertEquals(anns[1].label, "hello"); + assertEquals(anns[2].label, "Conservation"); + assertEquals(anns[3].label, "world"); + assertEquals(anns[0].graphHeight, 60); + assertEquals(anns[1].graphHeight, 70); + assertEquals(anns[2].graphHeight, 80); + assertEquals(anns[3].graphHeight, 90); + assertFalse(anns[0].visible); + assertTrue(anns[1].visible); + assertTrue(anns[2].visible); + assertFalse(anns[3].visible); + + /* + * reload the project with Preferences set to not create Occupancy; + * this should still appear, as it is in the saved project + */ + Desktop.instance.closeAll_actionPerformed(null); + Cache.setProperty("SHOW_OCCUPANCY", "false"); + af = new FileLoader().LoadFileWaitTillLoaded( + projectFile.getAbsolutePath(), DataSourceType.FILE); + anns = af.getViewport().getAlignment().getAlignmentAnnotation(); + assertEquals(anns.length, 4); + assertEquals(anns[0].label, "Occupancy"); + assertEquals(anns[1].label, "hello"); + assertEquals(anns[2].label, "Conservation"); + assertEquals(anns[3].label, "world"); + + /* + * reload the project with Preferences set to create Quality annotation; + * this should not appear, as it is not in the saved project + */ + Desktop.instance.closeAll_actionPerformed(null); + Cache.setProperty("SHOW_OCCUPANCY", "false"); + Cache.setProperty("SHOW_QUALITY", "true"); + af = new FileLoader().LoadFileWaitTillLoaded( + projectFile.getAbsolutePath(), DataSourceType.FILE); + anns = af.getViewport().getAlignment().getAlignmentAnnotation(); + assertEquals(anns.length, 4); + assertEquals(anns[0].label, "Occupancy"); + assertEquals(anns[1].label, "hello"); + assertEquals(anns[2].label, "Conservation"); + assertEquals(anns[3].label, "world"); + } } -- 1.7.10.2