- /**
- * Tests for the method that removes the trailing stop codon from a mapping
- * range i.e. the last 3 positions (whether split or not)
- */
- @Test(groups = { "Functional" })
- public void testUnmapStopCodon()
- {
- List<int[]> ranges = new ArrayList<int[]>();
-
- // simple case, forward strand:
- ranges.add(new int[] { 1, 3 });
- ranges.add(new int[] { 9, 14 });
- MappingUtils.unmapStopCodon(ranges, 9);
- assertEquals(2, ranges.size());
- assertArrayEquals(new int[] { 1, 3 }, ranges.get(0));
- assertArrayEquals(new int[] { 9, 11 }, ranges.get(1));
-
- // split stop codon, forward strand:
- ranges.clear();
- ranges.add(new int[] { 1, 8 });
- ranges.add(new int[] { 10, 10 });
- MappingUtils.unmapStopCodon(ranges, 9);
- assertEquals(1, ranges.size());
- assertArrayEquals(new int[] { 1, 6 }, ranges.get(0));
-
- // very split stop codon, forward strand:
- ranges.clear();
- ranges.add(new int[] { 1, 1 });
- ranges.add(new int[] { 3, 4 });
- ranges.add(new int[] { 6, 6 });
- ranges.add(new int[] { 8, 8 });
- ranges.add(new int[] { 10, 10 });
- MappingUtils.unmapStopCodon(ranges, 6);
- assertEquals(2, ranges.size());
- assertArrayEquals(new int[] { 1, 1 }, ranges.get(0));
- assertArrayEquals(new int[] { 3, 4 }, ranges.get(1));
-
- // simple case, reverse strand:
- ranges.clear();
- ranges.add(new int[] { 12, 10 });
- ranges.add(new int[] { 6, 1 });
- MappingUtils.unmapStopCodon(ranges, 9);
- assertEquals(2, ranges.size());
- assertArrayEquals(new int[] { 12, 10 }, ranges.get(0));
- assertArrayEquals(new int[] { 6, 4 }, ranges.get(1));
-
- // split stop codon, reverse strand:
- ranges.clear();
- ranges.add(new int[] { 12, 6 });
- ranges.add(new int[] { 4, 3 });
- MappingUtils.unmapStopCodon(ranges, 9);
- assertEquals(1, ranges.size());
- assertArrayEquals(new int[] { 12, 7 }, ranges.get(0));
- }
-