JAL-2189 format tests
[jalview.git] / test / jalview / datamodel / DBRefEntryTest.java
index 09d9df1..87e7082 100644 (file)
@@ -81,7 +81,7 @@ public class DBRefEntryTest
     assertTrue(ref1.updateFrom(ref2));
     assertEquals("UNIPROT", ref1.getSource()); // unchanged
     assertEquals("V71633", ref1.getAccessionId()); // unchanged
-  
+
     /*
      * ref1 has no mapping, acquires mapping from ref2
      */
@@ -140,60 +140,80 @@ public class DBRefEntryTest
   }
 
   @Test(groups = { "Functional" })
-  public void testIsPrimary()
+  public void testIsPrimaryCandidate()
   {
     DBRefEntry dbr = new DBRefEntry(DBRefSource.UNIPROT, "", "Q12345");
-    assertTrue(dbr.isPrimary());
+    assertTrue(dbr.isPrimaryCandidate());
+
     /*
-     *  1:1 mapping 
+     *  1:1 mapping - ok
      */
     dbr.setMap(new Mapping(null, new int[] { 1, 3 }, new int[] { 1, 3 }, 1,
             1));
-    assertTrue(dbr.isPrimary());
+    assertTrue(dbr.isPrimaryCandidate());
+
+    /*
+     *  1:1 mapping of identical split ranges - not ok
+     */
+    dbr.setMap(new Mapping(null, new int[] { 1, 3, 6, 9 }, new int[] { 1,
+        3, 6, 9 }, 1, 1));
+    assertFalse(dbr.isPrimaryCandidate());
+
+    /*
+     *  1:1 mapping of different ranges - not ok
+     */
+    dbr.setMap(new Mapping(null, new int[] { 1, 4 }, new int[] { 2, 5 }, 1,
+            1));
+    assertFalse(dbr.isPrimaryCandidate());
+
+    /*
+     *  1:1 mapping of 'isoform' ranges - not ok
+     */
+    dbr.setMap(new Mapping(null, new int[] { 1, 2, 6, 9 }, new int[] { 1,
+        3, 7, 9 }, 1, 1));
+    assertFalse(dbr.isPrimaryCandidate());
+    dbr.setMap(null);
+    assertTrue(dbr.isPrimaryCandidate());
+
     /*
      * Version string is prefixed with another dbref source string (fail)
      */
     dbr.setVersion(DBRefSource.EMBL + ":0");
-    assertFalse(dbr.isPrimary());
+    assertFalse(dbr.isPrimaryCandidate());
 
     /*
      * Version string is alphanumeric
      */
     dbr.setVersion("0.1.b");
-    assertTrue(dbr.isPrimary());
+    assertTrue(dbr.isPrimaryCandidate());
 
     /*
-     *  1:1 mapping with shift (fail)
+     * null version string can't be primary ref
      */
-    dbr.setMap(new Mapping(null, new int[] { 1, 3 }, new int[] { 2, 4 }, 1,
-            1));
-    assertFalse(dbr.isPrimary());
+    dbr.setVersion(null);
+    assertFalse(dbr.isPrimaryCandidate());
+    dbr.setVersion("");
+    assertTrue(dbr.isPrimaryCandidate());
 
     /*
      *  1:1 mapping and sequenceRef (fail)
      */
     dbr.setMap(new Mapping(new Sequence("foo", "ASDF"), new int[] { 1, 3 },
             new int[] { 1, 3 }, 1, 1));
-    assertFalse(dbr.isPrimary());
+    assertFalse(dbr.isPrimaryCandidate());
 
     /*
      * 1:3 mapping (fail)
      */
     dbr.setMap(new Mapping(null, new int[] { 1, 3 }, new int[] { 1, 3 }, 1,
             3));
-    assertFalse(dbr.isPrimary());
+    assertFalse(dbr.isPrimaryCandidate());
+
     /*
      * 2:2 mapping with shift (expected fail, but maybe use case for a pass)
      */
-    dbr.setMap(new Mapping(null, new int[] { 1, 3 }, new int[] { 1, 3 }, 2,
+    dbr.setMap(new Mapping(null, new int[] { 1, 4 }, new int[] { 1, 4 }, 2,
             2));
-    assertFalse(dbr.isPrimary());
-
-    /*
-     * Version string is prefixed with another dbref source string
-     */
-    dbr.setVersion(DBRefSource.EMBL + ":0");
-    assertFalse(dbr.isPrimary());
-
+    assertFalse(dbr.isPrimaryCandidate());
   }
 }