244fa0bbb46687ffdfbb0d39fab810f672d50cfa
[jalview.git] / test / jalview / gui / AlignFrameTest.java
1 package jalview.gui;
2
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertFalse;
5 import static org.testng.AssertJUnit.assertTrue;
6
7 import jalview.datamodel.Alignment;
8 import jalview.datamodel.AlignmentI;
9 import jalview.datamodel.Sequence;
10 import jalview.datamodel.SequenceFeature;
11 import jalview.datamodel.SequenceI;
12
13 import java.util.List;
14
15 import org.testng.annotations.Test;
16
17 public class AlignFrameTest
18 {
19
20   @Test
21   public void testHideFeatureColumns()
22   {
23     SequenceI seq1 = new Sequence("Seq1", "ABCDEFGHIJ");
24     SequenceI seq2 = new Sequence("Seq2", "ABCDEFGHIJ");
25     seq1.addSequenceFeature(new SequenceFeature("Metal", "", 1, 5,
26             Float.NaN, null));
27     seq2.addSequenceFeature(new SequenceFeature("Metal", "", 6, 10,
28             Float.NaN, null));
29     seq1.addSequenceFeature(new SequenceFeature("Turn", "", 2, 4,
30             Float.NaN, null));
31     seq2.addSequenceFeature(new SequenceFeature("Turn", "", 7, 9,
32             Float.NaN, null));
33     AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
34     AlignFrame af = new AlignFrame(al, al.getWidth(), al.getHeight());
35
36     /*
37      * hiding a feature not present does nothing
38      */
39     assertFalse(af.hideFeatureColumns("exon", true));
40     assertTrue(af.getViewport().getColumnSelection().isEmpty());
41     assertTrue(af.getViewport().getColumnSelection().getHiddenColumns()
42             .isEmpty());
43     assertFalse(af.hideFeatureColumns("exon", false));
44     assertTrue(af.getViewport().getColumnSelection().isEmpty());
45     assertTrue(af.getViewport().getColumnSelection().getHiddenColumns()
46             .isEmpty());
47
48     /*
49      * hiding a feature in all columns does nothing
50      */
51     assertFalse(af.hideFeatureColumns("Metal", true));
52     assertTrue(af.getViewport().getColumnSelection().isEmpty());
53     List<int[]> hidden = af.getViewport().getColumnSelection()
54             .getHiddenColumns();
55     assertTrue(hidden.isEmpty());
56
57     /*
58      * hide a feature present in some columns
59      * sequence positions [2-4], [7-9] are column positions
60      * [1-3], [6-8] base zero
61      */
62     assertTrue(af.hideFeatureColumns("Turn", true));
63     hidden = af.getViewport().getColumnSelection().getHiddenColumns();
64     assertEquals(2, hidden.size());
65     assertEquals(1, hidden.get(0)[0]);
66     assertEquals(3, hidden.get(0)[1]);
67     assertEquals(6, hidden.get(1)[0]);
68     assertEquals(8, hidden.get(1)[1]);
69   }
70 }