1. Project Clover database Fri Dec 6 2024 13:47:14 GMT
  2. Package jalview.analysis

File AlignSeqTest.java

 

Code metrics

0
24
5
1
93
60
5
0.21
4.8
5
1

Classes

Class
Line #
Actions
AlignSeqTest 33 24 5
1.0100%
 

Contributing tests

This file is covered by 4 tests. .

Source view

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  1 toggle @BeforeClass(alwaysRun = true)
37    public void setUpJvOptionPane()
38    {
39  1 JvOptionPane.setInteractiveMode(false);
40  1 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
41    }
42   
 
43  1 toggle @Test(groups = { "Functional" })
44    public void testExtractGaps()
45    {
46  1 assertNull(AlignSeq.extractGaps(null, null));
47  1 assertNull(AlignSeq.extractGaps(null, "ACG"));
48  1 assertNull(AlignSeq.extractGaps("-. ", null));
49   
50  1 assertEquals(AlignSeq.extractGaps("", " AC-G.T"), " AC-G.T");
51  1 assertEquals(AlignSeq.extractGaps(" ", " AC-G.T"), "AC-G.T");
52  1 assertEquals(AlignSeq.extractGaps(" -", " AC-G.T"), "ACG.T");
53  1 assertEquals(AlignSeq.extractGaps(" -.", " AC-G.T ."), "ACGT");
54  1 assertEquals(AlignSeq.extractGaps("-", " AC-G.T"), " ACG.T");
55  1 assertEquals(AlignSeq.extractGaps("-. ", " -. .-"), "");
56    }
57   
 
58  1 toggle @Test(groups = { "Functional" })
59    public void testIndexEncode_nucleotide()
60    {
61  1 AlignSeq as = new AlignSeq(new Sequence("s1", "TTAG"),
62    new Sequence("s2", "ACGT"), AlignSeq.DNA);
63  1 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  1 String s = "aAcCgGtTuUiIxXrRyYnN .-?";
66  1 assertArrayEquals(expected, as.indexEncode(s));
67    }
68   
 
69  1 toggle @Test(groups = { "Functional" })
70    public void testIndexEncode_peptide()
71    {
72  1 AlignSeq as = new AlignSeq(new Sequence("s1", "PFY"),
73    new Sequence("s2", "RQW"), AlignSeq.PEP);
74  1 int[] expected = new int[] { 0, 0, 1, 1, 2, 2, 21, 21, 22, 22, -1, 23,
75    -1, -1, -1 };
76  1 String s = "aArRnNzZxX *.-?";
77  1 assertArrayEquals(expected, as.indexEncode(s));
78    }
79   
 
80  1 toggle @Test(groups = { "Functional" })
81    public void testGlobalAlignment()
82    {
83  1 String seq1 = "CAGCTAGCG", seq2 = "CCATACGA";
84  1 Sequence sq1 = new Sequence("s1", seq1), sq2 = new Sequence("s2", seq2);
85    // AlignSeq doesn't report the unaligned regions at either end of sequences
86    // String alseq1="-CAGCTAGCG-",alseq2="CCA--TA-CGA";
87    // so we check we have the aligned segment correct only
88  1 String alseq1 = "CAGCTAGCG", alseq2 = "CA--TA-CG";
89  1 AlignSeq as = AlignSeq.doGlobalNWAlignment(sq1, sq2, AlignSeq.DNA);
90  1 assertEquals(as.getAStr1() + "\n" + as.getAStr2(),
91    alseq1 + "\n" + alseq2);
92    }
93    }