X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Futil%2FDnaUtilsTest.java;h=6623c137c23e854540e4d801764e9a0fd976ba8c;hb=9472f2f66bbcbc7d875251804d4c926f63828a87;hp=af76885ba19d017a8b8deb4bd94a5f4e2357a49d;hpb=a4507b66add69be7e5097dcc8fbd9bd08b0626cb;p=jalview.git diff --git a/test/jalview/util/DnaUtilsTest.java b/test/jalview/util/DnaUtilsTest.java index af76885..6623c13 100644 --- a/test/jalview/util/DnaUtilsTest.java +++ b/test/jalview/util/DnaUtilsTest.java @@ -19,9 +19,17 @@ public class DnaUtilsTest public void testParseLocation() { /* + * single locus + */ + List ranges = DnaUtils.parseLocation("467"); + assertEquals(1, ranges.size()); + assertEquals(467, ranges.get(0)[0]); + assertEquals(467, ranges.get(0)[1]); + + /* * simple range */ - List ranges = DnaUtils.parseLocation("12..78"); + ranges = DnaUtils.parseLocation("12..78"); assertEquals(1, ranges.size()); assertEquals(12, ranges.get(0)[0]); assertEquals(78, ranges.get(0)[1]); @@ -81,12 +89,23 @@ 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)")); /* * invalid things @@ -94,6 +113,9 @@ public class DnaUtilsTest assertNull(DnaUtils.parseLocation("")); assertNull(DnaUtils.parseLocation("JOIN(1..2)")); assertNull(DnaUtils.parseLocation("join(1..2")); + assertNull(DnaUtils.parseLocation("join(1..2(")); + assertNull(DnaUtils.parseLocation("complement(1..2")); + assertNull(DnaUtils.parseLocation("complement(1..2(")); try { assertNull(DnaUtils.parseLocation(null)); @@ -102,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)")); } }