/* * 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.datamodel; import static org.testng.Assert.assertNull; import static org.testng.AssertJUnit.assertEquals; import java.util.ArrayList; import java.util.List; import org.testng.annotations.Test; public class HiddenColumnsCursorTest { /** * Test the method which finds the corresponding region given a column */ @Test(groups = { "Functional" }) public void testFindRegionForColumn() { HiddenColumnsCursor cursor = new HiddenColumnsCursor(); HiddenCursorPosition pos = cursor.findRegionForColumn(20); assertNull(pos); List hidden = new ArrayList<>(); hidden.add(new int[] { 53, 76 }); hidden.add(new int[] { 104, 125 }); cursor = new HiddenColumnsCursor(hidden); int regionIndex = cursor.findRegionForColumn(126).getRegionIndex(); assertEquals(2, regionIndex); regionIndex = cursor.findRegionForColumn(125).getRegionIndex(); assertEquals(1, regionIndex); regionIndex = cursor.findRegionForColumn(108).getRegionIndex(); assertEquals(1, regionIndex); regionIndex = cursor.findRegionForColumn(104).getRegionIndex(); assertEquals(1, regionIndex); regionIndex = cursor.findRegionForColumn(103).getRegionIndex(); assertEquals(1, regionIndex); regionIndex = cursor.findRegionForColumn(77).getRegionIndex(); assertEquals(1, regionIndex); regionIndex = cursor.findRegionForColumn(76).getRegionIndex(); assertEquals(0, regionIndex); regionIndex = cursor.findRegionForColumn(53).getRegionIndex(); assertEquals(0, regionIndex); regionIndex = cursor.findRegionForColumn(52).getRegionIndex(); assertEquals(0, regionIndex); regionIndex = cursor.findRegionForColumn(0).getRegionIndex(); assertEquals(0, regionIndex); hidden.add(new int[] { 138, 155 }); cursor = new HiddenColumnsCursor(hidden); regionIndex = cursor.findRegionForColumn(160).getRegionIndex(); assertEquals(3, regionIndex); regionIndex = cursor.findRegionForColumn(100).getRegionIndex(); assertEquals(1, regionIndex); } /** * Test the method which counts the number of hidden columns before a column */ @Test(groups = { "Functional" }) public void testGetHiddenOffset() { HiddenColumnsCursor cursor = new HiddenColumnsCursor(); HiddenCursorPosition pos = cursor.findRegionForVisColumn(20); assertNull(pos); List hidden = new ArrayList<>(); hidden.add(new int[] { 53, 76 }); hidden.add(new int[] { 104, 125 }); cursor = new HiddenColumnsCursor(hidden); int offset = cursor.findRegionForVisColumn(80).getHiddenSoFar(); assertEquals(46, offset); offset = cursor.findRegionForVisColumn(79).getHiddenSoFar(); assertEquals(24, offset); offset = cursor.findRegionForVisColumn(53).getHiddenSoFar(); assertEquals(24, offset); offset = cursor.findRegionForVisColumn(52).getHiddenSoFar(); assertEquals(0, offset); offset = cursor.findRegionForVisColumn(10).getHiddenSoFar(); assertEquals(0, offset); offset = cursor.findRegionForVisColumn(0).getHiddenSoFar(); assertEquals(0, offset); } }