+/*
+ * 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.datamodel;
+import java.util.Locale;
+
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import jalview.datamodel.ResidueCount.SymbolCounts;
import jalview.gui.JvOptionPane;
+import java.util.Arrays;
+
import org.junit.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
assertEquals(rc.getCount('N'), 1);
assertEquals(rc.getCount('?'), 0);
assertEquals(rc.getCount('-'), 0);
+ assertEquals(rc.getTotalResidueCount(), 11);
assertFalse(rc.isCountingInts());
assertFalse(rc.isUsingOtherData());
assertEquals(rc.getCount(' '), 4);
assertEquals(rc.getCount('-'), 4);
assertEquals(rc.getCount('.'), 4);
+ assertEquals(rc.getTotalResidueCount(), 0);
assertFalse(rc.isUsingOtherData());
assertFalse(rc.isCountingInts());
+
+ rc.set(ResidueCount.GAP_COUNT, Short.MAX_VALUE-2);
+ assertEquals(rc.getGapCount(), Short.MAX_VALUE-2);
+ assertFalse(rc.isCountingInts());
+ rc.addGap();
+ assertEquals(rc.getGapCount(), Short.MAX_VALUE-1);
+ assertFalse(rc.isCountingInts());
+ rc.addGap();
+ assertEquals(rc.getGapCount(), Short.MAX_VALUE);
+ rc.addGap();
+ assertTrue(rc.isCountingInts());
+ assertEquals(rc.getGapCount(), Short.MAX_VALUE+1);
}
@Test(groups = "Functional")
assertEquals(rc.getCount('m'), 13);
assertEquals(rc.getCount('G'), 0);
assertEquals(rc.getCount('-'), 0);
+ assertEquals(rc.getTotalResidueCount(), 27);
assertFalse(rc.isCountingInts());
assertFalse(rc.isUsingOtherData());
ResidueCount rc = new ResidueCount(false);
// expected characters (upper or lower case):
String aas = "ACDEFGHIKLMNPQRSTVWXY";
- String lower = aas.toLowerCase();
+ String lower = aas.toLowerCase(Locale.ROOT);
for (int i = 0; i < aas.length(); i++)
{
rc.put(aas.charAt(i), i);
ResidueCount rc = new ResidueCount(true);
// expected characters (upper or lower case):
String nucs = "ACGTUN";
- String lower = nucs.toLowerCase();
+ String lower = nucs.toLowerCase(Locale.ROOT);
for (int i = 0; i < nucs.length(); i++)
{
rc.put(nucs.charAt(i), i);
assertEquals(rc.getCount('?'), 6);
assertEquals(rc.getCount('!'), 7);
}
+
+ @Test(groups = "Functional")
+ public void testConstructor_forSequences()
+ {
+ SequenceI seq1 = new Sequence("seq1", "abcde--. FCD");
+ SequenceI seq2 = new Sequence("seq2", "ab.kKqBd-.");
+ ResidueCount rc = new ResidueCount(Arrays.asList(seq1, seq2));
+
+ assertEquals(rc.getGapCount(), 7);
+ assertEquals(rc.getTotalResidueCount(), 15); // excludes gaps
+ assertEquals(rc.getCount('a'), 2);
+ assertEquals(rc.getCount('A'), 2);
+ assertEquals(rc.getCount('B'), 3);
+ assertEquals(rc.getCount('c'), 2);
+ assertEquals(rc.getCount('D'), 3);
+ assertEquals(rc.getCount('f'), 1);
+ assertEquals(rc.getCount('K'), 2);
+ assertEquals(rc.getCount('Q'), 1);
+ }
}