JAL-3438 spotless for 2.11.2.0
[jalview.git] / test / jalview / schemes / ClustalxColourSchemeTest.java
index 16317d9..a4c2613 100644 (file)
@@ -27,13 +27,13 @@ public class ClustalxColourSchemeTest
           ">seq0\nKKKWWWQW\n";
   // @formatter:on
 
-  @Test
+  @Test(groups = "Functional")
   public void testFindColour()
   {
     AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(FASTA,
             DataSourceType.PASTE);
     AlignmentI al = af.getViewport().getAlignment();
-    ColourSchemeI cs = new ClustalxColourScheme(al, null);
+    ClustalxColourScheme cs = new ClustalxColourScheme(al, null);
 
     /*
      * column 1 is 70% A which is above Clustalx threshold of 60%
@@ -85,4 +85,50 @@ public class ClustalxColourSchemeTest
 
     // TODO more test cases; check if help documentation matches implementation
   }
+
+  // @formatter:on
+
+  /**
+   * Test for colour calculation when the consensus percentage ignores gapped
+   * sequences
+   */
+  @Test(groups = "Functional")
+  public void testFindColour_ignoreGaps()
+  {
+    /*
+     * CCC
+     * CCC
+     * -CC
+     * first column is 66% C (blue) including gaps
+     * or 100% C ignoring gaps
+     */
+    String fasta = ">seq1\nCCC\n>seq2\nccc\n>seq3\n-CC\n";
+    AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(fasta,
+            DataSourceType.PASTE);
+    AlignmentI al = af.getViewport().getAlignment();
+    ClustalxColourScheme cs = new ClustalxColourScheme(al, null);
+
+    /*
+     * column 1 is 66% C which is above Clustalx threshold of 60%
+     */
+    Color clustalBlue = ClustalxColourScheme.ClustalColour.BLUE.colour;
+    assertEquals(cs.findColour('C', 0, al.getSequenceAt(0)), clustalBlue);
+
+    /*
+     * set directly to ignore gaps
+     */
+    cs.setIncludeGaps(false);
+    Color clustalPink = ClustalxColourScheme.ClustalColour.PINK.colour;
+    assertEquals(cs.findColour('C', 0, al.getSequenceAt(0)), clustalPink);
+
+    /*
+     * set ignore gaps on the viewport...
+     */
+    cs.setIncludeGaps(true);
+    assertEquals(cs.findColour('C', 0, al.getSequenceAt(0)), clustalBlue);
+    af.getViewport().setIgnoreGapsConsensus(true, af.alignPanel);
+    // next test fails: colour scheme does not read ignore gaps flag from
+    // viewport
+    // assertEquals(cs.findColour('C', 0, al.getSequenceAt(0)), clustalPink);
+  }
 }