JAL-2189 format tests
[jalview.git] / test / jalview / ext / ensembl / EnsemblGeneTest.java
index a262c1e..ed3449b 100644 (file)
@@ -5,6 +5,7 @@ import static org.testng.AssertJUnit.assertFalse;
 import static org.testng.AssertJUnit.assertSame;
 import static org.testng.AssertJUnit.assertTrue;
 
+import jalview.api.FeatureSettingsModelI;
 import jalview.datamodel.SequenceDummy;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
@@ -12,7 +13,7 @@ import jalview.io.gff.SequenceOntologyFactory;
 import jalview.io.gff.SequenceOntologyLite;
 import jalview.util.MapList;
 
-import java.util.Arrays;
+import java.awt.Color;
 import java.util.List;
 
 import org.testng.annotations.AfterClass;
@@ -21,13 +22,13 @@ import org.testng.annotations.Test;
 
 public class EnsemblGeneTest
 {
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public void setUp()
   {
     SequenceOntologyFactory.setInstance(new SequenceOntologyLite());
   }
 
-  @AfterClass
+  @AfterClass(alwaysRun = true)
   public void tearDown()
   {
     SequenceOntologyFactory.setInstance(null);
@@ -134,8 +135,8 @@ public class EnsemblGeneTest
     genomic.addSequenceFeature(sf1);
 
     // transcript sub-type feature
-    SequenceFeature sf2 = new SequenceFeature("snRNA", "", 20000,
-            20500, 0f, null);
+    SequenceFeature sf2 = new SequenceFeature("snRNA", "", 20000, 20500,
+            0f, null);
     sf2.setValue("Parent", "gene:" + geneId);
     sf2.setValue("transcript_id", "transcript2");
     genomic.addSequenceFeature(sf2);
@@ -160,21 +161,11 @@ public class EnsemblGeneTest
      * with no filter
      */
     List<SequenceFeature> features = testee.getTranscriptFeatures(geneId,
-            genomic, null);
+            genomic);
     assertEquals(3, features.size());
     assertSame(sf1, features.get(0));
     assertSame(sf2, features.get(1));
     assertSame(sf3, features.get(2));
-
-    /*
-     * with filter
-     */
-    List<String> ids = Arrays.asList(new String[] { "transcript2",
-        "transcript3" });
-    features = testee.getTranscriptFeatures(geneId, genomic, ids);
-    assertEquals(2, features.size());
-    assertSame(sf2, features.get(0));
-    assertSame(sf3, features.get(1));
   }
 
   /**
@@ -186,8 +177,8 @@ public class EnsemblGeneTest
   {
     String geneId = "ABC123";
     EnsemblGene testee = new EnsemblGene();
-    SequenceFeature sf = new SequenceFeature("gene", "", 20000,
-            20500, 0f, null);
+    SequenceFeature sf = new SequenceFeature("gene", "", 20000, 20500, 0f,
+            null);
     sf.setValue("ID", "gene:" + geneId);
     assertFalse(testee.retainFeature(sf, geneId));
 
@@ -219,29 +210,56 @@ public class EnsemblGeneTest
   {
     String accId = "ABC123";
     EnsemblGene testee = new EnsemblGene();
-  
+
     // gene with no ID not valid
     SequenceFeature sf = new SequenceFeature("gene", "", 1, 2, 0f, null);
     assertFalse(testee.identifiesSequence(sf, accId));
-  
+
     // gene with wrong ID not valid
     sf.setValue("ID", "gene:XYZ");
     assertFalse(testee.identifiesSequence(sf, accId));
-  
+
     // gene with right ID is valid
     sf.setValue("ID", "gene:" + accId);
     assertTrue(testee.identifiesSequence(sf, accId));
-  
+
     // gene sub-type with right ID is valid
     sf.setType("snRNA_gene");
     assertTrue(testee.identifiesSequence(sf, accId));
-  
+
     // transcript not valid:
     sf.setType("transcript");
     assertFalse(testee.identifiesSequence(sf, accId));
-  
+
     // exon not valid:
     sf.setType("exon");
     assertFalse(testee.identifiesSequence(sf, accId));
   }
+
+  /**
+   * Check behaviour of feature colour scheme for EnsemblGene sequences.
+   * Currently coded to display exon and sequence_variant (or sub-types) only,
+   * with sequence_variant in red above exon coloured by label.
+   */
+  @Test(groups = "Functional")
+  public void testGetFeatureColourScheme()
+  {
+    FeatureSettingsModelI fc = new EnsemblGene().getFeatureColourScheme();
+    assertTrue(fc.isFeatureDisplayed("exon"));
+    assertTrue(fc.isFeatureDisplayed("coding_exon")); // subtype of exon
+    assertTrue(fc.isFeatureDisplayed("sequence_variant"));
+    assertTrue(fc.isFeatureDisplayed("feature_variant")); // subtype
+    assertFalse(fc.isFeatureDisplayed("transcript"));
+    assertEquals(Color.RED, fc.getFeatureColour("sequence_variant")
+            .getColour());
+    assertEquals(Color.RED, fc.getFeatureColour("feature_variant")
+            .getColour());
+    assertTrue(fc.getFeatureColour("exon").isColourByLabel());
+    assertTrue(fc.getFeatureColour("coding_exon").isColourByLabel());
+    assertEquals(1, fc.compare("sequence_variant", "exon"));
+    assertEquals(-1, fc.compare("exon", "sequence_variant"));
+    assertEquals(1, fc.compare("feature_variant", "coding_exon"));
+    assertEquals(-1, fc.compare("coding_exon", "feature_variant"));
+    assertEquals(1f, fc.getTransparency());
+  }
 }