6c2e7777d623393d2247c3d41f6301a087a32dad
[jalview.git] / test / jalview / gui / CalculationChooserTest.java
1 package jalview.gui;
2
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertSame;
5
6 import jalview.analysis.scoremodels.ScoreModels;
7 import jalview.api.analysis.ScoreModelI;
8 import jalview.bin.Cache;
9
10 import java.util.List;
11
12 import org.testng.annotations.BeforeClass;
13 import org.testng.annotations.Test;
14
15 public class CalculationChooserTest
16 {
17   @BeforeClass(alwaysRun = true)
18   public void setUp()
19   {
20     // read-only Jalview properties
21     Cache.loadProperties("test/jalview/io/testProps.jvprops");
22     Cache.applicationProperties.setProperty("BLOSUM62_PCA_FOR_NUCLEOTIDE",
23             Boolean.FALSE.toString());
24   }
25
26   @Test(groups = "Functional")
27   public void testGetApplicableScoreModels()
28   {
29     ScoreModels models = ScoreModels.getInstance();
30     ScoreModelI blosum62 = models.getBlosum62();
31     ScoreModelI pam250 = models.getPam250();
32     ScoreModelI dna = models.getDefaultModel(false);
33
34     /*
35      * peptide models for PCA
36      */
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");
44
45     /*
46      * peptide models for Tree are the same
47      */
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");
54
55     /*
56      * nucleotide models for PCA
57      */
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");
63
64     /*
65      * nucleotide models for Tree are the same
66      */
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");
72
73     /*
74      * enable inclusion of BLOSUM62 for nucleotide PCA (JAL-2962)
75      */
76     Cache.applicationProperties.setProperty("BLOSUM62_PCA_FOR_NUCLEOTIDE",
77             Boolean.TRUE.toString());
78
79     /*
80      * nucleotide models for Tree are unchanged
81      */
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");
87
88     /*
89      * nucleotide models for PCA add BLOSUM62 as last option
90      */
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);
97   }
98 }