Merge branch 'develop' into patch/JAL-4281_idwidthandannotHeight_in_project
[jalview.git] / test / jalview / schemes / ResidueColourSchemeTest.java
index c3ea385..6978ea1 100644 (file)
@@ -29,16 +29,11 @@ import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AnnotatedCollectionI;
 import jalview.datamodel.Annotation;
-import jalview.datamodel.Profile;
-import jalview.datamodel.ProfileI;
-import jalview.datamodel.Profiles;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceI;
 import jalview.gui.JvOptionPane;
 import jalview.io.TCoffeeScoreFile;
 
-import java.awt.Color;
-
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
@@ -58,139 +53,6 @@ public class ResidueColourSchemeTest
   }
 
   @Test(groups = "Functional")
-  public void testAboveThreshold()
-  {
-    /*
-     * make up profiles for this alignment:
-     * AR-Q
-     * AR--
-     * SR-T
-     * SR-T
-     */
-    ProfileI[] profiles = new ProfileI[4];
-    profiles[0] = new Profile(4, 0, 2, "AS");
-    profiles[1] = new Profile(4, 0, 4, "R");
-    profiles[2] = new Profile(4, 4, 0, "");
-    profiles[3] = new Profile(4, 1, 2, "T");
-    ResidueColourScheme rcs = new PIDColourScheme();
-    rcs.setConsensus(new Profiles(profiles));
-    
-    /*
-     * no threshold
-     */
-    rcs.setThreshold(0, true);
-    assertTrue(rcs.aboveThreshold('a', 0));
-    assertTrue(rcs.aboveThreshold('S', 0));
-    assertTrue(rcs.aboveThreshold('W', 0));
-    assertTrue(rcs.aboveThreshold('R', 1));
-    assertTrue(rcs.aboveThreshold('W', 2));
-    assertTrue(rcs.aboveThreshold('t', 3));
-    assertTrue(rcs.aboveThreshold('Q', 3));
-
-    /*
-     * with threshold, include gaps
-     */
-    rcs.setThreshold(60, false);
-    assertFalse(rcs.aboveThreshold('a', 0));
-    assertFalse(rcs.aboveThreshold('S', 0));
-    assertTrue(rcs.aboveThreshold('R', 1));
-    assertFalse(rcs.aboveThreshold('W', 2));
-    assertFalse(rcs.aboveThreshold('t', 3)); // 50% < 60%
-
-    /*
-     * with threshold, ignore gaps
-     */
-    rcs.setThreshold(60, true);
-    assertFalse(rcs.aboveThreshold('a', 0));
-    assertFalse(rcs.aboveThreshold('S', 0));
-    assertTrue(rcs.aboveThreshold('R', 1));
-    assertFalse(rcs.aboveThreshold('W', 2));
-    assertTrue(rcs.aboveThreshold('t', 3)); // 67% > 60%
-  }
-
-  /**
-   * Test colour bleaching based on conservation score and conservation slider.
-   * Scores of 10 or 11 should leave colours unchanged. Gap is always white.
-   */
-  @Test(groups = "Functional")
-  public void testApplyConservation()
-  {
-    ResidueColourScheme rcs = new PIDColourScheme();
-
-    // no conservation present - no fading
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 12));
-    
-    // cheat by setting conservation sequence directly
-    // rather than calculating it - good enough for this test
-    String consensus = "0123456789+*-";
-    rcs.conservation = consensus.toCharArray();
-
-    // column out of range:
-    assertEquals(Color.RED,
-            rcs.applyConservation(Color.RED, consensus.length()));
-
-    /*
-     * with 100% threshold, 'fade factor' is 
-     * (11-score)/10 * 100/20 = (11-score)/2
-     * which is >= 1 for all scores i.e. all fade to white except +, *
-     */
-    rcs.setConservationInc(100);
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 0));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 1));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 2));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 3));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 4));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 5));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 6));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 7));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 8));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 9));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 10));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 11));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 12));
-
-    /*
-     * with 0% threshold, there should be no fading
-     */
-    rcs.setConservationInc(0);
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 0));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 1));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 2));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 3));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 4));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 5));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 6));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 7));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 8));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 9));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 10));
-    assertEquals(Color.RED, rcs.applyConservation(Color.RED, 11));
-    assertEquals(Color.WHITE, rcs.applyConservation(Color.RED, 12)); // gap
-
-    /*
-     * with 40% threshold, 'fade factor' is 
-     * (11-score)/10 * 40/20 = (11-score)/5
-     * which is {>1, >1, >1, >1, >1, >1, 1, 0.8, 0.6, 0.4} for score 0-9
-     * e.g. score 7 colour fades 80% of the way to white (255, 255, 255)
-     */
-    rcs.setConservationInc(40);
-    Color colour = new Color(155, 105, 55);
-    assertEquals(Color.WHITE, rcs.applyConservation(colour, 0));
-    assertEquals(Color.WHITE, rcs.applyConservation(colour, 1));
-    assertEquals(Color.WHITE, rcs.applyConservation(colour, 2));
-    assertEquals(Color.WHITE, rcs.applyConservation(colour, 3));
-    assertEquals(Color.WHITE, rcs.applyConservation(colour, 4));
-    assertEquals(Color.WHITE, rcs.applyConservation(colour, 5));
-    assertEquals(Color.WHITE, rcs.applyConservation(colour, 6));
-    assertEquals(new Color(235, 225, 215), rcs.applyConservation(colour, 7));
-    assertEquals(new Color(215, 195, 175), rcs.applyConservation(colour, 8));
-    assertEquals(new Color(195, 165, 135), rcs.applyConservation(colour, 9));
-    assertEquals(colour, rcs.applyConservation(colour, 10));
-    assertEquals(colour, rcs.applyConservation(colour, 11));
-    assertEquals(Color.WHITE, rcs.applyConservation(colour, 12));
-  }
-
-  @Test(groups = "Functional")
   public void testIsApplicableTo()
   {
     SequenceI pep1 = new Sequence("pep1", "APQTWLS");
@@ -230,8 +92,8 @@ public class ResidueColourSchemeTest
     assertFalse(new NucleotideColourScheme().isApplicableTo(peptide));
     assertTrue(new NucleotideColourScheme().isApplicableTo(nucleotide));
     assertFalse(new PurinePyrimidineColourScheme().isApplicableTo(peptide));
-    assertTrue(new PurinePyrimidineColourScheme()
-            .isApplicableTo(nucleotide));
+    assertTrue(
+            new PurinePyrimidineColourScheme().isApplicableTo(nucleotide));
     assertFalse(new RNAInteractionColourScheme().isApplicableTo(peptide));
     assertTrue(new RNAInteractionColourScheme().isApplicableTo(nucleotide));
 
@@ -256,8 +118,8 @@ public class ResidueColourSchemeTest
      * TCoffee colour requires the presence of TCoffee score annotation
      */
     assertFalse(new TCoffeeColourScheme(peptide).isApplicableTo(peptide));
-    assertFalse(new TCoffeeColourScheme(nucleotide)
-            .isApplicableTo(nucleotide));
+    assertFalse(
+            new TCoffeeColourScheme(nucleotide).isApplicableTo(nucleotide));
     AlignmentAnnotation aa = new AlignmentAnnotation("T-COFFEE", "", null);
     aa.setCalcId(TCoffeeScoreFile.TCOFFEE_SCORE);
     peptide.addAnnotation(aa);
@@ -265,14 +127,15 @@ public class ResidueColourSchemeTest
     aa.setCalcId(TCoffeeScoreFile.TCOFFEE_SCORE);
     nucleotide.addAnnotation(aa);
     assertTrue(new TCoffeeColourScheme(peptide).isApplicableTo(peptide));
-    assertTrue(new TCoffeeColourScheme(nucleotide)
-            .isApplicableTo(nucleotide));
+    assertTrue(
+            new TCoffeeColourScheme(nucleotide).isApplicableTo(nucleotide));
 
     /*
      * RNAHelices requires the presence of rna secondary structure
      */
     assertFalse(new RNAHelicesColour(peptide).isApplicableTo(peptide));
-    assertFalse(new RNAHelicesColour(nucleotide).isApplicableTo(nucleotide));
+    assertFalse(
+            new RNAHelicesColour(nucleotide).isApplicableTo(nucleotide));
     // add secondary structure (small but perfectly formed)
     Annotation[] ss = new Annotation[2];
     ss[0] = new Annotation("", "", '{', 0f);
@@ -287,7 +150,7 @@ public class ResidueColourSchemeTest
     SequenceI pep1 = new Sequence("pep1", "APQTWLS");
     SequenceI pep2 = new Sequence("pep2", "AILFQYG");
     AlignmentI peptide = new Alignment(new SequenceI[] { pep1, pep2 });
-  
+
     /*
      * demonstrate that we can 'plug in' a colour scheme with specified
      * criteria for applicability; here, that there are more than 2 sequences
@@ -315,20 +178,25 @@ public class ResidueColourSchemeTest
 
     assertEquals("Blosum62", new Blosum62ColourScheme().getSchemeName());
     assertEquals("Buried Index", new BuriedColourScheme().getSchemeName());
-    assertEquals("Helix Propensity", new HelixColourScheme().getSchemeName());
-    assertEquals("Hydrophobic", new HydrophobicColourScheme().getSchemeName());
-    assertEquals("Strand Propensity", new StrandColourScheme().getSchemeName());
+    assertEquals("Helix Propensity",
+            new HelixColourScheme().getSchemeName());
+    assertEquals("Hydrophobic",
+            new HydrophobicColourScheme().getSchemeName());
+    assertEquals("Strand Propensity",
+            new StrandColourScheme().getSchemeName());
     assertEquals("Taylor", new TaylorColourScheme().getSchemeName());
     assertEquals("Turn Propensity", new TurnColourScheme().getSchemeName());
     assertEquals("Zappo", new ZappoColourScheme().getSchemeName());
-    assertEquals("Nucleotide", new NucleotideColourScheme().getSchemeName());
+    assertEquals("Nucleotide",
+            new NucleotideColourScheme().getSchemeName());
     assertEquals("Purine/Pyrimidine",
             new PurinePyrimidineColourScheme().getSchemeName());
     assertEquals("RNA Interaction type",
             new RNAInteractionColourScheme().getSchemeName());
     assertEquals("User Defined", new UserColourScheme().getSchemeName());
-    assertEquals("Score", new ScoreColourScheme(new int[] {},
-            new double[] {}, 0, 0d).getSchemeName());
+    assertEquals("Score",
+            new ScoreColourScheme(new int[] {}, new double[] {}, 0, 0d)
+                    .getSchemeName());
     assertEquals("% Identity", new PIDColourScheme().getSchemeName());
     assertEquals("Follower", new FollowerColourScheme().getSchemeName());
     assertEquals("T-Coffee Scores",