JAL-3446 post-merge unit test fixes, formatting
[jalview.git] / test / jalview / datamodel / features / FeatureAttributesTest.java
index 4b7a435..d9efa23 100644 (file)
@@ -12,6 +12,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 import junit.extensions.PA;
@@ -20,9 +21,19 @@ public class FeatureAttributesTest
 {
 
   /**
+   * clear down attributes map before tests
+   */
+  @BeforeClass(alwaysRun = true)
+  public void setUp()
+  {
+    FeatureAttributes fa = FeatureAttributes.getInstance();
+    ((Map<?, ?>) PA.getValue(fa, "attributes")).clear();
+  }
+
+  /**
    * clear down attributes map after tests
    */
-  @AfterMethod
+  @AfterMethod(alwaysRun = true)
   public void tearDown()
   {
     FeatureAttributes fa = FeatureAttributes.getInstance();
@@ -33,7 +44,7 @@ public class FeatureAttributesTest
    * Test the method that keeps attribute names in non-case-sensitive order,
    * including handling of 'compound' names
    */
-  @Test(groups="Functional")
+  @Test(groups = "Functional")
   public void testAttributeNameComparator()
   {
     FeatureAttributes fa = FeatureAttributes.getInstance();
@@ -41,22 +52,27 @@ public class FeatureAttributesTest
             "comparator");
 
     assertEquals(
-            comp.compare(new String[] { "CSQ" }, new String[] { "csq" }), 0);
+            comp.compare(new String[]
+            { "CSQ" }, new String[] { "csq" }), 0);
 
-    assertTrue(comp.compare(new String[] { "CSQ", "a" },
-            new String[] { "csq" }) > 0);
+    assertTrue(
+            comp.compare(new String[]
+            { "CSQ", "a" }, new String[] { "csq" }) > 0);
 
-    assertTrue(comp.compare(new String[] { "CSQ" }, new String[] { "csq",
-        "b" }) < 0);
+    assertTrue(
+            comp.compare(new String[]
+            { "CSQ" }, new String[] { "csq", "b" }) < 0);
 
-    assertTrue(comp.compare(new String[] { "CSQ", "AF" }, new String[] {
-        "csq", "ac" }) > 0);
+    assertTrue(
+            comp.compare(new String[]
+            { "CSQ", "AF" }, new String[] { "csq", "ac" }) > 0);
 
-    assertTrue(comp.compare(new String[] { "CSQ", "ac" }, new String[] {
-        "csq", "AF" }) < 0);
+    assertTrue(
+            comp.compare(new String[]
+            { "CSQ", "ac" }, new String[] { "csq", "AF" }) < 0);
   }
 
-  @Test
+  @Test(groups = "Functional")
   public void testGetMinMax()
   {
     SequenceFeature sf = new SequenceFeature("Pfam", "desc", 10, 20,
@@ -65,12 +81,14 @@ public class FeatureAttributesTest
     assertNull(fa.getMinMax("Pfam", "kd"));
     sf.setValue("domain", "xyz");
     assertNull(fa.getMinMax("Pfam", "kd"));
-    sf.setValue("kd", "some text");
-    assertNull(fa.getMinMax("Pfam", "kd"));
     sf.setValue("kd", "1.3");
     assertEquals(fa.getMinMax("Pfam", "kd"), new float[] { 1.3f, 1.3f });
     sf.setValue("kd", "-2.6");
     assertEquals(fa.getMinMax("Pfam", "kd"), new float[] { -2.6f, 1.3f });
+    // setting 'mixed' character and numeric values wipes the min/max value
+    sf.setValue("kd", "some text");
+    assertNull(fa.getMinMax("Pfam", "kd"));
+
     Map<String, String> csq = new HashMap<>();
     csq.put("AF", "-3");
     sf.setValue("CSQ", csq);
@@ -88,7 +106,7 @@ public class FeatureAttributesTest
    * Test the method that returns an attribute description, provided it is
    * recorded and unique
    */
-  @Test
+  @Test(groups = "Functional")
   public void testGetDescription()
   {
     FeatureAttributes fa = FeatureAttributes.getInstance();
@@ -102,7 +120,7 @@ public class FeatureAttributesTest
     assertNull(fa.getDescription("Pfam", "kd"));
   }
 
-  @Test
+  @Test(groups = "Functional")
   public void testDatatype()
   {
     FeatureAttributes fa = FeatureAttributes.getInstance();
@@ -111,10 +129,13 @@ public class FeatureAttributesTest
             "group");
     sf.setValue("kd", "-1");
     sf.setValue("domain", "Metal");
+    sf.setValue("foo", " ");
     sf.setValue("phase", "1");
-    sf.setValue("phase", "reverse");
+    sf.setValue("phase", "1reverse");
     assertEquals(fa.getDatatype("Pfam", "kd"), Datatype.Number);
     assertEquals(fa.getDatatype("Pfam", "domain"), Datatype.Character);
     assertEquals(fa.getDatatype("Pfam", "phase"), Datatype.Mixed);
+    assertNull(fa.getDatatype("Pfam", "unobserved"));
+    assertNull(fa.getDatatype("Pfam", "foo"));// empty values are ignored
   }
 }