JAL-2416 allow alphabet symbol (optional) in first column of score table
[jalview.git] / test / jalview / analysis / scoremodels / ScoreModelsTest.java
diff --git a/test/jalview/analysis/scoremodels/ScoreModelsTest.java b/test/jalview/analysis/scoremodels/ScoreModelsTest.java
new file mode 100644 (file)
index 0000000..03c4b84
--- /dev/null
@@ -0,0 +1,54 @@
+package jalview.analysis.scoremodels;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import jalview.api.analysis.ScoreModelI;
+
+import java.util.Iterator;
+
+import org.testng.annotations.Test;
+
+public class ScoreModelsTest
+{
+  /**
+   * Verify that the singleton constructor successfully loads Jalview's built-in
+   * score models
+   */
+  @Test
+  public void testConstructor()
+  {
+    Iterator<ScoreModelI> models = ScoreModels.getInstance().getModels()
+            .iterator();
+    assertTrue(models.hasNext());
+
+    /*
+     * models are served in alphabetical order of name
+     * it so happens the 3 ScoreMatrix models precede the two
+     * others
+     */
+    ScoreModelI sm = models.next();
+    assertTrue(sm instanceof ScoreMatrix);
+    assertEquals(sm.getName(), "BLOSUM62");
+    assertEquals(((ScoreMatrix) sm).getPairwiseScore('I', 'R'), -3f);
+
+    sm = models.next();
+    assertTrue(sm instanceof ScoreMatrix);
+    assertEquals(sm.getName(), "DNA");
+    assertEquals(((ScoreMatrix) sm).getPairwiseScore('c', 'x'), 1f);
+
+    sm = models.next();
+    assertTrue(sm instanceof ScoreMatrix);
+    assertEquals(sm.getName(), "PAM250");
+    assertEquals(((ScoreMatrix) sm).getPairwiseScore('R', 'C'), -4f);
+
+    sm = models.next();
+    assertFalse(sm instanceof ScoreMatrix);
+    assertEquals(sm.getName(), "PID");
+
+    sm = models.next();
+    assertFalse(sm instanceof ScoreMatrix);
+    assertEquals(sm.getName(), "Sequence Feature Similarity");
+  }
+}