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.datamodel;
23 import static org.testng.Assert.assertEquals;
25 import jalview.gui.JvOptionPane;
27 import org.testng.annotations.BeforeClass;
28 import org.testng.annotations.Test;
30 public class CigarArrayTest
32 @BeforeClass(alwaysRun = true)
33 public void setUpJvOptionPane()
35 JvOptionPane.setInteractiveMode(false);
36 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
39 @Test(groups = "Functional")
40 public void TestConstructor()
42 SequenceI seq1 = new Sequence("sq1",
43 "ASFDDABACBACBACBACBACBACBABCABCBACBABCAB");
44 Sequence seq2 = new Sequence("sq2",
45 "TTTTTTACBCBABCABCABCABCBACBACBABCABCABCBA");
47 // construct alignment
48 AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
51 HiddenColumns hc = new HiddenColumns();
53 hc.hideColumns(16, 20);
56 SequenceGroup sg1 = new SequenceGroup();
57 sg1.addSequence(seq1, false);
61 CigarArray cig = new CigarArray(al, hc, sg1);
62 String result = cig.getCigarstring();
63 assertEquals(result, "1M4D9M5D3M");
65 // group starts at hidden cols
67 cig = new CigarArray(al, hc, sg1);
68 result = cig.getCigarstring();
69 assertEquals(result, "4D9M5D3M");
71 // group starts at last but 1 hidden col
73 cig = new CigarArray(al, hc, sg1);
74 result = cig.getCigarstring();
75 assertEquals(result, "2D9M5D3M");
77 // group starts at last hidden col
79 cig = new CigarArray(al, hc, sg1);
80 result = cig.getCigarstring();
81 assertEquals(result, "1D9M5D3M");
83 // group starts just after hidden region
85 cig = new CigarArray(al, hc, sg1);
86 result = cig.getCigarstring();
87 assertEquals(result, "9M5D3M");
89 // group ends just before start of hidden region
92 cig = new CigarArray(al, hc, sg1);
93 result = cig.getCigarstring();
94 assertEquals(result, "2D9M");
96 // group ends at start of hidden region
98 cig = new CigarArray(al, hc, sg1);
99 result = cig.getCigarstring();
100 assertEquals(result, "2D9M1D");
102 // group ends 1 after start of hidden region
104 cig = new CigarArray(al, hc, sg1);
105 result = cig.getCigarstring();
106 assertEquals(result, "2D9M2D");
108 // group ends at end of hidden region
110 cig = new CigarArray(al, hc, sg1);
111 result = cig.getCigarstring();
112 assertEquals(result, "2D9M5D");
114 // group ends just after end of hidden region
116 cig = new CigarArray(al, hc, sg1);
117 result = cig.getCigarstring();
118 assertEquals(result, "2D9M5D1M");
120 // group ends 2 after end of hidden region
122 cig = new CigarArray(al, hc, sg1);
123 result = cig.getCigarstring();
124 assertEquals(result, "2D9M5D2M");