JAL-4134 colour by annotation needs distinct annotation elements to hold colours
[jalview.git] / test / jalview / analysis / AlignSeqTest.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
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.
11  *  
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.
16  * 
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.
20  */
21 package jalview.analysis;
22
23 import static org.testng.Assert.assertEquals;
24 import static org.testng.Assert.assertNull;
25 import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
26
27 import jalview.datamodel.Sequence;
28 import jalview.gui.JvOptionPane;
29
30 import org.testng.annotations.BeforeClass;
31 import org.testng.annotations.Test;
32
33 public class AlignSeqTest
34 {
35
36   @BeforeClass(alwaysRun = true)
37   public void setUpJvOptionPane()
38   {
39     JvOptionPane.setInteractiveMode(false);
40     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
41   }
42
43   @Test(groups = { "Functional" })
44   public void testExtractGaps()
45   {
46     assertNull(AlignSeq.extractGaps(null, null));
47     assertNull(AlignSeq.extractGaps(null, "ACG"));
48     assertNull(AlignSeq.extractGaps("-. ", null));
49
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");
55     assertEquals(AlignSeq.extractGaps("-. ", " -. .-"), "");
56   }
57
58   @Test(groups = { "Functional" })
59   public void testIndexEncode_nucleotide()
60   {
61     AlignSeq as = new AlignSeq(new Sequence("s1", "TTAG"),
62             new Sequence("s2", "ACGT"), AlignSeq.DNA);
63     int[] expected = new int[] { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
64         7, 7, 8, 8, 9, 9, -1, -1, 10, -1 };
65     String s = "aAcCgGtTuUiIxXrRyYnN .-?";
66     assertArrayEquals(expected, as.indexEncode(s));
67   }
68
69   @Test(groups = { "Functional" })
70   public void testIndexEncode_peptide()
71   {
72     AlignSeq as = new AlignSeq(new Sequence("s1", "PFY"),
73             new Sequence("s2", "RQW"), AlignSeq.PEP);
74     int[] expected = new int[] { 0, 0, 1, 1, 2, 2, 21, 21, 22, 22, -1, 23,
75         -1, -1, -1 };
76     String s = "aArRnNzZxX *.-?";
77     assertArrayEquals(expected, as.indexEncode(s));
78   }
79 }