+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.analysis;
import static org.testng.Assert.assertEquals;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ConservationTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testRecordConservation()
{
seqs.add(new Sequence("seq3", "VG-Y"));
seqs.add(new Sequence("seq4", "VGNW"));
- Conservation cons = new Conservation("", 3, seqs, 0, 50);
+ Conservation cons = new Conservation("", seqs, 0, 50);
int[] counts = cons.countConservationAndGaps(0);
assertEquals(counts[0], 1); // conserved
assertEquals(counts[1], 1); // gap count
seqs.add(new Sequence("seq3", "V-IW-"));
seqs.add(new Sequence("seq4", "VGLH-"));
seqs.add(new Sequence("seq5", "VGLH-"));
-
+
/*
* threshold 50% means a residue has to occur 3 or more times
* in a column to be counted for conservation
// but it is treated as percentage threshold in calculate() ?
Conservation cons = new Conservation("", 50, seqs, 0, 4);
cons.calculate();
-
+
/*
* column 0: all V (hydrophobic/aliphatic/small)
*/
assertEquals(colCons.get("polar").intValue(), 0);
assertEquals(colCons.get("positive").intValue(), 0);
assertEquals(colCons.get("aromatic").intValue(), 0);
-
+
/*
* column 1: all G (hydrophobic/small/tiny)
* gaps are ignored as not above threshold
assertEquals(colCons.get("polar").intValue(), 0);
assertEquals(colCons.get("positive").intValue(), 0);
assertEquals(colCons.get("aromatic").intValue(), 0);
-
+
/*
* column 2: I/L (aliphatic/hydrophobic), all others negatively conserved
*/
assertEquals(colCons.get("polar").intValue(), 0);
assertEquals(colCons.get("positive").intValue(), 0);
assertEquals(colCons.get("aromatic").intValue(), 0);
-
+
/*
* column 3: nothing above threshold
*/
colCons = cons.total[3];
assertTrue(colCons.isEmpty());
-
+
/*
* column 4: all gaps - counted as having all properties
*/
* verify tooltips; conserved properties are sorted alphabetically within
* positive followed by negative
*/
- assertEquals(
- cons.getTooltip(0),
+ assertEquals(cons.getTooltip(0),
"aliphatic hydrophobic small !aromatic !charged !negative !polar !positive !proline !tiny");
- assertEquals(
- cons.getTooltip(1),
+ assertEquals(cons.getTooltip(1),
"hydrophobic small tiny !aliphatic !aromatic !charged !negative !polar !positive !proline");
- assertEquals(
- cons.getTooltip(2),
+ assertEquals(cons.getTooltip(2),
"aliphatic hydrophobic !aromatic !charged !negative !polar !positive !proline !small !tiny");
- assertEquals(cons.getTooltip(3), "hydrophobic !negative !proline !tiny");
+ assertEquals(cons.getTooltip(3),
+ "hydrophobic !negative !proline !tiny");
assertEquals(cons.getTooltip(4), "hydrophobic");
assertEquals(cons.getTooltip(5), "");
assertEquals(cons.getTooltip(6), "");