2ffebe0317554059d7999f132e635084f6f14e5d
[jalview.git] / test / jalview / datamodel / ColumnSelectionTest.java
1 package jalview.datamodel;
2
3 import static org.testng.AssertJUnit.assertEquals;
4
5 import java.util.List;
6
7 import org.testng.annotations.Test;
8
9 public class ColumnSelectionTest
10 {
11
12   @Test
13   public void testAddElement()
14   {
15     ColumnSelection cs = new ColumnSelection();
16     cs.addElement(2);
17     cs.addElement(5);
18     List<Integer> sel = cs.getSelected();
19     assertEquals(2, sel.size());
20     assertEquals(new Integer(2), sel.get(0));
21     assertEquals(new Integer(5), sel.get(1));
22   }
23
24   /**
25    * Test the remove method - in particular to verify that remove(int i) removes
26    * the element whose value is i, _NOT_ the i'th element.
27    */
28   @Test
29   public void testRemoveElement()
30   {
31     ColumnSelection cs = new ColumnSelection();
32     cs.addElement(2);
33     cs.addElement(5);
34
35     // removing elements not in the list has no effect
36     cs.removeElement(0);
37     cs.removeElement(1);
38     List<Integer> sel = cs.getSelected();
39     assertEquals(2, sel.size());
40     assertEquals(new Integer(2), sel.get(0));
41     assertEquals(new Integer(5), sel.get(1));
42
43     // removing an element in the list removes it
44     cs.removeElement(2);
45     assertEquals(1, sel.size());
46     assertEquals(new Integer(5), sel.get(0));
47   }
48
49   /**
50    * Test the method that finds the visible column position of an alignment
51    * column, allowing for hidden columns.
52    */
53   @Test
54   public void testFindColumnPosition()
55   {
56     ColumnSelection cs = new ColumnSelection();
57     assertEquals(5, cs.findColumnPosition(5));
58
59     // hiding column 6 makes no difference
60     cs.hideColumns(6, 6);
61     assertEquals(5, cs.findColumnPosition(5));
62
63     // hiding column 5 makes no difference
64     cs.hideColumns(5, 5);
65     assertEquals(5, cs.findColumnPosition(5));
66
67     // hiding column 4 moves column 5 to column 4
68     cs.hideColumns(4, 4);
69     assertEquals(4, cs.findColumnPosition(5));
70
71     // hiding columns 1 and 2 moves column 5 to column 2
72     cs.hideColumns(1, 2);
73     assertEquals(2, cs.findColumnPosition(5));
74   }
75 }