/*
* 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 .
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.gui;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import java.util.List;
import org.testng.annotations.Test;
public class AlignFrameTest
{
@Test
public void testHideFeatureColumns()
{
SequenceI seq1 = new Sequence("Seq1", "ABCDEFGHIJ");
SequenceI seq2 = new Sequence("Seq2", "ABCDEFGHIJ");
seq1.addSequenceFeature(new SequenceFeature("Metal", "", 1, 5,
Float.NaN, null));
seq2.addSequenceFeature(new SequenceFeature("Metal", "", 6, 10,
Float.NaN, null));
seq1.addSequenceFeature(new SequenceFeature("Turn", "", 2, 4,
Float.NaN, null));
seq2.addSequenceFeature(new SequenceFeature("Turn", "", 7, 9,
Float.NaN, null));
AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
AlignFrame af = new AlignFrame(al, al.getWidth(), al.getHeight());
/*
* hiding a feature not present does nothing
*/
assertFalse(af.hideFeatureColumns("exon", true));
assertTrue(af.getViewport().getColumnSelection().isEmpty());
assertTrue(af.getViewport().getColumnSelection().getHiddenColumns()
.isEmpty());
assertFalse(af.hideFeatureColumns("exon", false));
assertTrue(af.getViewport().getColumnSelection().isEmpty());
assertTrue(af.getViewport().getColumnSelection().getHiddenColumns()
.isEmpty());
/*
* hiding a feature in all columns does nothing
*/
assertFalse(af.hideFeatureColumns("Metal", true));
assertTrue(af.getViewport().getColumnSelection().isEmpty());
List hidden = af.getViewport().getColumnSelection()
.getHiddenColumns();
assertTrue(hidden.isEmpty());
/*
* hide a feature present in some columns
* sequence positions [2-4], [7-9] are column positions
* [1-3], [6-8] base zero
*/
assertTrue(af.hideFeatureColumns("Turn", true));
hidden = af.getViewport().getColumnSelection().getHiddenColumns();
assertEquals(2, hidden.size());
assertEquals(1, hidden.get(0)[0]);
assertEquals(3, hidden.get(0)[1]);
assertEquals(6, hidden.get(1)[0]);
assertEquals(8, hidden.get(1)[1]);
}
}