764da914c43e7b18726970ecdcfd9f9decf6fd0a
[jalview.git] / test / jalview / schemes / ColourSchemePropertyTest.java
1 package jalview.schemes;
2
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertNull;
5 import static org.testng.Assert.assertTrue;
6
7 import jalview.datamodel.Alignment;
8 import jalview.datamodel.AlignmentI;
9 import jalview.datamodel.Sequence;
10 import jalview.datamodel.SequenceI;
11
12 import java.awt.Color;
13
14 import org.testng.annotations.Test;
15
16 public class ColourSchemePropertyTest
17 {
18   @Test(groups = "Functional")
19   public void testGetColourName()
20   {
21     SequenceI seq = new Sequence("Seq1", "abcd");
22     AlignmentI al = new Alignment(new SequenceI[] { seq });
23     ColourSchemeI cs = new ClustalxColourScheme(al, null);
24     assertEquals(ColourSchemeProperty.getColourName(cs), "Clustal");
25     cs = new Blosum62ColourScheme();
26     assertEquals(ColourSchemeProperty.getColourName(cs), "Blosum62");
27     cs = new PIDColourScheme();
28     assertEquals(ColourSchemeProperty.getColourName(cs), "% Identity");
29     cs = new HydrophobicColourScheme();
30     assertEquals(ColourSchemeProperty.getColourName(cs), "Hydrophobic");
31     cs = new ZappoColourScheme();
32     assertEquals(ColourSchemeProperty.getColourName(cs), "Zappo");
33     cs = new TaylorColourScheme();
34     assertEquals(ColourSchemeProperty.getColourName(cs), "Taylor");
35     cs = new HelixColourScheme();
36     assertEquals(ColourSchemeProperty.getColourName(cs),
37             "Helix Propensity");
38     cs = new StrandColourScheme();
39     assertEquals(ColourSchemeProperty.getColourName(cs),
40             "Strand Propensity");
41     cs = new TurnColourScheme();
42     assertEquals(ColourSchemeProperty.getColourName(cs), "Turn Propensity");
43     cs = new BuriedColourScheme();
44     assertEquals(ColourSchemeProperty.getColourName(cs), "Buried Index");
45     cs = new NucleotideColourScheme();
46     assertEquals(ColourSchemeProperty.getColourName(cs), "Nucleotide");
47     cs = new PurinePyrimidineColourScheme();
48     assertEquals(ColourSchemeProperty.getColourName(cs),
49             "Purine/Pyrimidine");
50     cs = new TCoffeeColourScheme(al);
51     assertEquals(ColourSchemeProperty.getColourName(cs), "T-Coffee Scores");
52     cs = new RNAHelicesColour(al);
53     assertEquals(ColourSchemeProperty.getColourName(cs), "RNA Helices");
54     cs = new RNAInteractionColourScheme();
55     assertEquals(ColourSchemeProperty.getColourName(cs),
56             "RNA Interaction type");
57     cs = new UserColourScheme();
58     assertEquals(ColourSchemeProperty.getColourName(cs), "User Defined");
59
60     /*
61      * UserColourScheme may have a bespoke name
62      */
63     ((UserColourScheme) cs).setName("stripy");
64     assertEquals(ColourSchemeProperty.getColourName(cs), "stripy");
65     ((UserColourScheme) cs).setName("");
66     assertEquals(ColourSchemeProperty.getColourName(cs), "User Defined");
67     ((UserColourScheme) cs).setName(null);
68     assertEquals(ColourSchemeProperty.getColourName(cs), "User Defined");
69
70     assertEquals(ColourSchemeProperty.getColourName(null), "None");
71   }
72
73   @Test(groups = "Functional")
74   public void testGetColourScheme()
75   {
76     SequenceI seq = new Sequence("Seq1", "abcd");
77     AlignmentI al = new Alignment(new SequenceI[] { seq });
78     // the strings here correspond to JalviewColourScheme.toString() values
79     ColourSchemeI cs = ColourSchemeProperty.getColourScheme(null, al,
80             "Clustal");
81     assertTrue(cs instanceof ClustalxColourScheme);
82     // not case-sensitive
83     cs = ColourSchemeProperty.getColourScheme(null, al, "CLUSTAL");
84     assertTrue(cs instanceof ClustalxColourScheme);
85     cs = ColourSchemeProperty.getColourScheme(null, al, "clustal");
86     assertTrue(cs instanceof ClustalxColourScheme);
87     cs = ColourSchemeProperty.getColourScheme(null, al, "Blosum62");
88     assertTrue(cs instanceof Blosum62ColourScheme);
89     cs = ColourSchemeProperty.getColourScheme(null, al, "% Identity");
90     assertTrue(cs instanceof PIDColourScheme);
91     cs = ColourSchemeProperty.getColourScheme(null, al, "Zappo");
92     assertTrue(cs instanceof ZappoColourScheme);
93     cs = ColourSchemeProperty.getColourScheme(null, al, "Taylor");
94     assertTrue(cs instanceof TaylorColourScheme);
95     cs = ColourSchemeProperty.getColourScheme(null, al, "Hydrophobic");
96     assertTrue(cs instanceof HydrophobicColourScheme);
97     cs = ColourSchemeProperty.getColourScheme(null, al, "Helix Propensity");
98     assertTrue(cs instanceof HelixColourScheme);
99     cs = ColourSchemeProperty.getColourScheme(null, al,
100             "Strand Propensity");
101     assertTrue(cs instanceof StrandColourScheme);
102     cs = ColourSchemeProperty.getColourScheme(null, al, "Turn Propensity");
103     assertTrue(cs instanceof TurnColourScheme);
104     cs = ColourSchemeProperty.getColourScheme(null, al, "Buried Index");
105     assertTrue(cs instanceof BuriedColourScheme);
106     cs = ColourSchemeProperty.getColourScheme(null, al, "Nucleotide");
107     assertTrue(cs instanceof NucleotideColourScheme);
108     cs = ColourSchemeProperty.getColourScheme(null, al,
109             "Purine/Pyrimidine");
110     assertTrue(cs instanceof PurinePyrimidineColourScheme);
111     cs = ColourSchemeProperty.getColourScheme(null, al, "T-Coffee Scores");
112     assertTrue(cs instanceof TCoffeeColourScheme);
113     cs = ColourSchemeProperty.getColourScheme(null, al, "RNA Helices");
114     assertTrue(cs instanceof RNAHelicesColour);
115     // 'None' is a special value
116     assertNull(ColourSchemeProperty.getColourScheme(null, al, "None"));
117     assertNull(ColourSchemeProperty.getColourScheme(null, al, "none"));
118     // default is to convert the name into a fixed colour
119     cs = ColourSchemeProperty.getColourScheme(null, al, "elephants");
120     assertTrue(cs instanceof UserColourScheme);
121
122     /*
123      * explicit aa colours
124      */
125     UserColourScheme ucs = (UserColourScheme) ColourSchemeProperty
126             .getColourScheme(null, al,
127                     "R,G=red;C=blue;c=green;Q=10,20,30;S,T=11ffdd");
128     assertEquals(ucs.findColour('H'), Color.white);
129     assertEquals(ucs.findColour('R'), Color.red);
130     assertEquals(ucs.findColour('r'), Color.red);
131     assertEquals(ucs.findColour('G'), Color.red);
132     assertEquals(ucs.findColour('C'), Color.blue);
133     assertEquals(ucs.findColour('c'), Color.green);
134     assertEquals(ucs.findColour('Q'), new Color(10, 20, 30));
135     assertEquals(ucs.findColour('S'), new Color(0x11ffdd));
136     assertEquals(ucs.findColour('T'), new Color(0x11ffdd));
137   }
138 }