+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.controller;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
-import jalview.datamodel.ColumnSelection;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import java.util.BitSet;
-import java.util.List;
import org.testng.annotations.Test;
0f, null));
/*
- * select the first three columns --> seq1 2-3
+ * select the first three columns --> Metal in seq1 2-3
*/
SequenceGroup sg = new SequenceGroup();
sg.setStartRes(0); // base 0
assertEquals(2, bs.cardinality());
assertTrue(bs.get(1));
assertTrue(bs.get(2));
-
+
/*
- * select the first four columns: seq1 2:4, seq2 4:4
+ * select the first four columns: Metal in seq1 2:4, seq2 4:4
*/
sg.setEndRes(3);
bs.clear();
- seqCount = AlignViewController.findColumnsWithFeature("Metal", sg,
- bs);
+ seqCount = AlignViewController.findColumnsWithFeature("Metal", sg, bs);
assertEquals(2, seqCount);
assertEquals(3, bs.cardinality());
assertTrue(bs.get(1));
assertTrue(bs.get(3));
/*
- * select column 11: seq3 only
+ * select column 11: Metal in seq3 only
*/
sg.setStartRes(10);
sg.setEndRes(10);
assertEquals(0, seqCount);
assertEquals(0, bs.cardinality());
}
-
- @Test(groups = "Functional")
- public void testSelectMarkedColumns_invert()
- {
- ColumnSelection cs = new ColumnSelection();
- cs.addElement(5); // this will be cleared
- BitSet toMark = new BitSet();
- toMark.set(1);
- toMark.set(3);
- toMark.set(6);
- toMark.set(9);
-
- /*
- * inverted selection of {3, 6} should select {4, 5, 7, 8}
- */
- assertTrue(AlignViewController.selectMarkedColumns(cs, true, false,
- false, toMark, 3, 8));
- List<Integer> selected = cs.getSelected();
- assertEquals(4, selected.size());
- assertTrue(selected.contains(4));
- assertTrue(selected.contains(5));
- assertTrue(selected.contains(7));
- assertTrue(selected.contains(8));
- }
-
- @Test(groups = "Functional")
- public void testSelectMarkedColumns()
- {
- ColumnSelection cs = new ColumnSelection();
- cs.addElement(5); // this will be cleared
- BitSet toMark = new BitSet();
- toMark.set(1);
- toMark.set(3);
- toMark.set(6);
- toMark.set(9);
-
- assertTrue(AlignViewController.selectMarkedColumns(cs, false, false,
- false, toMark, 3, 8));
- List<Integer> selected = cs.getSelected();
- assertEquals(2, selected.size());
- assertTrue(selected.contains(3));
- assertTrue(selected.contains(6));
- }
-
- @Test(groups = "Functional")
- public void testSelectMarkedColumns_extend()
- {
- ColumnSelection cs = new ColumnSelection();
- cs.addElement(1);
- cs.addElement(5);
- BitSet toMark = new BitSet();
- toMark.set(1);
- toMark.set(3);
- toMark.set(6);
- toMark.set(9);
-
- /*
- * extending selection of {3, 6} should leave {1, 3, 5, 6} selected
- */
- assertTrue(AlignViewController.selectMarkedColumns(cs, false, true,
- false, toMark, 3, 8));
- List<Integer> selected = cs.getSelected();
- assertEquals(4, selected.size());
- assertTrue(selected.contains(1));
- assertTrue(selected.contains(3));
- assertTrue(selected.contains(5));
- assertTrue(selected.contains(6));
- }
-
- @Test(groups = "Functional")
- public void testSelectMarkedColumns_toggle()
- {
- ColumnSelection cs = new ColumnSelection();
- cs.addElement(1); // outside change range
- cs.addElement(3);
- cs.addElement(4);
- cs.addElement(10); // outside change range
- BitSet toMark = new BitSet();
- toMark.set(1);
- toMark.set(3);
- toMark.set(6);
- toMark.set(9);
-
- /*
- * toggling state of {3, 6} should leave {1, 4, 6, 10} selected
- */
- assertTrue(AlignViewController.selectMarkedColumns(cs, false, false,
- true, toMark, 3, 8));
- List<Integer> selected = cs.getSelected();
- assertEquals(4, selected.size());
- assertTrue(selected.contains(1));
- assertTrue(selected.contains(4));
- assertTrue(selected.contains(6));
- assertTrue(selected.contains(10));
- }
- // TODO testSelectMarkedColumns with combinations of invert/extend/toggle set
}