X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fproject%2FJalview2xmlTests.java;fp=test%2Fjalview%2Fproject%2FJalview2xmlTests.java;h=510b21d642e713db46cf60fc6d63ea119b35bfc2;hb=8b5145f0837eeaeb1f029de179a3715a174dfa09;hp=c070edb3fda271339dfd4e817bc01e04d8cac82d;hpb=969fe2931a113706ddd06888213c8f71f546d325;p=jalview.git diff --git a/test/jalview/project/Jalview2xmlTests.java b/test/jalview/project/Jalview2xmlTests.java index c070edb..510b21d 100644 --- a/test/jalview/project/Jalview2xmlTests.java +++ b/test/jalview/project/Jalview2xmlTests.java @@ -54,6 +54,9 @@ import jalview.bin.Cache; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; +import jalview.datamodel.ContactListI; +import jalview.datamodel.ContactMatrix; +import jalview.datamodel.ContactMatrixI; import jalview.datamodel.DBRefEntry; import jalview.datamodel.GeneLocus; import jalview.datamodel.HiddenSequences; @@ -97,6 +100,7 @@ import jalview.util.MapList; import jalview.util.matcher.Condition; import jalview.viewmodel.AlignmentViewport; import jalview.viewmodel.seqfeatures.FeatureRendererModel; +import jalview.ws.datamodel.alphafold.PAEContactMatrix; @Test(singleThreaded = true) public class Jalview2xmlTests extends Jalview2xmlBase @@ -597,9 +601,11 @@ public class Jalview2xmlTests extends Jalview2xmlBase * test for patch release versions */ assertFalse(Jalview2XML.isVersionStringLaterThan("2.11.3.0", "2.11.2")); - assertTrue(Jalview2XML.isVersionStringLaterThan("2.11.3.0","2.11.4")); - assertFalse(Jalview2XML.isVersionStringLaterThan("2.12.2.0b1","2.12.2.0")); - assertFalse(Jalview2XML.isVersionStringLaterThan("2.12.2.3","2.12.2.2")); + assertTrue(Jalview2XML.isVersionStringLaterThan("2.11.3.0", "2.11.4")); + assertFalse( + Jalview2XML.isVersionStringLaterThan("2.12.2.0b1", "2.12.2.0")); + assertFalse( + Jalview2XML.isVersionStringLaterThan("2.12.2.3", "2.12.2.2")); } @@ -867,8 +873,11 @@ public class Jalview2xmlTests extends Jalview2xmlBase acg.setPredefinedColours(true); af.changeColour(acg); Color seqcol[] = new Color[3]; - for (int iStart=fsq.findIndex(fsq.getStart()),i=0;i<3;i++) { - seqcol[i] = af.alignPanel.getSeqPanel().seqCanvas.getSequenceRenderer().getResidueColour(fsq, iStart+i, null); + for (int iStart = fsq.findIndex(fsq.getStart()), i = 0; i < 3; i++) + { + seqcol[i] = af.alignPanel.getSeqPanel().seqCanvas + .getSequenceRenderer() + .getResidueColour(fsq, iStart + i, null); } /* * save project, close windows, reload project, verify @@ -877,7 +886,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase "testStoreAndRecoverAnnotRowElemColors", ".jvp"); tfile.deleteOnExit(); new Jalview2XML(false).saveState(tfile); - //Desktop.instance.closeAll_actionPerformed(null); + // Desktop.instance.closeAll_actionPerformed(null); af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(), DataSourceType.FILE); Assert.assertNotNull(af, "Failed to reload project"); @@ -885,9 +894,10 @@ public class Jalview2xmlTests extends Jalview2xmlBase * verify alignment annotation has colors */ av = af.getViewport(); - + ColourSchemeI loadedCscheme = av.getGlobalColourScheme(); - Assert.assertTrue(loadedCscheme instanceof AnnotationColourGradient,"Didn't apply Annotation colour gradient"); + Assert.assertTrue(loadedCscheme instanceof AnnotationColourGradient, + "Didn't apply Annotation colour gradient"); acg = (AnnotationColourGradient) loadedCscheme; assertTrue(acg.isSeqAssociated()); assertTrue(acg.isPredefinedColours()); @@ -900,13 +910,16 @@ public class Jalview2xmlTests extends Jalview2xmlBase for (int iStart = al.getSequenceAt(0) .findIndex(al.getSequenceAt(0).getStart()), i = 0; i < 3; i++) { - Assert.assertTrue(ala.annotations[i].colour!=null); + Assert.assertTrue(ala.annotations[i].colour != null); Assert.assertTrue(ala.annotations[i].colour.equals(annots[i].colour)); - Color newseqcol = af.alignPanel.getSeqPanel().seqCanvas.getSequenceRenderer().getResidueColour(fsq, iStart+i, null); - Assert.assertTrue(seqcol[i].equals(newseqcol),"Sequence shading is different"); + Color newseqcol = af.alignPanel.getSeqPanel().seqCanvas + .getSequenceRenderer() + .getResidueColour(fsq, iStart + i, null); + Assert.assertTrue(seqcol[i].equals(newseqcol), + "Sequence shading is different"); } - + } /** @@ -1487,7 +1500,8 @@ public class Jalview2xmlTests extends Jalview2xmlBase } /** - * Test that a view from an older version of Jalview is restored with Overview automatically shown when the preference is set + * Test that a view from an older version of Jalview is restored with Overview + * automatically shown when the preference is set * * @throws Exception */ @@ -1512,7 +1526,7 @@ public class Jalview2xmlTests extends Jalview2xmlBase * * @throws Exception */ - @Test(groups = {"Functional"}, enabled=false) + @Test(groups = { "Functional" }, enabled = false) public void testReloadActuallyReloads() throws Exception { Desktop.instance.closeAll_actionPerformed(null); @@ -1526,4 +1540,65 @@ public class Jalview2xmlTests extends Jalview2xmlBase // af exists still but isn't shown assertTrue(af.isClosed()); } + + @Test(groups = { "Functional" }) + public void testPAEsaveRestore() throws Exception + { + Desktop.instance.closeAll_actionPerformed(null); + AlignFrame af = new FileLoader().LoadFileWaitTillLoaded( + ">seq1\nMATRSQFLVNF\n", DataSourceType.PASTE); + AlignmentI al = af.getViewport().getAlignment(); + // PAE matrices are added as reference annotation to the dataset sequence + // at least for now. + SequenceI sq = al.getSequenceAt(0).getDatasetSequence(); + int i = sq.getLength(); + float[][] paevals = new float[i][i]; + for (i = i - 1; i >= 0; i--) + { + for (int j = 0; j <= i; j++) + { + paevals[i][j] = ((i - j < 2) + || ((i > 1 && i < 5) && (j > 1 && i < 5))) ? 1 : 0f; + paevals[j][i] = paevals[i][j]; + } + } + PAEContactMatrix dummyMat = new PAEContactMatrix(sq, paevals); + String content = ContactMatrix.contactToFloatString(dummyMat); + Assert.assertTrue(content.contains("\t1.")); // at least one element must be 1 + float[][] vals = ContactMatrix.fromFloatStringToContacts(content, sq.getLength(), sq.getLength()); + assertEquals(vals[3][4],paevals[3][4]); + + AlignmentAnnotation paeCm = sq.addContactList(dummyMat); + al.addAnnotation(paeCm); + File tfile = File.createTempFile("testStoreAndRecoverPAEmatrix", + ".jvp"); + new Jalview2XML(false).saveState(tfile); + Desktop.instance.closeAll_actionPerformed(null); + + af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(), + DataSourceType.FILE); + AlignmentI newAl = af.getViewport().getAlignment(); + SequenceI newSeq = newAl.getSequenceAt(0).getDatasetSequence(); + // check annotation of the expected type exists + Assert.assertEquals(newSeq.getAnnotation().length, 1); + Assert.assertEquals(newSeq.getAnnotation()[0].graph, paeCm.graph); + + // check a contact matrix was recovered + Assert.assertEquals(newSeq.getContactMaps().size(), 1); + // and can be found for the annotation on the sequence + ContactMatrixI restoredMat = newSeq + .getContactMatrixFor(newSeq.getAnnotation()[0]); + Assert.assertNotNull(restoredMat); + for (i = sq.getLength() - 1; i >= 0; i--) + { + ContactListI oldCM = dummyMat.getContactList(i), + newCM = restoredMat.getContactList(i); + for (int j = oldCM.getContactHeight(); j >= 0; j--) + { + Assert.assertEquals(oldCM.getContactAt(j), newCM.getContactAt(j)); + } + } + + } + }