5801437cc932210ce62c42d5fde451afd198c792
[jalview.git] / test / jalview / analysis / RnaTest.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.AssertJUnit.assertEquals;
24 import static org.testng.AssertJUnit.fail;
25
26 import jalview.analysis.SecStrConsensus.SimpleBP;
27
28 import java.util.Vector;
29
30 import org.testng.annotations.Test;
31
32 public class RnaTest
33 {
34   @Test(groups = { "Functional" })
35   public void testGetSimpleBPs() throws WUSSParseException
36   {
37     String rna = "([{})]"; // JAL-1081 example
38     Vector<SimpleBP> bps = Rna.GetSimpleBPs(rna);
39     assertEquals(3, bps.size());
40
41     /*
42      * the base pairs are added in the order in which the matching base is found
43      */
44     assertEquals(2, bps.get(0).bp5); // {
45     assertEquals(3, bps.get(0).bp3); // }
46     assertEquals(0, bps.get(1).bp5); // (
47     assertEquals(4, bps.get(1).bp3); // )
48     assertEquals(1, bps.get(2).bp5); // [
49     assertEquals(5, bps.get(2).bp3); // ]
50   }
51
52   @Test(groups = { "Functional" })
53   public void testGetSimpleBPs_unmatchedOpener()
54   {
55     String rna = "(([{})]";
56     try
57     {
58       Rna.GetSimpleBPs(rna);
59       fail("expected exception");
60     } catch (WUSSParseException e)
61     {
62       // expected
63     }
64   }
65
66   @Test(groups = { "Functional" })
67   public void testGetSimpleBPs_unmatchedCloser()
68   {
69     String rna = "([{})]]";
70     try
71     {
72       Rna.GetSimpleBPs(rna);
73       fail("expected exception");
74     } catch (WUSSParseException e)
75     {
76       // expected
77     }
78   }
79 }