JAL-3438 spotless for 2.11.2.0
[jalview.git] / test / jalview / analysis / scoremodels / FeatureDistanceModelTest.java
index 0577fae..92f1542 100644 (file)
@@ -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;
@@ -74,8 +75,8 @@ public class FeatureDistanceModelTest
    */
   public AlignFrame getTestAlignmentFrame()
   {
-    AlignFrame alf = new FileLoader(false).LoadFileWaitTillLoaded(
-            alntestFile, DataSourceType.PASTE);
+    AlignFrame alf = new FileLoader(false)
+            .LoadFileWaitTillLoaded(alntestFile, DataSourceType.PASTE);
     AlignmentI al = alf.getViewport().getAlignment();
     Assert.assertEquals(al.getHeight(), 4);
     Assert.assertEquals(al.getWidth(), 5);
@@ -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);
@@ -103,8 +104,9 @@ public class FeatureDistanceModelTest
     alf.getFeatureRenderer().setVisible("sf2");
     alf.getFeatureRenderer().setVisible("sf3");
     alf.getFeatureRenderer().findAllFeatures(true);
-    Assert.assertEquals(alf.getFeatureRenderer().getDisplayedFeatureTypes()
-            .size(), 3, "Number of feature types");
+    Assert.assertEquals(
+            alf.getFeatureRenderer().getDisplayedFeatureTypes().size(), 3,
+            "Number of feature types");
     assertTrue(alf.getCurrentView().areFeaturesDisplayed());
     return alf;
   }
@@ -113,13 +115,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(
-            alf.getViewport().getAlignmentView(true),
+    MatrixI dm = sm.findDistances(alf.getViewport().getAlignmentView(true),
             SimilarityParams.Jalview);
     assertEquals(dm.getValue(0, 2), 0d,
             "FER1_MESCR (0) should be identical with RAPSA (2)");
@@ -133,12 +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(
-            alf.getViewport().getAlignmentView(true),
+    MatrixI dm = sm.findDistances(alf.getViewport().getAlignmentView(true),
             SimilarityParams.Jalview);
     assertEquals(dm.getValue(0, 2), 0d,
             "FER1_MESCR (0) should be identical with RAPSA (2)");
@@ -153,26 +153,25 @@ 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(
-            alf.getViewport().getAlignmentView(true),
+    MatrixI dm = sm.findDistances(alf.getViewport().getAlignmentView(true),
             SimilarityParams.Jalview);
-    assertEquals(
-            dm.getValue(0, 2),
-            0d,
+    assertEquals(dm.getValue(0, 2), 0d,
             "After hiding last two columns FER1_MESCR (0) should still be identical with RAPSA (2)");
-    assertEquals(
-            dm.getValue(0, 1),
-            0d,
+    assertEquals(dm.getValue(0, 1), 0d,
             "After hiding last two columns FER1_MESCR (0) should now also be identical with SPIOL (1)");
     for (int s = 0; s < 3; s++)
     {
-      assertTrue(dm.getValue(s, 3) > 0d, "After hiding last two columns "
-              + alf.getViewport().getAlignment().getSequenceAt(s).getName()
-              + "(" + s + ") should still be distinct from FER1_MAIZE (3)");
+      assertTrue(dm.getValue(s, 3) > 0d,
+              "After hiding last two columns "
+                      + alf.getViewport().getAlignment().getSequenceAt(s)
+                              .getName()
+                      + "(" + s
+                      + ") should still be distinct from FER1_MAIZE (3)");
     }
   }
 
@@ -194,26 +193,33 @@ public class FeatureDistanceModelTest
     assertTrue(sf.isContactFeature());
     af.refreshFeatureUI(true);
     af.getFeatureRenderer().setAllVisible(Arrays.asList("disulphide bond"));
-    Assert.assertEquals(af.getFeatureRenderer().getDisplayedFeatureTypes()
-            .size(), 1, "Should be just one feature type displayed");
+    Assert.assertEquals(
+            af.getFeatureRenderer().getDisplayedFeatureTypes().size(), 1,
+            "Should be just one feature type displayed");
     // step through and check for pointwise feature presence/absence
-    Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 1)
-            .size(), 0);
+    Assert.assertEquals(
+            af.getFeatureRenderer().findFeaturesAtColumn(aseq, 1).size(),
+            0);
     // step through and check for pointwise feature presence/absence
-    Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 2)
-            .size(), 1);
+    Assert.assertEquals(
+            af.getFeatureRenderer().findFeaturesAtColumn(aseq, 2).size(),
+            1);
     // step through and check for pointwise feature presence/absence
-    Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 3)
-            .size(), 0);
+    Assert.assertEquals(
+            af.getFeatureRenderer().findFeaturesAtColumn(aseq, 3).size(),
+            0);
     // step through and check for pointwise feature presence/absence
-    Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 4)
-            .size(), 0);
+    Assert.assertEquals(
+            af.getFeatureRenderer().findFeaturesAtColumn(aseq, 4).size(),
+            0);
     // step through and check for pointwise feature presence/absence
-    Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 5)
-            .size(), 1);
+    Assert.assertEquals(
+            af.getFeatureRenderer().findFeaturesAtColumn(aseq, 5).size(),
+            1);
     // step through and check for pointwise feature presence/absence
-    Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 6)
-            .size(), 0);
+    Assert.assertEquals(
+            af.getFeatureRenderer().findFeaturesAtColumn(aseq, 6).size(),
+            0);
   }
 
   @Test(groups = { "Functional" })
@@ -237,28 +243,29 @@ public class FeatureDistanceModelTest
      *     20120 (two features of the same type doesn't affect score)
      *  giving an average (pairwise distance) of 5/5 or 1.0 
      */
-    s1.addSequenceFeature(new SequenceFeature("domain", null, 1, 3, 0f,
-            null));
-    s1.addSequenceFeature(new SequenceFeature("variant", null, 2, 4, 0f,
-            null));
-    s1.addSequenceFeature(new SequenceFeature("variant", null, 3, 5, 0f,
-            null));
-    s2.addSequenceFeature(new SequenceFeature("domain", null, 2, 4, 0f,
-            null));
-    s2.addSequenceFeature(new SequenceFeature("variant", null, 1, 2, 0f,
-            null));
-    s2.addSequenceFeature(new SequenceFeature("variant", null, 5, 5, 0f,
-            null));
+    s1.addSequenceFeature(
+            new SequenceFeature("domain", null, 1, 3, 0f, null));
+    s1.addSequenceFeature(
+            new SequenceFeature("variant", null, 2, 4, 0f, null));
+    s1.addSequenceFeature(
+            new SequenceFeature("variant", null, 3, 5, 0f, null));
+    s2.addSequenceFeature(
+            new SequenceFeature("domain", null, 2, 4, 0f, null));
+    s2.addSequenceFeature(
+            new SequenceFeature("variant", null, 1, 2, 0f, null));
+    s2.addSequenceFeature(
+            new SequenceFeature("variant", null, 5, 5, 0f, null));
     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);
@@ -279,9 +286,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)
@@ -298,7 +306,7 @@ public class FeatureDistanceModelTest
     assertEquals(distances.getValue(1, 1), 0d);
     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
@@ -334,12 +342,16 @@ public class FeatureDistanceModelTest
     SequenceI s1 = new Sequence("s1", "FR K S");
     SequenceI s2 = new Sequence("s2", "FS  L");
 
-    s1.addSequenceFeature(new SequenceFeature("chain", null, 1, 4, 0f, null));
-    s1.addSequenceFeature(new SequenceFeature("domain", null, 1, 4, 0f,
-            null));
-    s2.addSequenceFeature(new SequenceFeature("chain", null, 1, 3, 0f, null));
-    s2.addSequenceFeature(new SequenceFeature("metal", null, 1, 3, 0f, null));
-    s2.addSequenceFeature(new SequenceFeature("Pfam", null, 1, 3, 0f, null));
+    s1.addSequenceFeature(
+            new SequenceFeature("chain", null, 1, 4, 0f, null));
+    s1.addSequenceFeature(
+            new SequenceFeature("domain", null, 1, 4, 0f, null));
+    s2.addSequenceFeature(
+            new SequenceFeature("chain", null, 1, 3, 0f, null));
+    s2.addSequenceFeature(
+            new SequenceFeature("metal", null, 1, 3, 0f, null));
+    s2.addSequenceFeature(
+            new SequenceFeature("Pfam", null, 1, 3, 0f, null));
     AlignmentI al = new Alignment(new SequenceI[] { s1, s2 });
     AlignFrame af = new AlignFrame(al, 300, 300);
     af.setShowSeqFeatures(true);