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("35..>126"));
assertNull(DnaUtils.parseLocation("34.126"));
assertNull(DnaUtils.parseLocation("34^126"));
assertNull(DnaUtils.parseLocation("order(34..126,130..180)"));
{
// 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)"));
}
}