import java.awt.Rectangle;
import java.io.File;
import java.io.IOException;
-import java.math.BigInteger;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.HashMap;
boolean diffseqcols = false, diffgseqcols = false;
SequenceI[] sqs = af.getViewport().getAlignment().getSequencesArray();
- for (int p = 0, pSize = af.getViewport().getAlignment()
- .getWidth(); p < pSize && (!diffseqcols || !diffgseqcols); p++)
+ for (int p = 0,
+ pSize = af.getViewport().getAlignment().getWidth(); p < pSize
+ && (!diffseqcols || !diffgseqcols); p++)
{
if (_rcs.findColour(sqs[0].getCharAt(p), p, sqs[0], null, 0f) != _rcs
.findColour(sqs[5].getCharAt(p), p, sqs[5], null, 0f))
assertTrue(__rcs.isSeqAssociated(),
"Group Annotation colourscheme wasn't sequence associated");
- for (int p = 0, pSize = af.getViewport().getAlignment()
- .getWidth(); p < pSize && (!diffseqcols || !diffgseqcols); p++)
+ for (int p = 0,
+ pSize = af.getViewport().getAlignment().getWidth(); p < pSize
+ && (!diffseqcols || !diffgseqcols); p++)
{
if (_rgcs.findColour(sqs[1].getCharAt(p), p, sqs[1], null,
0f) != _rgcs.findColour(sqs[2].getCharAt(p), p, sqs[2], null,
assertEquals(ov1.getCanvas().getResidueColour(), Color.white);
assertEquals(ov1.getCanvas().getHiddenColour(), Color.yellow);
assertEquals(ov1.getTitle(), "Overview examples/uniref50.fa Original");
- assertEquals(ov1.getFrameBounds(), new Rectangle(20, 30, 200, 400));
+
+ double scaling = jalview.gui.JvSwingUtilsTest.getScaling(ov1);
+ // int width = scaling == 1.0 ? 225 : 200;
+ // int width = scaling == 1.0 ? 225 : 200;
+ Rectangle ov1Rectangle = ov1.getFrameBounds();
+ assertEquals(ov1Rectangle,
+ new Rectangle(20, 30, ov1Rectangle.width, 400));
+ int width = ov1Rectangle.width;
+ assertTrue(width >= 200 && width <= 225,
+ "Rectangle width was not in the range expected (200<=width<=225; width="
+ + width + ")");
assertTrue(ov1.isShowHiddenRegions());
}
@Test(groups = { "Functional" })
public void testMatrixToFloatsAndBack()
{
- int imax=2000;
- int i=imax;
- SequenceI sq = new Sequence("dummy","SEQ");
- while (sq.getLength()<i)
+ int imax = 2000;
+ int i = imax;
+ SequenceI sq = new Sequence("dummy", "SEQ");
+ while (sq.getLength() < i)
{
- sq.setSequence(sq.getSequenceAsString()+'Q');
+ sq.setSequence(sq.getSequenceAsString() + 'Q');
}
float[][] paevals = new float[i][i];
for (i = imax - 1; i >= 0; i--)
sq.getLength(), sq.getLength());
assertEquals(vals[3][4], paevals[3][4]);
assertEquals(vals[4][3], paevals[4][3]);
-
+
// test recovery
- for (i=0;i<imax;i++)
+ for (i = 0; i < imax; i++)
{
- for (int j=0;j<imax;j++)
+ for (int j = 0; j < imax; j++)
{
- assertEquals(vals[i][j],paevals[i][j]);
+ assertEquals(vals[i][j], paevals[i][j]);
}
}
}
+
@Test(groups = { "Functional" })
public void testPAEsaveRestore() throws Exception
{
sq.getLength(), sq.getLength());
assertEquals(vals[3][4], paevals[3][4]);
assertEquals(vals[4][3], paevals[4][3]);
- dummyMat.setGroupSet(GroupSet.makeGroups(dummyMat, false,0.5f, false));
+ dummyMat.setGroupSet(GroupSet.makeGroups(dummyMat, false, 0.5f, false));
Assert.assertNotSame(dummyMat.getNewick(), "");
AlignmentAnnotation paeCm = sq.addContactList(dummyMat);
al.addAnnotation(paeCm);
Assert.assertEquals(restoredMat.getNewick(), dummyMat.getNewick());
// verify no duplicate PAE matrix data when new view created and saved
-
+
// add reference annotations to view first, then copy
- AlignmentUtils.addReferenceAnnotationTo(newAl, newAl.getSequenceAt(0), newSeq.getAnnotation()[0],null);
-
+ AlignmentUtils.addReferenceAnnotationTo(newAl, newAl.getSequenceAt(0),
+ newSeq.getAnnotation()[0], null);
+
AlignmentViewPanel newview = af.newView("copy of PAE", true);
-
+
// redundant asserts here check all is good with the new view firest...
AlignmentI newviewAl = newview.getAlignment();
SequenceI newviewSeq = newviewAl.getSequenceAt(0);
Assert.assertEquals(newviewSeq.getAnnotation()[0].graph, paeCm.graph);
// check we have just one contact matrix mapping
Assert.assertEquals(newviewSeq.getContactMaps().size(), 1);
-
+
// and can be found for the annotation on the sequence
ContactMatrixI newviewMat = newviewSeq
.getContactMatrixFor(newviewSeq.getAnnotation()[0]);
Assert.assertNotNull(newviewMat);
Assert.assertTrue(newviewMat == restoredMat);
-
- // save the two views and restore. Now look at visible annotation to check all views have shared refs.
-
+
+ // save the two views and restore. Now look at visible annotation to check
+ // all views have shared refs.
+
tfile = File.createTempFile("testStoreAndRecoverPAEmatrixTwoViews",
".jvp");
new Jalview2XML(false).saveState(tfile);
AlignmentAnnotation view1aa = newAl.getSequenceAt(0).getAnnotation()[0];
newviewAl = af.getAlignPanels().get(1).getAlignment();
- AlignmentAnnotation view2aa = newviewAl.getSequenceAt(0).getAnnotation()[0];
+ AlignmentAnnotation view2aa = newviewAl.getSequenceAt(0)
+ .getAnnotation()[0];
- // annotations are shared across alignment views - so should still have an identical pair of annotations.
- Assert.assertTrue(view1aa==view2aa);
+ // annotations are shared across alignment views - so should still have an
+ // identical pair of annotations.
+ Assert.assertTrue(view1aa == view2aa);
// identical annotations means identical contact matrix mappings
- Assert.assertEquals(newAl.getDataset().getSequenceAt(0).getContactMaps().size(), 1);
+ Assert.assertEquals(
+ newAl.getDataset().getSequenceAt(0).getContactMaps().size(), 1);
- // TODO Verify when distinct mappable PAEs are created, only one PAE dataset is actually held.
+ // TODO Verify when distinct mappable PAEs are created, only one PAE dataset
+ // is actually held.
// Assert.assertTrue(view1aa!=view2aa);
// restoredMat = newAl.getContactMatrixFor(view1aa);
// newviewMat = newviewAl.getContactMatrixFor(view2aa);
// Assert.assertTrue(restoredMat!=newviewMat);
-
+
+ }
+
+ @Test(groups = "Functional")
+ public void testStoreAndRestoreIDwidthAndAnnotationHeight()
+ throws IOException
+ {
+ Desktop.instance.closeAll_actionPerformed(null);
+ final String SECONDVIEW = "With Diffferent IDwidth";
+ // create a new tempfile
+ File tempfile = File.createTempFile("jvIdWidthStoreRestore", "jvp");
+
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ "examples/exampleFile.jvp", DataSourceType.FILE);
+ assertNotNull(af, "Didn't read in the example file correctly.");
+ // FIXME JAL-4281 test made platform dependent to pass, but probably
+ // shouldn't be platform dependent
+ int idWidth = af.alignPanel.getAlignViewport().getIdWidth();
+ double scaling = jalview.gui.JvSwingUtilsTest.getScaling(af.alignPanel);
+ // int expectedWidth = Platform.isMac() ? 144 : Platform.isLinux() ? scaling
+ // == 1.0 ? 131 : 128 : 138;
+ int minExpectedWidth = 128;
+ int maxExpectedWidth = 144;
+ assertTrue(minExpectedWidth <= idWidth && maxExpectedWidth >= idWidth,
+ "Legacy project import should have fixed ID width. Not within the expected range ("
+ + minExpectedWidth + "-" + maxExpectedWidth + ")");
+ assertTrue(
+ af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+
+ af.alignPanel.getAlignViewport().setIdWidth(100);
+ af.alignPanel.updateLayout();
+ assertTrue(
+ af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+
+ Jalview2XML jv2xml = new jalview.project.Jalview2XML(false);
+ tempfile.delete();
+ jv2xml.saveState(tempfile);
+ assertTrue(jv2xml.errorMessage == null,
+ "Failed to save dummy project with PCA: test broken");
+ af = null;
+ // load again.
+ Desktop.instance.closeAll_actionPerformed(null);
+ af = new FileLoader().LoadFileWaitTillLoaded(
+ tempfile.getCanonicalPath(), DataSourceType.FILE);
+ assertTrue(
+ af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+ assertEquals(af.alignPanel.getAlignViewport().getIdWidth(), 100,
+ "New project exported and import should have adjusted ID width");
+
+ af.alignPanel.getAlignViewport().setIdWidth(100);
+ af.alignPanel.updateLayout();
+ assertTrue(
+ af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+
+ // now make it autoadjusted
+ af.alignPanel.getAlignViewport().setIdWidth(-1);
+ af.alignPanel.getIdPanel().getIdCanvas().setManuallyAdjusted(false);
+ af.alignPanel.updateLayout();
+ assertFalse(
+ af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+ assertTrue(af.alignPanel.getAlignViewport().getIdWidth() > -1,
+ "New project exported and import should have adjusted ID width");
+
+ jv2xml = new jalview.project.Jalview2XML(false);
+ tempfile.delete();
+ jv2xml.saveState(tempfile);
+ assertTrue(jv2xml.errorMessage == null,
+ "Failed to save dummy project with PCA: test broken");
+ af = null;
+ // load again.
+ Desktop.instance.closeAll_actionPerformed(null);
+ af = new FileLoader().LoadFileWaitTillLoaded(
+ tempfile.getCanonicalPath(), DataSourceType.FILE);
+ assertFalse(
+ af.alignPanel.getIdPanel().getIdCanvas().isManuallyAdjusted());
+ assertTrue(af.alignPanel.getAlignViewport().getIdWidth() > -1,
+ "New project exported and import should have adjusted ID width");
}
}