3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertNull;
5 import static org.testng.AssertJUnit.fail;
9 import org.testng.annotations.Test;
11 public class DnaUtilsTest
14 * Tests for parsing an ENA/GenBank location specifier
16 * @see http://www.insdc.org/files/feature_table.html#3.4
18 @Test(groups = { "Functional" })
19 public void testParseLocation()
24 List<int[]> ranges = DnaUtils.parseLocation("12..78");
25 assertEquals(1, ranges.size());
26 assertEquals(12, ranges.get(0)[0]);
27 assertEquals(78, ranges.get(0)[1]);
30 * join of simple ranges
32 ranges = DnaUtils.parseLocation("join(12..78,134..202,322..345)");
33 assertEquals(3, ranges.size());
34 assertEquals(12, ranges.get(0)[0]);
35 assertEquals(78, ranges.get(0)[1]);
36 assertEquals(134, ranges.get(1)[0]);
37 assertEquals(202, ranges.get(1)[1]);
38 assertEquals(322, ranges.get(2)[0]);
39 assertEquals(345, ranges.get(2)[1]);
42 * complement of a simple range
44 ranges = DnaUtils.parseLocation("complement(34..126)");
45 assertEquals(1, ranges.size());
46 assertEquals(126, ranges.get(0)[0]);
47 assertEquals(34, ranges.get(0)[1]);
50 * complement of a join
53 .parseLocation("complement(join(2691..4571,4918..5163))");
54 assertEquals(2, ranges.size());
55 assertEquals(5163, ranges.get(0)[0]);
56 assertEquals(4918, ranges.get(0)[1]);
57 assertEquals(4571, ranges.get(1)[0]);
58 assertEquals(2691, ranges.get(1)[1]);
61 * join of two complements
64 .parseLocation("join(complement(4918..5163),complement(2691..4571))");
65 assertEquals(2, ranges.size());
66 assertEquals(5163, ranges.get(0)[0]);
67 assertEquals(4918, ranges.get(0)[1]);
68 assertEquals(4571, ranges.get(1)[0]);
69 assertEquals(2691, ranges.get(1)[1]);
72 * join complement to non-complement
73 * @see http://www.ncbi.nlm.nih.gov/genbank/genomesubmit_annotation/ Transpliced Genes
76 .parseLocation("join(complement(36618..36700),86988..87064)");
77 assertEquals(2, ranges.size());
78 assertEquals(36700, ranges.get(0)[0]);
79 assertEquals(36618, ranges.get(0)[1]);
80 assertEquals(86988, ranges.get(1)[0]);
81 assertEquals(87064, ranges.get(1)[1]);
84 * valid things we don't yet handle
86 assertNull(DnaUtils.parseLocation("<34..126"));
87 assertNull(DnaUtils.parseLocation("34..>126"));
88 assertNull(DnaUtils.parseLocation("34.126"));
89 assertNull(DnaUtils.parseLocation("34^126"));
94 assertNull(DnaUtils.parseLocation(""));
95 assertNull(DnaUtils.parseLocation("JOIN(1..2)"));
96 assertNull(DnaUtils.parseLocation("join(1..2"));
99 assertNull(DnaUtils.parseLocation(null));
100 fail("Expected exception");
101 } catch (NullPointerException e)