JAL-1941 Annotate3d tests should be in network group
[jalview.git] / test / jalview / util / DnaUtilsTest.java
index 9e978fe..6623c13 100644 (file)
@@ -89,10 +89,20 @@ public class DnaUtilsTest
     assertEquals(87064, ranges.get(1)[1]);
 
     /*
+     * beyond 5' or 3' locus
+     */
+    ranges = DnaUtils.parseLocation("<34..126");
+    assertEquals(1, ranges.size());
+    assertEquals(34, ranges.get(0)[0]);
+    assertEquals(126, ranges.get(0)[1]);
+    ranges = DnaUtils.parseLocation("35..>127");
+    assertEquals(1, ranges.size());
+    assertEquals(35, ranges.get(0)[0]);
+    assertEquals(127, ranges.get(0)[1]);
+
+    /*
      * valid things we don't yet handle
      */
-    assertNull(DnaUtils.parseLocation("<34..126"));
-    assertNull(DnaUtils.parseLocation("34..>126"));
     assertNull(DnaUtils.parseLocation("34.126"));
     assertNull(DnaUtils.parseLocation("34^126"));
     assertNull(DnaUtils.parseLocation("order(34..126,130..180)"));
@@ -114,6 +124,19 @@ public class DnaUtilsTest
     {
       // expected
     }
+
+    /*
+     * nested joins are not allowed; just as well since this fails to parse
+     * (splitting tokens by comma fragments the inner join expression)
+     */
+    assertNull(DnaUtils
+            .parseLocation("join(1..2,join(4..5,10..12),18..22)"));
+    /*
+     * complement may not enclose multiple ranges 
+     * parsing fails for the same reason
+     */
+    assertNull(DnaUtils
+            .parseLocation("join(complement(36618..36700,4000..4200),86988..87064)"));
   }
 
 }