X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2Fscoremodels%2FFeatureDistanceModelTest.java;h=263844f5adf9caaa17f79ec739962882dbb3288a;hb=b9d3d1f71c6a8aee09cd23e1303b062cbe43a239;hp=f52ede947b1d570e098bb086c84a0962c645030b;hpb=d522b57e573db5344dbe0b108e7b4afcfa2c246c;p=jalview.git diff --git a/test/jalview/analysis/scoremodels/FeatureDistanceModelTest.java b/test/jalview/analysis/scoremodels/FeatureDistanceModelTest.java index f52ede9..263844f 100644 --- a/test/jalview/analysis/scoremodels/FeatureDistanceModelTest.java +++ b/test/jalview/analysis/scoremodels/FeatureDistanceModelTest.java @@ -23,6 +23,7 @@ package jalview.analysis.scoremodels; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; +import jalview.api.analysis.ScoreModelI; import jalview.api.analysis.SimilarityParamsI; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; @@ -84,18 +85,18 @@ public class FeatureDistanceModelTest SequenceI ds = al.getSequenceAt(i).getDatasetSequence(); if (sf1[i * 2] > 0) { - ds.addSequenceFeature(new SequenceFeature("sf1", "sf1", "sf1", - sf1[i * 2], sf1[i * 2 + 1], "sf1")); + ds.addSequenceFeature(new SequenceFeature("sf1", "sf1", sf1[i * 2], + sf1[i * 2 + 1], "sf1")); } if (sf2[i * 2] > 0) { - ds.addSequenceFeature(new SequenceFeature("sf2", "sf2", "sf2", - sf2[i * 2], sf2[i * 2 + 1], "sf2")); + ds.addSequenceFeature(new SequenceFeature("sf2", "sf2", sf2[i * 2], + sf2[i * 2 + 1], "sf2")); } if (sf3[i * 2] > 0) { - ds.addSequenceFeature(new SequenceFeature("sf3", "sf3", "sf3", - sf3[i * 2], sf3[i * 2 + 1], "sf3")); + ds.addSequenceFeature(new SequenceFeature("sf3", "sf3", sf3[i * 2], + sf3[i * 2 + 1], "sf3")); } } alf.setShowSeqFeatures(true); @@ -113,12 +114,12 @@ public class FeatureDistanceModelTest public void testFeatureScoreModel() throws Exception { AlignFrame alf = getTestAlignmentFrame(); - FeatureDistanceModel fsm = new FeatureDistanceModel(); - assertTrue(fsm.configureFromAlignmentView(alf.getCurrentView() - .getAlignPanel())); + ScoreModelI sm = new FeatureDistanceModel(); + sm = ScoreModels.getInstance().getScoreModel(sm.getName(), + alf.getCurrentView().getAlignPanel()); alf.selectAllSequenceMenuItem_actionPerformed(null); - MatrixI dm = fsm.findDistances( + MatrixI dm = sm.findDistances( alf.getViewport().getAlignmentView(true), SimilarityParams.Jalview); assertEquals(dm.getValue(0, 2), 0d, @@ -133,11 +134,11 @@ public class FeatureDistanceModelTest AlignFrame alf = getTestAlignmentFrame(); // hiding first two columns shouldn't affect the tree alf.getViewport().hideColumns(0, 1); - FeatureDistanceModel fsm = new FeatureDistanceModel(); - assertTrue(fsm.configureFromAlignmentView(alf.getCurrentView() - .getAlignPanel())); + ScoreModelI sm = new FeatureDistanceModel(); + sm = ScoreModels.getInstance().getScoreModel(sm.getName(), + alf.getCurrentView().getAlignPanel()); alf.selectAllSequenceMenuItem_actionPerformed(null); - MatrixI dm = fsm.findDistances( + MatrixI dm = sm.findDistances( alf.getViewport().getAlignmentView(true), SimilarityParams.Jalview); assertEquals(dm.getValue(0, 2), 0d, @@ -153,11 +154,12 @@ public class FeatureDistanceModelTest // hide columns and check tree changes alf.getViewport().hideColumns(3, 4); alf.getViewport().hideColumns(0, 1); - FeatureDistanceModel fsm = new FeatureDistanceModel(); - assertTrue(fsm.configureFromAlignmentView(alf.getCurrentView() - .getAlignPanel())); + // getName() can become static in Java 8 + ScoreModelI sm = new FeatureDistanceModel(); + sm = ScoreModels.getInstance().getScoreModel(sm.getName(), + alf.getCurrentView().getAlignPanel()); alf.selectAllSequenceMenuItem_actionPerformed(null); - MatrixI dm = fsm.findDistances( + MatrixI dm = sm.findDistances( alf.getViewport().getAlignmentView(true), SimilarityParams.Jalview); assertEquals( @@ -252,21 +254,20 @@ public class FeatureDistanceModelTest alf.setShowSeqFeatures(true); alf.getFeatureRenderer().findAllFeatures(true); - FeatureDistanceModel fsm = new FeatureDistanceModel(); - assertTrue(fsm.configureFromAlignmentView(alf.getCurrentView() - .getAlignPanel())); + ScoreModelI sm = new FeatureDistanceModel(); + sm = ScoreModels.getInstance().getScoreModel(sm.getName(), + alf.getCurrentView().getAlignPanel()); alf.selectAllSequenceMenuItem_actionPerformed(null); - MatrixI distances = fsm.findDistances(alf.getViewport() - .getAlignmentView(true), SimilarityParams.Jalview); + AlignmentView alignmentView = alf.getViewport() + .getAlignmentView(true); + MatrixI distances = sm.findDistances(alignmentView, + SimilarityParams.Jalview); assertEquals(distances.width(), 2); assertEquals(distances.height(), 2); assertEquals(distances.getValue(0, 0), 0d); assertEquals(distances.getValue(1, 1), 0d); - // these left to fail pending resolution of - // JAL-2424 (computing score as 5/6, should be 5/5) - // see also PCATest.testComputeSimilarity_featureDistances() assertEquals(distances.getValue(0, 1), 1d, "expected identical pairs. (check normalisation for similarity score)"); assertEquals(distances.getValue(1, 0), 1d); @@ -282,9 +283,10 @@ public class FeatureDistanceModelTest AlignViewport viewport = af.getViewport(); AlignmentView view = viewport.getAlignmentView(false); - FeatureDistanceModel sm = new FeatureDistanceModel(); - sm.configureFromAlignmentView(af.alignPanel); - + ScoreModelI sm = new FeatureDistanceModel(); + sm = ScoreModels.getInstance().getScoreModel(sm.getName(), + af.alignPanel); + /* * feature distance model always normalises by region width * gap-gap is always included (but scores zero) @@ -294,23 +296,21 @@ public class FeatureDistanceModelTest /* * include gaps * score = 3 + 3 + 0 + 2 + 3 + 2 = 13/6 - // FIXME out by 1 error in cpwidth JAL-2424 - dividing by 7 */ SimilarityParamsI params = new SimilarityParams(true, true, true, true); MatrixI distances = sm.findDistances(view, params); assertEquals(distances.getValue(0, 0), 0d); assertEquals(distances.getValue(1, 1), 0d); - assertEquals(distances.getValue(0, 1), 13d / 7); // should be 13d/6 - assertEquals(distances.getValue(1, 0), 13d / 7); + assertEquals(distances.getValue(0, 1), 13d / 6); // should be 13d/6 + assertEquals(distances.getValue(1, 0), 13d / 6); /* * exclude gaps * score = 3 + 3 + 0 + 0 + 0 + 0 = 6/6 - // FIXME out by 1 error in cpwidth JAL-2424 - dividing by 7 */ params = new SimilarityParams(true, true, false, true); distances = sm.findDistances(view, params); - assertEquals(distances.getValue(0, 1), 6d / 7);// should be 6d/6 + assertEquals(distances.getValue(0, 1), 6d / 6);// should be 6d/6 } /**