Clover icon

jalviewX

  1. Project Clover database Wed Oct 31 2018 15:13:58 GMT
  2. Package jalview.analysis

File TestAlignSeq.java

 

Code metrics

2
30
7
1
134
81
8
0.27
4.29
7
1.14

Classes

Class Line # Actions
TestAlignSeq 43 30 8 2
0.9487179594.9%
 

Contributing tests

This file is covered by 3 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.AssertJUnit.assertEquals;
24    import static org.testng.AssertJUnit.assertNull;
25   
26    import jalview.datamodel.Mapping;
27    import jalview.datamodel.Sequence;
28    import jalview.datamodel.SequenceI;
29    import jalview.gui.JvOptionPane;
30   
31    import java.io.PrintStream;
32   
33    import org.testng.annotations.BeforeClass;
34    import org.testng.annotations.BeforeMethod;
35    import org.testng.annotations.Test;
36   
37    /**
38    * Test the alignment -> Mapping routines
39    *
40    * @author jimp
41    *
42    */
 
43    public class TestAlignSeq
44    {
45   
 
46  1 toggle @BeforeClass(alwaysRun = true)
47    public void setUpJvOptionPane()
48    {
49  1 JvOptionPane.setInteractiveMode(false);
50  1 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
51    }
52   
53    SequenceI s1, s2, s3;
54   
55    /**
56    * @throws java.lang.Exception
57    */
 
58  3 toggle @BeforeMethod(alwaysRun = true)
59    public void setUp() throws Exception
60    {
61  3 s1 = new Sequence("Seq1", "ASDFAQQQRRRSSS");
62  3 s1.setStart(3);
63  3 s1.setEnd(18);
64  3 s2 = new Sequence("Seq2", "ASDFA");
65  3 s2.setStart(5);
66  3 s2.setEnd(9);
67  3 s3 = new Sequence("Seq3", "SDFAQQQSSS");
68   
69    }
70   
 
71  1 toggle @Test(groups = { "Functional" })
72    /**
73    * simple test that mapping from alignment corresponds identical positions.
74    */
75    public void testGetMappingForS1()
76    {
77  1 AlignSeq as = AlignSeq.doGlobalNWAlignment(s1, s2, AlignSeq.PEP);
78  1 System.out.println("s1: " + as.getAStr1());
79  1 System.out.println("s2: " + as.getAStr2());
80   
81    // aligned results match
82  1 assertEquals("ASDFA", as.getAStr1());
83  1 assertEquals(as.getAStr1(), as.getAStr2());
84   
85  1 Mapping s1tos2 = as.getMappingFromS1(false);
86  1 System.out.println(s1tos2.getMap().toString());
87  5 for (int i = s2.getStart(); i < s2.getEnd(); i++)
88    {
89  4 System.out.println("Position in s2: " + i
90    + " maps to position in s1: " + s1tos2.getPosition(i));
91    // TODO fails: getCharAt doesn't allow for the start position??
92    // assertEquals(String.valueOf(s2.getCharAt(i)),
93    // String.valueOf(s1.getCharAt(s1tos2.getPosition(i))));
94    }
95    }
96   
 
97  1 toggle @Test(groups = { "Functional" })
98    public void testExtractGaps()
99    {
100  1 assertNull(AlignSeq.extractGaps(null, null));
101  1 assertNull(AlignSeq.extractGaps(". -", null));
102  1 assertNull(AlignSeq.extractGaps(null, "AB-C"));
103   
104  1 assertEquals("ABCD", AlignSeq.extractGaps(" .-", ". -A-B.C D."));
105    }
106   
 
107  1 toggle @Test(groups = { "Functional" })
108    public void testPrintAlignment()
109    {
110  1 AlignSeq as = AlignSeq.doGlobalNWAlignment(s1, s3, AlignSeq.PEP);
111  1 final StringBuilder baos = new StringBuilder();
112  1 PrintStream ps = new PrintStream(System.out)
113    {
 
114  1 toggle @Override
115    public void print(String x)
116    {
117  1 baos.append(x);
118    }
119   
 
120  0 toggle @Override
121    public void println()
122    {
123  0 baos.append("\n");
124    }
125    };
126   
127  1 as.printAlignment(ps);
128  1 String expected = "Score = 320.0\nLength of alignment = 10\nSequence Seq1/4-13 (Sequence length = 14)\nSequence Seq3/1-10 (Sequence length = 10)\n\n"
129    + "Seq1/4-13 SDFAQQQRRR\n"
130    + " ||||||| \n"
131    + "Seq3/1-10 SDFAQQQSSS\n\n" + "Percentage ID = 70.00\n\n";
132  1 assertEquals(expected, baos.toString());
133    }
134    }