package jalview.gui; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertSame; import jalview.analysis.scoremodels.ScoreModels; import jalview.api.analysis.ScoreModelI; import jalview.bin.Cache; import java.util.List; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class CalculationChooserTest { @BeforeClass(alwaysRun = true) public void setUp() { // read-only Jalview properties Cache.loadProperties("test/jalview/io/testProps.jvprops"); Cache.applicationProperties.setProperty("BLOSUM62_PCA_FOR_NUCLEOTIDE", Boolean.FALSE.toString()); } @Test(groups = "Functional") public void testGetApplicableScoreModels() { ScoreModels models = ScoreModels.getInstance(); ScoreModelI blosum62 = models.getBlosum62(); ScoreModelI pam250 = models.getPam250(); ScoreModelI dna = models.getDefaultModel(false); /* * peptide models for PCA */ List filtered = CalculationChooser .getApplicableScoreModels(false, true); assertEquals(filtered.size(), 4); assertSame(filtered.get(0), blosum62); assertSame(filtered.get(1), pam250); assertEquals(filtered.get(2).getName(), "PID"); assertEquals(filtered.get(3).getName(), "Sequence Feature Similarity"); /* * peptide models for Tree are the same */ filtered = CalculationChooser.getApplicableScoreModels(false, false); assertEquals(filtered.size(), 4); assertSame(filtered.get(0), blosum62); assertSame(filtered.get(1), pam250); assertEquals(filtered.get(2).getName(), "PID"); assertEquals(filtered.get(3).getName(), "Sequence Feature Similarity"); /* * nucleotide models for PCA */ filtered = CalculationChooser.getApplicableScoreModels(true, true); assertEquals(filtered.size(), 3); assertSame(filtered.get(0), dna); assertEquals(filtered.get(1).getName(), "PID"); assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity"); /* * nucleotide models for Tree are the same */ filtered = CalculationChooser.getApplicableScoreModels(true, false); assertEquals(filtered.size(), 3); assertSame(filtered.get(0), dna); assertEquals(filtered.get(1).getName(), "PID"); assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity"); /* * enable inclusion of BLOSUM62 for nucleotide PCA (JAL-2962) */ Cache.applicationProperties.setProperty("BLOSUM62_PCA_FOR_NUCLEOTIDE", Boolean.TRUE.toString()); /* * nucleotide models for Tree are unchanged */ filtered = CalculationChooser.getApplicableScoreModels(true, false); assertEquals(filtered.size(), 3); assertSame(filtered.get(0), dna); assertEquals(filtered.get(1).getName(), "PID"); assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity"); /* * nucleotide models for PCA add BLOSUM62 as last option */ filtered = CalculationChooser.getApplicableScoreModels(true, true); assertEquals(filtered.size(), 4); assertSame(filtered.get(0), dna); assertEquals(filtered.get(1).getName(), "PID"); assertEquals(filtered.get(2).getName(), "Sequence Feature Similarity"); assertSame(filtered.get(3), blosum62); } }