3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertSame;
6 import jalview.analysis.scoremodels.ScoreModels;
7 import jalview.api.analysis.ScoreModelI;
8 import jalview.bin.Cache;
10 import java.util.List;
12 import org.testng.annotations.BeforeClass;
13 import org.testng.annotations.Test;
15 public class CalculationChooserTest
17 @BeforeClass(alwaysRun = true)
20 // read-only Jalview properties
21 Cache.loadProperties("test/jalview/io/testProps.jvprops");
22 Cache.setPropertyNoSave("BLOSUM62_PCA_FOR_NUCLEOTIDE",
23 Boolean.FALSE.toString());
26 @Test(groups = "Functional")
27 public void testGetApplicableScoreModels()
29 ScoreModels models = ScoreModels.getInstance();
30 ScoreModelI blosum62 = models.getBlosum62();
31 ScoreModelI pam250 = models.getPam250();
32 ScoreModelI dna = models.getDefaultModel(false);
35 * peptide models for PCA
37 List<ScoreModelI> filtered = CalculationChooser
38 .getApplicableScoreModels(false, true);
39 assertEquals(filtered.size(), 4);
40 assertSame(filtered.get(0), blosum62);
41 assertSame(filtered.get(1), pam250);
42 assertEquals(filtered.get(2).getName(), "PID");
43 assertEquals(filtered.get(3).getName(), "Sequence Feature Similarity");
46 * peptide models for Tree are the same
48 filtered = CalculationChooser.getApplicableScoreModels(false, false);
49 assertEquals(filtered.size(), 4);
50 assertSame(filtered.get(0), blosum62);
51 assertSame(filtered.get(1), pam250);
52 assertEquals(filtered.get(2).getName(), "PID");
53 assertEquals(filtered.get(3).getName(), "Sequence Feature Similarity");
56 * nucleotide models for PCA
58 filtered = CalculationChooser.getApplicableScoreModels(true, true);
59 assertEquals(filtered.size(), 3);
60 assertSame(filtered.get(0), dna);
61 assertEquals(filtered.get(1).getName(), "PID");
62 assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity");
65 * nucleotide models for Tree are the same
67 filtered = CalculationChooser.getApplicableScoreModels(true, false);
68 assertEquals(filtered.size(), 3);
69 assertSame(filtered.get(0), dna);
70 assertEquals(filtered.get(1).getName(), "PID");
71 assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity");
74 * enable inclusion of BLOSUM62 for nucleotide PCA (JAL-2962)
76 Cache.setPropertyNoSave("BLOSUM62_PCA_FOR_NUCLEOTIDE",
77 Boolean.TRUE.toString());
80 * nucleotide models for Tree are unchanged
82 filtered = CalculationChooser.getApplicableScoreModels(true, false);
83 assertEquals(filtered.size(), 3);
84 assertSame(filtered.get(0), dna);
85 assertEquals(filtered.get(1).getName(), "PID");
86 assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity");
89 * nucleotide models for PCA add BLOSUM62 as last option
91 filtered = CalculationChooser.getApplicableScoreModels(true, true);
92 assertEquals(filtered.size(), 4);
93 assertSame(filtered.get(0), dna);
94 assertEquals(filtered.get(1).getName(), "PID");
95 assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity");
96 assertSame(filtered.get(3), blosum62);