2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.renderer;
23 import static org.testng.Assert.assertEquals;
24 import static org.testng.Assert.assertFalse;
25 import static org.testng.Assert.assertNull;
26 import static org.testng.Assert.assertTrue;
28 import jalview.gui.AlignFrame;
29 import jalview.gui.AlignViewport;
30 import jalview.io.DataSourceType;
31 import jalview.io.FileLoader;
32 import jalview.renderer.ScaleRenderer.ScaleMark;
34 import java.util.List;
36 import org.testng.annotations.Test;
38 public class ScaleRendererTest
40 @Test(groups = "Functional")
41 public void testCalculateMarks()
43 String data = ">Seq/20-45\nABCDEFGHIJKLMNOPQRSTUVWXYS\n";
44 AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(data,
45 DataSourceType.PASTE);
46 AlignViewport av = af.getViewport();
49 * scale has minor ticks at 5, 15, 25, major at 10 and 20
50 * (these are base 1, ScaleMark holds base 0 values)
52 List<ScaleMark> marks = new ScaleRenderer().calculateMarks(av, 0, 25);
53 assertEquals(marks.size(), 5);
55 assertFalse(marks.get(0).major);
56 assertEquals(marks.get(0).column, 4);
57 assertNull(marks.get(0).text);
59 assertTrue(marks.get(1).major);
60 assertEquals(marks.get(1).column, 9);
61 assertEquals(marks.get(1).text, "10");
63 assertFalse(marks.get(2).major);
64 assertEquals(marks.get(2).column, 14);
65 assertNull(marks.get(2).text);
67 assertTrue(marks.get(3).major);
68 assertEquals(marks.get(3).column, 19);
69 assertEquals(marks.get(3).text, "20");
71 assertFalse(marks.get(4).major);
72 assertEquals(marks.get(4).column, 24);
73 assertNull(marks.get(4).text);
76 * now hide columns 9-11 and 18-20 (base 1)
77 * scale marks are now in the same columns as before, but
78 * with column numbering adjusted for hidden columns
80 av.hideColumns(8, 10);
81 av.hideColumns(17, 19);
82 marks = new ScaleRenderer().calculateMarks(av, 0, 25);
83 assertEquals(marks.size(), 5);
84 assertFalse(marks.get(0).major);
85 assertEquals(marks.get(0).column, 4);
86 assertNull(marks.get(0).text);
87 assertTrue(marks.get(1).major);
88 assertEquals(marks.get(1).column, 9);
89 assertEquals(marks.get(1).text, "13"); // +3 hidden columns
90 assertFalse(marks.get(2).major);
91 assertEquals(marks.get(2).column, 14);
92 assertNull(marks.get(2).text);
93 assertTrue(marks.get(3).major);
94 assertEquals(marks.get(3).column, 19);
95 assertEquals(marks.get(3).text, "26"); // +6 hidden columns
96 assertFalse(marks.get(4).major);
97 assertEquals(marks.get(4).column, 24);
98 assertNull(marks.get(4).text);