Clover icon

Coverage Report

  1. Project Clover database Wed Nov 13 2024 16:21:17 GMT
  2. Package jalview.schemes

File UserColourSchemeTest.java

 

Code metrics

0
46
4
1
113
74
4
0.09
11.5
4
1

Classes

Class Line # Actions
UserColourSchemeTest 32 46 4
1.0100%
 

Contributing tests

This file is covered by 3 tests. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
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.
11    *
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.
16    *
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.
20    */
21    package jalview.schemes;
22   
23    import static org.testng.AssertJUnit.assertEquals;
24   
25    import jalview.gui.JvOptionPane;
26   
27    import java.awt.Color;
28   
29    import org.testng.annotations.BeforeClass;
30    import org.testng.annotations.Test;
31   
 
32    public class UserColourSchemeTest
33    {
34   
 
35  1 toggle @BeforeClass(alwaysRun = true)
36    public void setUpJvOptionPane()
37    {
38  1 JvOptionPane.setInteractiveMode(false);
39  1 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
40    }
41   
 
42  1 toggle @Test(groups = "Functional")
43    public void testParseAppletParameter()
44    {
45  1 UserColourScheme cs = new UserColourScheme("white");
46  1 cs.parseAppletParameter("D,E=red; K,R,H=0022FF; c=10 , 20,30");
47  1 assertEquals(Color.RED, cs.findColour('D'));
48  1 assertEquals(Color.RED, cs.findColour('d'));
49  1 assertEquals(Color.RED, cs.findColour('E'));
50  1 assertEquals(Color.RED, cs.findColour('e'));
51  1 Color c1 = new Color(0x0022ff);
52  1 assertEquals(c1, cs.findColour('K'));
53  1 assertEquals(c1, cs.findColour('R'));
54  1 assertEquals(c1, cs.findColour('h'));
55  1 Color c2 = new Color(10, 20, 30);
56  1 assertEquals(c2, cs.findColour('c'));
57  1 assertEquals(Color.WHITE, cs.findColour('G'));
58  1 assertEquals(Color.WHITE, cs.findColour('-'));
59  1 assertEquals(Color.WHITE, cs.findColour('.'));
60  1 assertEquals(Color.WHITE, cs.findColour(' '));
61   
62  1 cs = new UserColourScheme("white");
63  1 cs.parseAppletParameter(
64    "D,E=red; K,R,H=0022FF; c=10 , 20,30;t=orange;lowercase=blue;s=pink");
65  1 assertEquals(Color.RED, cs.findColour('D'));
66  1 assertEquals(Color.blue, cs.findColour('d'));
67  1 assertEquals(Color.RED, cs.findColour('E'));
68  1 assertEquals(Color.blue, cs.findColour('e'));
69  1 assertEquals(c1, cs.findColour('K'));
70  1 assertEquals(c1, cs.findColour('R'));
71  1 assertEquals(Color.blue, cs.findColour('h'));
72  1 assertEquals(c2, cs.findColour('c'));
73    // 'lowercase' sets all lower-case not already set to the given colour
74  1 assertEquals(Color.orange, cs.findColour('t'));
75  1 assertEquals(Color.blue, cs.findColour('k'));
76  1 assertEquals(Color.blue, cs.findColour('a'));
77  1 assertEquals(Color.pink, cs.findColour('s'));
78    }
79   
 
80  1 toggle @Test(groups = "Functional")
81    public void testToAppletParameter()
82    {
83  1 UserColourScheme cs = new UserColourScheme(
84    "E,D=red; K,R,H=0022FF; c=10 , 20,30");
85  1 String param = cs.toAppletParameter();
86  1 assertEquals("D,E=ff0000;H,K,R=0022ff;c=0a141e", param);
87    }
88   
89    /**
90    * Test for user colour scheme constructed with a colour per residue,
91    * including gap. Note this can currently be done from the User Defined
92    * Colours dialog, but not by parsing a colours parameter, as
93    * parseAppletParameter only recognises amino acid codes.
94    */
 
95  1 toggle @Test(groups = "Functional")
96    public void testConstructor_coloursArray()
97    {
98  1 Color g = Color.green;
99  1 Color y = Color.yellow;
100  1 Color b = Color.blue;
101  1 Color r = Color.red;
102    // colours for ARNDCQEGHILKMFPSTWYVBZ and gap
103  1 Color[] colours = new Color[] { g, y, b, r, g, y, r, b, g, y, r, b, g,
104    y, r, b, g, y, r, b, g, y, r, g };
105  1 UserColourScheme cs = new UserColourScheme(colours);
106   
107  1 assertEquals(g, cs.findColour('A'));
108  1 assertEquals(b, cs.findColour('n'));
109  1 assertEquals(g, cs.findColour('-'));
110  1 assertEquals(g, cs.findColour('.'));
111  1 assertEquals(g, cs.findColour(' '));
112    }
113    }