Merge branch 'develop' into merge/JAL-3127
[jalview.git] / test / jalview / schemes / ColourSchemesTest.java
index 6527756..5db3743 100644 (file)
@@ -2,16 +2,16 @@ package jalview.schemes;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
 
+import jalview.api.AlignViewportI;
 import jalview.bin.Cache;
 import jalview.bin.Jalview;
-import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AnnotatedCollectionI;
 import jalview.datamodel.SequenceCollectionI;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
-import jalview.gui.AlignViewport;
 import jalview.gui.Desktop;
 import jalview.gui.SequenceRenderer;
 import jalview.io.DataSourceType;
@@ -34,9 +34,9 @@ public class ColourSchemesTest
    */
   class Stripy extends ResidueColourScheme
   {
-    private ColourSchemeI odd;
+    private ResidueColourScheme odd;
 
-    private ColourSchemeI even;
+    private ResidueColourScheme even;
 
     private Stripy()
     {
@@ -50,13 +50,13 @@ public class ColourSchemesTest
      */
     private Stripy(ColourSchemeI cs1, ColourSchemeI cs2)
     {
-      odd = cs1;
-      even = cs2;
+      odd = (ResidueColourScheme) cs1;
+      even = (ResidueColourScheme) cs2;
     }
 
     @Override
-    public ColourSchemeI getInstance(AnnotatedCollectionI sg,
-            Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
+    public ColourSchemeI getInstance(AlignViewportI view,
+            AnnotatedCollectionI sg)
     {
       final ColourSchemeI cs1 = ColourSchemes.getInstance()
               .getColourScheme(JalviewColourScheme.Taylor.toString(),
@@ -92,15 +92,16 @@ public class ColourSchemesTest
    */
   class MyClustal extends ResidueColourScheme
   {
-    ColourSchemeI delegate;
+    ClustalxColourScheme delegate;
 
     private MyClustal()
     {
     }
 
-    private MyClustal(ColourSchemeI scheme)
+    private MyClustal(AnnotatedCollectionI sg,
+            Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
     {
-      delegate = scheme;
+      delegate = new ClustalxColourScheme(sg, hiddenRepSequences);
     }
 
     @Override
@@ -144,11 +145,10 @@ public class ColourSchemesTest
     }
 
     @Override
-    public ColourSchemeI getInstance(AnnotatedCollectionI sg,
-            Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
+    public ColourSchemeI getInstance(AlignViewportI view,
+            AnnotatedCollectionI sg)
     {
-      return new MyClustal(new ClustalxColourScheme().getInstance(sg,
-              hiddenRepSequences));
+      return new MyClustal(sg, view.getHiddenRepSequences());
     }
 
     @Override
@@ -195,77 +195,19 @@ public class ColourSchemesTest
   }
 
   @Test(groups = "Functional")
-  public void testGetColourScheme_forViewport()
-  {
-    AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
-            ">seq1\nAGLRTWQU", DataSourceType.PASTE);
-    ColourSchemes cs = ColourSchemes.getInstance();
-
-    AlignViewport viewport = af.getViewport();
-    AlignmentI alignment = viewport.getAlignment();
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Blosum62.toString(),
-            alignment) instanceof Blosum62ColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Buried.toString(),
-            alignment) instanceof BuriedColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Clustal.toString(),
-            alignment) instanceof ClustalxColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Helix.toString(),
-            alignment) instanceof HelixColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.Hydrophobic.toString(), alignment) instanceof HydrophobicColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.Nucleotide.toString(), alignment) instanceof NucleotideColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.PID.toString(),
-            alignment) instanceof PIDColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.PurinePyrimidine.toString(), alignment) instanceof PurinePyrimidineColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.RNAHelices.toString(), alignment) instanceof RNAHelicesColour);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Strand.toString(),
-            alignment) instanceof StrandColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Taylor.toString(),
-            alignment) instanceof TaylorColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.TCoffee.toString(),
-            alignment) instanceof TCoffeeColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Turn.toString(),
-            alignment) instanceof TurnColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Zappo.toString(),
-            alignment) instanceof ZappoColourScheme);
-    af.closeMenuItem_actionPerformed(true);
-  }
-
-  @Test(groups = "Functional")
-  public void testGetColourScheme_forAnnotatedCollection()
+  public void testGetColourScheme()
   {
     AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
             ">seq1\nAGLRTWQU", DataSourceType.PASTE);
-    ColourSchemes cs = ColourSchemes.getInstance();
+    ColourSchemes schemes = ColourSchemes.getInstance();
 
     AnnotatedCollectionI al = af.getViewport().getAlignment();
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Blosum62.toString(),
-            al) instanceof Blosum62ColourScheme);
-    assertTrue(cs
-            .getColourScheme(JalviewColourScheme.Buried.toString(), al) instanceof BuriedColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Clustal.toString(),
-            al) instanceof ClustalxColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Helix.toString(), al) instanceof HelixColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.Hydrophobic.toString(), al) instanceof HydrophobicColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.Nucleotide.toString(), al) instanceof NucleotideColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.PID.toString(), al) instanceof PIDColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.PurinePyrimidine.toString(), al) instanceof PurinePyrimidineColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.RNAHelices.toString(), al) instanceof RNAHelicesColour);
-    assertTrue(cs
-            .getColourScheme(JalviewColourScheme.Strand.toString(), al) instanceof StrandColourScheme);
-    assertTrue(cs
-            .getColourScheme(JalviewColourScheme.Taylor.toString(), al) instanceof TaylorColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.TCoffee.toString(),
-            al) instanceof TCoffeeColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Turn.toString(), al) instanceof TurnColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Zappo.toString(), al) instanceof ZappoColourScheme);
+
+    for (JalviewColourScheme cs : JalviewColourScheme.values())
+    {
+      ColourSchemeI registered = schemes.getColourScheme(cs.toString(), al);
+      assertSame(registered.getClass(), cs.getSchemeClass());
+    }
     af.closeMenuItem_actionPerformed(true);
   }
   
@@ -287,9 +229,9 @@ public class ColourSchemesTest
      * set and check Taylor colours
      */
     af.changeColour_actionPerformed(JalviewColourScheme.Taylor.toString());
-    Color taylor1 = sr.getResidueBoxColour(seq, 88); // E 255,0,102
-    Color taylor2 = sr.getResidueBoxColour(seq, 89); // A 204,255,0
-    Color taylor3 = sr.getResidueBoxColour(seq, 90); // G 255,153,0
+    Color taylor1 = sr.getResidueColour(seq, 88, null); // E 255,0,102
+    Color taylor2 = sr.getResidueColour(seq, 89, null); // A 204,255,0
+    Color taylor3 = sr.getResidueColour(seq, 90, null); // G 255,153,0
     assertEquals(taylor1, new Color(255, 0, 102));
     assertEquals(taylor2, new Color(204, 255, 0));
     assertEquals(taylor3, new Color(255, 153, 0));
@@ -298,9 +240,9 @@ public class ColourSchemesTest
      * set and check Zappo colours
      */
     af.changeColour_actionPerformed(JalviewColourScheme.Zappo.toString());
-    Color zappo1 = sr.getResidueBoxColour(seq, 88); // E red
-    Color zappo2 = sr.getResidueBoxColour(seq, 89); // A pink
-    Color zappo3 = sr.getResidueBoxColour(seq, 90); // G magenta
+    Color zappo1 = sr.getResidueColour(seq, 88, null); // E red
+    Color zappo2 = sr.getResidueColour(seq, 89, null); // A pink
+    Color zappo3 = sr.getResidueColour(seq, 90, null); // G magenta
     assertEquals(zappo1, Color.red);
     assertEquals(zappo2, Color.pink);
     assertEquals(zappo3, Color.magenta);
@@ -309,9 +251,9 @@ public class ColourSchemesTest
      * set 'stripy' colours - odd columns are Taylor and even are Zappo 
      */
     af.changeColour_actionPerformed("stripy");
-    Color stripy1 = sr.getResidueBoxColour(seq, 88);
-    Color stripy2 = sr.getResidueBoxColour(seq, 89);
-    Color stripy3 = sr.getResidueBoxColour(seq, 90);
+    Color stripy1 = sr.getResidueColour(seq, 88, null);
+    Color stripy2 = sr.getResidueColour(seq, 89, null);
+    Color stripy3 = sr.getResidueColour(seq, 90, null);
     assertEquals(stripy1, zappo1);
     assertEquals(stripy2, taylor2);
     assertEquals(stripy3, zappo3);
@@ -320,9 +262,9 @@ public class ColourSchemesTest
      * set and check Clustal colours
      */
     af.changeColour_actionPerformed(JalviewColourScheme.Clustal.toString());
-    Color clustal1 = sr.getResidueBoxColour(seq, 88);
-    Color clustal2 = sr.getResidueBoxColour(seq, 89);
-    Color clustal3 = sr.getResidueBoxColour(seq, 90);
+    Color clustal1 = sr.getResidueColour(seq, 88, null);
+    Color clustal2 = sr.getResidueColour(seq, 89, null);
+    Color clustal3 = sr.getResidueColour(seq, 90, null);
     assertEquals(clustal1, ClustalColour.MAGENTA.colour);
     assertEquals(clustal2, ClustalColour.BLUE.colour);
     assertEquals(clustal3, ClustalColour.ORANGE.colour);
@@ -331,9 +273,9 @@ public class ColourSchemesTest
      * set 'MyClustal' colours - uses AWT colour equivalents
      */
     af.changeColour_actionPerformed("MyClustal");
-    Color myclustal1 = sr.getResidueBoxColour(seq, 88);
-    Color myclustal2 = sr.getResidueBoxColour(seq, 89);
-    Color myclustal3 = sr.getResidueBoxColour(seq, 90);
+    Color myclustal1 = sr.getResidueColour(seq, 88, null);
+    Color myclustal2 = sr.getResidueColour(seq, 89, null);
+    Color myclustal3 = sr.getResidueColour(seq, 90, null);
     assertEquals(myclustal1, Color.MAGENTA);
     assertEquals(myclustal2, Color.BLUE);
     assertEquals(myclustal3, Color.ORANGE);