JAL-2962 remove Change Parameters menu from PCA panel
[jalview.git] / test / jalview / analysis / scoremodels / ScoreMatrixTest.java
index 9c9e917..1a5d43c 100644 (file)
@@ -30,7 +30,7 @@ public class ScoreMatrixTest
     // note score matrix does not have to be symmetric (though it should be!)
     float[][] scores = new float[3][];
     scores[0] = new float[] { 1f, 2f, 3f };
-    scores[1] = new float[] { 4f, 5f, 6f };
+    scores[1] = new float[] { -4f, 5f, 6f };
     scores[2] = new float[] { 7f, 8f, 9f };
     ScoreMatrix sm = new ScoreMatrix("Test", "ABC".toCharArray(), scores);
     assertEquals(sm.getSize(), 3);
@@ -38,11 +38,14 @@ public class ScoreMatrixTest
     assertEquals(sm.getPairwiseScore('A', 'a'), 1f);
     assertEquals(sm.getPairwiseScore('b', 'c'), 6f);
     assertEquals(sm.getPairwiseScore('c', 'b'), 8f);
-    assertEquals(sm.getPairwiseScore('A', 'D'), 0f);
     assertEquals(sm.getMatrixIndex('c'), 2);
     assertEquals(sm.getMatrixIndex(' '), -1);
 
-    assertEquals(sm.getGapIndex(), -1); // no gap symbol
+    // substitution to or from unknown symbol gets minimum score
+    assertEquals(sm.getPairwiseScore('A', 'D'), -4f);
+    assertEquals(sm.getPairwiseScore('D', 'A'), -4f);
+    // unknown-to-self gets a score of 1
+    assertEquals(sm.getPairwiseScore('D', 'D'), 1f);
   }
 
   @Test(
@@ -161,8 +164,8 @@ public class ScoreMatrixTest
     assertEquals(sm.getMatrixIndex('D'), 3);
     assertEquals(sm.getMatrixIndex('X'), 22);
     assertEquals(sm.getMatrixIndex('x'), 22);
-    assertEquals(sm.getMatrixIndex('-'), 23);
-    assertEquals(sm.getMatrixIndex('*'), -1);
+    assertEquals(sm.getMatrixIndex('-'), -1);
+    assertEquals(sm.getMatrixIndex('*'), 23);
     assertEquals(sm.getMatrixIndex('.'), -1);
     assertEquals(sm.getMatrixIndex(' '), -1);
     assertEquals(sm.getMatrixIndex('?'), -1);
@@ -170,13 +173,6 @@ public class ScoreMatrixTest
   }
 
   @Test(groups = "Functional")
-  public void testGetGapIndex()
-  {
-    ScoreMatrix sm = ScoreModels.getInstance().getBlosum62();
-    assertEquals(sm.getGapIndex(), 23);
-  }
-
-  @Test(groups = "Functional")
   public void testGetSize()
   {
     ScoreMatrix sm = ScoreModels.getInstance().getBlosum62();
@@ -426,8 +422,6 @@ public class ScoreMatrixTest
     assertTrue(sm.isProtein());
     assertFalse(sm.isDNA());
     assertNull(sm.getDescription());
-    sm.setDescription("BLOSUM62");
-    assertEquals(sm.getDescription(), "BLOSUM62");
 
     /*
      * verify expected scores against ARNDCQEGHILKMFPSTWYVBZX
@@ -529,8 +523,6 @@ public class ScoreMatrixTest
     assertEquals(sm.getMatrixIndex('-'), 1);
     assertEquals(sm.getMatrixIndex(' '), -1);
     assertEquals(sm.getMatrixIndex('.'), -1);
-  
-    assertEquals(sm.getGapIndex(), 1);
   }
 
   @Test(groups = "Functional")
@@ -538,21 +530,24 @@ public class ScoreMatrixTest
   {
     float[][] scores = new float[2][];
     scores[0] = new float[] { 1f, 2f };
-    scores[1] = new float[] { 4f, 5f };
+    scores[1] = new float[] { -4f, 5f };
     ScoreMatrix sm = new ScoreMatrix("Test", new char[] { 'A', 'B' },
             scores);
     assertEquals(sm.getPairwiseScore('A', 'A'), 1f);
     assertEquals(sm.getPairwiseScore('A', 'a'), 1f);
     assertEquals(sm.getPairwiseScore('A', 'B'), 2f);
-    assertEquals(sm.getPairwiseScore('b', 'a'), 4f);
+    assertEquals(sm.getPairwiseScore('b', 'a'), -4f);
     assertEquals(sm.getPairwiseScore('B', 'b'), 5f);
 
     /*
-     * unknown symbols currently score zero
+     * unknown symbols currently score minimum score
+     * or 1 for identity with self
      */
-    assertEquals(sm.getPairwiseScore('A', '-'), 0f);
-    assertEquals(sm.getPairwiseScore('-', '-'), 0f);
-    assertEquals(sm.getPairwiseScore('Q', 'W'), 0f);
+    assertEquals(sm.getPairwiseScore('A', '-'), -4f);
+    assertEquals(sm.getPairwiseScore('-', 'A'), -4f);
+    assertEquals(sm.getPairwiseScore('-', '-'), 1f);
+    assertEquals(sm.getPairwiseScore('Q', 'W'), -4f);
+    assertEquals(sm.getPairwiseScore('Q', 'Q'), 1f);
 
     /*
      * symbols not in basic ASCII set score zero