1 package jalview.analysis.scoremodels;
3 import static org.testng.Assert.assertEquals;
5 import jalview.util.Comparison;
7 import org.testng.annotations.Test;
9 public class PIDModelTest
11 private static final double DELTA = 0.00001D;
13 @Test(groups = "Functional")
14 public void testGetPairwiseScore()
16 PIDModel sm = new PIDModel();
17 assertEquals(sm.getPairwiseScore('A', 'A'), 1f);
18 assertEquals(sm.getPairwiseScore('A', 'a'), 1f);
19 assertEquals(sm.getPairwiseScore('a', 'A'), 1f);
20 assertEquals(sm.getPairwiseScore('A', 'B'), 0f);
21 assertEquals(sm.getPairwiseScore('A', ' '), 0f);
22 assertEquals(sm.getPairwiseScore(' ', ' '), 0f);
23 assertEquals(sm.getPairwiseScore('.', '.'), 0f);
24 assertEquals(sm.getPairwiseScore('-', '-'), 0f);
28 * Regression test to verify that a (suitably configured) PIDModel computes
29 * the same percentage identities as the Comparison.PID method
31 @Test(groups = "Functional")
32 public void testComputePID_matchesComparisonPID()
35 * same length, no gaps
37 String s1 = "ARFNQDWSGI";
38 String s2 = "ARKNQDQSGI";
39 double newScore = new PIDModel().computePID(s1, s2,
40 SimilarityParams.Jalview);
41 double oldScore = Comparison.PID(s1, s2);
42 assertEquals(newScore, oldScore, DELTA);
45 * same length, with gaps
49 newScore = new PIDModel().computePID(s1, s2,
50 SimilarityParams.Jalview);
51 oldScore = Comparison.PID(s1, s2);
52 assertEquals(newScore, oldScore, DELTA);
55 * s2 longer than s1, with gaps
59 newScore = new PIDModel().computePID(s1, s2,
60 SimilarityParams.Jalview);
61 oldScore = Comparison.PID(s1, s2);
62 assertEquals(newScore, oldScore, DELTA);
65 * s1 longer than s2, with gaps
69 newScore = new PIDModel().computePID(s1, s2,
70 SimilarityParams.Jalview);
71 oldScore = Comparison.PID(s1, s2);
72 assertEquals(newScore, oldScore, DELTA);
75 * same but now also with gapped columns
79 newScore = new PIDModel().computePID(s1, s2, SimilarityParams.Jalview);
80 oldScore = Comparison.PID(s1, s2);
81 assertEquals(newScore, oldScore, DELTA);