import static org.testng.Assert.assertSame;
import static org.testng.Assert.assertTrue;
+import jalview.analysis.scoremodels.SimilarityParams;
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
import jalview.api.FeatureColourI;
import jalview.gui.Desktop;
import jalview.gui.FeatureRenderer;
import jalview.gui.JvOptionPane;
+import jalview.gui.PCAPanel;
import jalview.gui.PopupMenu;
import jalview.gui.SliderPanel;
import jalview.io.DataSourceType;
import java.util.List;
import java.util.Map;
+import javax.swing.JInternalFrame;
+
import org.testng.Assert;
import org.testng.AssertJUnit;
import org.testng.annotations.BeforeClass;
assertNotNull(af, "Didn't read input file " + inFile);
int olddsann = countDsAnn(af.getViewport());
assertTrue(olddsann > 0, "Didn't find any dataset annotations");
- af.changeColour_actionPerformed(JalviewColourScheme.RNAHelices
- .toString());
+ af.changeColour_actionPerformed(
+ JalviewColourScheme.RNAHelices.toString());
assertTrue(
- af.getViewport().getGlobalColourScheme() instanceof RNAHelicesColour,
+ af.getViewport()
+ .getGlobalColourScheme() instanceof RNAHelicesColour,
"Couldn't apply RNA helices colourscheme");
assertTrue(af.saveAlignment(tfile, FileFormat.Jalview),
"Failed to store as a project.");
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new FileLoader()
- .LoadFileWaitTillLoaded(tfile, DataSourceType.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile,
+ DataSourceType.FILE);
assertNotNull(af, "Failed to import new project");
int newdsann = countDsAnn(af.getViewport());
assertEquals(olddsann, newdsann,
"Differing numbers of dataset sequence annotation\nOriginally "
+ olddsann + " and now " + newdsann);
- System.out
- .println("Read in same number of annotations as originally present ("
+ System.out.println(
+ "Read in same number of annotations as originally present ("
+ olddsann + ")");
assertTrue(
- af.getViewport().getGlobalColourScheme() instanceof RNAHelicesColour,
+ af.getViewport()
+ .getGlobalColourScheme() instanceof RNAHelicesColour,
"RNA helices colourscheme was not applied on import.");
}
@Test(groups = { "Functional" })
public void testTCoffeeScores() throws Exception
{
- String inFile = "examples/uniref50.fa", inAnnot = "examples/uniref50.score_ascii";
+ String inFile = "examples/uniref50.fa",
+ inAnnot = "examples/uniref50.score_ascii";
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
af.loadJalviewDataFile(inAnnot, DataSourceType.FILE, null, null);
assertSame(af.getViewport().getGlobalColourScheme().getClass(),
TCoffeeColourScheme.class, "Didn't set T-coffee colourscheme");
- assertNotNull(ColourSchemeProperty.getColourScheme(af.getViewport()
- .getAlignment(), af.getViewport().getGlobalColourScheme()
- .getSchemeName()), "Recognise T-Coffee score from string");
+ assertNotNull(
+ ColourSchemeProperty.getColourScheme(
+ af.getViewport().getAlignment(),
+ af.getViewport().getGlobalColourScheme()
+ .getSchemeName()),
+ "Recognise T-Coffee score from string");
assertTrue(af.saveAlignment(tfile, FileFormat.Jalview),
"Failed to store as a project.");
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new FileLoader()
- .LoadFileWaitTillLoaded(tfile, DataSourceType.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile,
+ DataSourceType.FILE);
assertNotNull(af, "Failed to import new project");
assertSame(af.getViewport().getGlobalColourScheme().getClass(),
TCoffeeColourScheme.class,
"Didn't set T-coffee colourscheme for imported project.");
- System.out
- .println("T-Coffee score shading successfully recovered from project.");
+ System.out.println(
+ "T-Coffee score shading successfully recovered from project.");
}
@Test(groups = { "Functional" })
public void testColourByAnnotScores() throws Exception
{
- String inFile = "examples/uniref50.fa", inAnnot = "examples/testdata/uniref50_iupred.jva";
+ String inFile = "examples/uniref50.fa",
+ inAnnot = "examples/testdata/uniref50_iupred.jva";
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
.getSequenceAt(0).getAnnotation("IUPredWS (Short)");
assertTrue(
- aa != null && aa.length > 0,
+ aa != null && aa.length > 0,
"Didn't find any IUPred annotation to use to shade alignment.");
AnnotationColourGradient cs = new AnnotationColourGradient(aa[0], null,
AnnotationColourGradient.ABOVE_THRESHOLD);
- AnnotationColourGradient gcs = new AnnotationColourGradient(aa[0],
- null, AnnotationColourGradient.BELOW_THRESHOLD);
+ AnnotationColourGradient gcs = new AnnotationColourGradient(aa[0], null,
+ AnnotationColourGradient.BELOW_THRESHOLD);
cs.setSeqAssociated(true);
gcs.setSeqAssociated(true);
af.changeColour(cs);
"Failed to store as a project.");
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new FileLoader()
- .LoadFileWaitTillLoaded(tfile, DataSourceType.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile,
+ DataSourceType.FILE);
assertNotNull(af, "Failed to import new project");
// check for group and alignment colourschemes
ColourSchemeI _rcs = af.getViewport().getGlobalColourScheme();
- ColourSchemeI _rgcs = af.getViewport().getAlignment().getGroups()
- .get(0).getColourScheme();
+ ColourSchemeI _rgcs = af.getViewport().getAlignment().getGroups().get(0)
+ .getColourScheme();
assertNotNull(_rcs, "Didn't recover global colourscheme");
assertTrue(_rcs instanceof AnnotationColourGradient,
"Didn't recover annotation colour global scheme");
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(diffseqcols, "Got Different sequence colours");
- System.out
- .println("Per sequence colourscheme (Background) successfully applied and recovered.");
+ System.out.println(
+ "Per sequence colourscheme (Background) successfully applied and recovered.");
assertNotNull(_rgcs, "Didn't recover group colourscheme");
assertTrue(_rgcs instanceof AnnotationColourGradient,
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, 0f))
+ if (_rgcs.findColour(sqs[1].getCharAt(p), p, sqs[1], null,
+ 0f) != _rgcs.findColour(sqs[2].getCharAt(p), p, sqs[2], null,
+ 0f))
{
diffgseqcols = true;
}
}
assertTrue(diffgseqcols, "Got Different group sequence colours");
- System.out
- .println("Per sequence (Group) colourscheme successfully applied and recovered.");
+ System.out.println(
+ "Per sequence (Group) colourscheme successfully applied and recovered.");
}
@Test(groups = { "Functional" })
public void gatherViewsHere() throws Exception
{
- int origCount = Desktop.getAlignFrames() == null ? 0 : Desktop
- .getAlignFrames().length;
+ int origCount = Desktop.getAlignFrames() == null ? 0
+ : Desktop.getAlignFrames().length;
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
"examples/exampleFile_2_7.jar", DataSourceType.FILE);
assertNotNull(af, "Didn't read in the example file correctly.");
sq.findPosition(p);
try
{
- assertTrue(
- (alaa.annotations[p] == null && refan.annotations[p] == null)
- || alaa.annotations[p].value == refan.annotations[p].value,
+ assertTrue((alaa.annotations[p] == null
+ && refan.annotations[p] == null)
+ || alaa.annotations[p].value == refan.annotations[p].value,
"Mismatch at alignment position " + p);
} catch (NullPointerException q)
{
- Assert.fail("Mismatch of alignment annotations at position "
- + p + " Ref seq ann: " + refan.annotations[p]
+ Assert.fail("Mismatch of alignment annotations at position " + p
+ + " Ref seq ann: " + refan.annotations[p]
+ " alignment " + alaa.annotations[p]);
}
}
AssertJUnit.assertFalse(structureStyle.sameStyle(groupStyle));
groups.getAlignViewport().setViewStyle(structureStyle);
- AssertJUnit.assertFalse(groupStyle.sameStyle(groups.getAlignViewport()
- .getViewStyle()));
- Assert.assertTrue(structureStyle.sameStyle(groups.getAlignViewport()
- .getViewStyle()));
+ AssertJUnit.assertFalse(
+ groupStyle.sameStyle(groups.getAlignViewport().getViewStyle()));
+ Assert.assertTrue(structureStyle
+ .sameStyle(groups.getAlignViewport().getViewStyle()));
}
// check FileLoader returned a reference to the one alignFrame that is
// actually on the Desktop
- assertSame(
- af,
- Desktop.getAlignFrameFor(af.getViewport()),
+ assertSame(af, Desktop.getAlignFrameFor(af.getViewport()),
"Jalview2XML.loadAlignFrame() didn't return correct AlignFrame reference for multiple view window");
Desktop.explodeViews(af);
af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(),
DataSourceType.FILE);
Assert.assertNotNull(af);
+ Assert.assertEquals(Desktop.getAlignFrames().length,
+ Desktop.getAlignmentPanels(
+ af.getViewport().getSequenceSetId()).length);
Assert.assertEquals(
- Desktop.getAlignFrames().length,
- Desktop.getAlignmentPanels(af.getViewport().getSequenceSetId()).length);
- Assert.assertEquals(
- Desktop.getAlignmentPanels(af.getViewport().getSequenceSetId()).length,
+ Desktop.getAlignmentPanels(
+ af.getViewport().getSequenceSetId()).length,
oldviews);
}
assertTrue(Jalview2XML.isVersionStringLaterThan(null, "Test"));
assertTrue(Jalview2XML.isVersionStringLaterThan(null, "TEST"));
assertTrue(Jalview2XML.isVersionStringLaterThan("2.8.3", "Test"));
- assertTrue(Jalview2XML
- .isVersionStringLaterThan(null, "Automated Build"));
+ assertTrue(
+ Jalview2XML.isVersionStringLaterThan(null, "Automated Build"));
assertTrue(Jalview2XML.isVersionStringLaterThan("2.8.3",
"Automated Build"));
assertTrue(Jalview2XML.isVersionStringLaterThan("2.8.3",
n++;
}
- File tfile = File
- .createTempFile("testStoreAndRecoverGroupReps", ".jvp");
+ File tfile = File.createTempFile("testStoreAndRecoverGroupReps",
+ ".jvp");
try
{
new Jalview2XML(false).saveState(tfile);
*/
List<String> hidden = hiddenSeqNames.get(ap.getViewName());
HiddenSequences hs = alignment.getHiddenSequences();
- assertEquals(
- hidden.size(),
- hs.getSize(),
+ assertEquals(hidden.size(), hs.getSize(),
"wrong number of restored hidden sequences in "
+ ap.getViewName());
}
pdbEntries[1] = new PDBEntry("3W5V", "B", Type.PDB, testFile);
pdbEntries[2] = new PDBEntry("3W5V", "C", Type.PDB, testFile);
pdbEntries[3] = new PDBEntry("3W5V", "D", Type.PDB, testFile);
- Assert.assertEquals(seqs[0].getDatasetSequence().getAllPDBEntries()
- .get(0), pdbEntries[0]);
- Assert.assertEquals(seqs[1].getDatasetSequence().getAllPDBEntries()
- .get(0), pdbEntries[1]);
- Assert.assertEquals(seqs[2].getDatasetSequence().getAllPDBEntries()
- .get(0), pdbEntries[2]);
- Assert.assertEquals(seqs[3].getDatasetSequence().getAllPDBEntries()
- .get(0), pdbEntries[3]);
+ Assert.assertEquals(
+ seqs[0].getDatasetSequence().getAllPDBEntries().get(0),
+ pdbEntries[0]);
+ Assert.assertEquals(
+ seqs[1].getDatasetSequence().getAllPDBEntries().get(0),
+ pdbEntries[1]);
+ Assert.assertEquals(
+ seqs[2].getDatasetSequence().getAllPDBEntries().get(0),
+ pdbEntries[2]);
+ Assert.assertEquals(
+ seqs[3].getDatasetSequence().getAllPDBEntries().get(0),
+ pdbEntries[3]);
File tfile = File.createTempFile("testStoreAndRecoverPDBEntry", ".jvp");
try
sg.setEndRes(25);
av.setSelectionGroup(sg);
PopupMenu popupMenu = new PopupMenu(af.alignPanel, null, null);
- popupMenu.changeColour_actionPerformed(JalviewColourScheme.Strand
- .toString());
+ popupMenu.changeColour_actionPerformed(
+ JalviewColourScheme.Strand.toString());
assertTrue(sg.getColourScheme() instanceof StrandColourScheme);
assertEquals(al.getGroups().size(), 1);
assertSame(al.getGroups().get(0), sg);
fr.setColour("type2", byLabel);
// type3: by score above threshold
- FeatureColourI byScore = new FeatureColour(Color.BLACK, Color.BLUE, 1,
- 10);
+ FeatureColourI byScore = new FeatureColour(null, Color.BLACK,
+ Color.BLUE, null, 1, 10);
byScore.setAboveThreshold(true);
byScore.setThreshold(2f);
fr.setColour("type3", byScore);
fr.setColour("type4", byAF);
// type5: by attribute CSQ:PolyPhen below threshold
- FeatureColourI byPolyPhen = new FeatureColour(Color.BLACK, Color.BLUE,
- 1, 10);
+ FeatureColourI byPolyPhen = new FeatureColour(null, Color.BLACK,
+ Color.BLUE, null, 1, 10);
byPolyPhen.setBelowThreshold(true);
byPolyPhen.setThreshold(3f);
byPolyPhen.setAttributeName("CSQ", "PolyPhen");
*/
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new FileLoader()
- .LoadFileWaitTillLoaded(filePath, DataSourceType.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(filePath,
+ DataSourceType.FILE);
assertNotNull(af, "Failed to import new project");
/*
}
return ds;
}
+
+ @Test(groups = "Functional")
+ public void testPcaViewAssociation() throws IOException
+ {
+ Desktop.instance.closeAll_actionPerformed(null);
+ final String PCAVIEWNAME = "With PCA";
+ // create a new tempfile
+ File tempfile = File.createTempFile("jvPCAviewAssoc", "jvp");
+
+ {
+ String exampleFile = "examples/uniref50.fa";
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(exampleFile,
+ DataSourceType.FILE);
+ assertNotNull(af, "Didn't read in the example file correctly.");
+ AlignmentPanel origView = (AlignmentPanel) af.getAlignPanels().get(0);
+ AlignmentPanel newview = af.newView(PCAVIEWNAME, true);
+ // create another for good measure
+ af.newView("Not the PCA View", true);
+ PCAPanel pcaPanel = new PCAPanel(origView, "BLOSUM62",
+ new SimilarityParams(true, true, true, false));
+ // we're in the test exec thread, so we can just run synchronously here
+ pcaPanel.run();
+
+ // now switch the linked view
+ pcaPanel.selectAssociatedView(newview);
+
+ assertTrue(pcaPanel.getAlignViewport() == newview.getAlignViewport(),
+ "PCA should be associated with 'With PCA' view: test is broken");
+
+ // now save and reload project
+ 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");
+ }
+
+ // load again.
+ Desktop.instance.closeAll_actionPerformed(null);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ tempfile.getCanonicalPath(), DataSourceType.FILE);
+ JInternalFrame[] frames = Desktop.instance.getAllFrames();
+ // PCA and the tabbed alignment view should be the only two windows on the
+ // desktop
+ assertEquals(frames.length, 2,
+ "PCA and the tabbed alignment view should be the only two windows on the desktop");
+ PCAPanel pcaPanel = (PCAPanel) frames[frames[0] == af ? 1 : 0];
+
+ AlignmentViewPanel restoredNewView = null;
+ for (AlignmentViewPanel alignpanel : Desktop.getAlignmentPanels(null))
+ {
+ if (alignpanel.getAlignViewport() == pcaPanel.getAlignViewport())
+ {
+ restoredNewView = alignpanel;
+ }
+ }
+ assertEquals(restoredNewView.getViewName(), PCAVIEWNAME);
+ assertTrue(
+ restoredNewView.getAlignViewport() == pcaPanel
+ .getAlignViewport(),
+ "Didn't restore correct view association for the PCA view");
+ }
}