2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.analysis;
23 import static org.testng.Assert.assertEquals;
24 import static org.testng.Assert.assertNull;
25 import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
27 import jalview.datamodel.Sequence;
28 import jalview.gui.JvOptionPane;
30 import org.testng.annotations.BeforeClass;
31 import org.testng.annotations.Test;
33 public class AlignSeqTest
36 @BeforeClass(alwaysRun = true)
37 public void setUpJvOptionPane()
39 JvOptionPane.setInteractiveMode(false);
40 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
43 @Test(groups = { "Functional" })
44 public void testExtractGaps()
46 assertNull(AlignSeq.extractGaps(null, null));
47 assertNull(AlignSeq.extractGaps(null, "ACG"));
48 assertNull(AlignSeq.extractGaps("-. ", null));
50 assertEquals(AlignSeq.extractGaps("", " AC-G.T"), " AC-G.T");
51 assertEquals(AlignSeq.extractGaps(" ", " AC-G.T"), "AC-G.T");
52 assertEquals(AlignSeq.extractGaps(" -", " AC-G.T"), "ACG.T");
53 assertEquals(AlignSeq.extractGaps(" -.", " AC-G.T ."), "ACGT");
54 assertEquals(AlignSeq.extractGaps("-", " AC-G.T"), " ACG.T");
57 @Test(groups = { "Functional" })
58 public void testIndexEncode_nucleotide()
60 AlignSeq as = new AlignSeq(new Sequence("s1", "TTAG"), new Sequence(
61 "s2", "ACGT"), AlignSeq.DNA);
62 int[] expected = new int[] { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
63 7, 7, 8, 8, 9, 9, -1, -1, 10, -1 };
64 String s = "aAcCgGtTuUiIxXrRyYnN .-?";
65 assertArrayEquals(expected, as.indexEncode(s));
68 @Test(groups = { "Functional" })
69 public void testIndexEncode_peptide()
71 AlignSeq as = new AlignSeq(new Sequence("s1", "PFY"), new Sequence(
72 "s2", "RQW"), AlignSeq.PEP);
73 int[] expected = new int[] { 0, 0, 1, 1, 2, 2, 21, 21, 22, 22, -1, 23,
75 String s = "aArRnNzZxX *.-?";
76 assertArrayEquals(expected, as.indexEncode(s));