X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Futil%2FMappingUtilsTest.java;h=758694a3a8c95b0e3589a3e1e17809e255b1327f;hb=a23ea387c12b87e15490f4a7f9afbdf34c232cf1;hp=032af30f590c7235891b5d9d40a025dcf9d923dd;hpb=5c6b5740b5bc6ac8e89dc04fe0a3542ee76cc22e;p=jalview.git diff --git a/test/jalview/util/MappingUtilsTest.java b/test/jalview/util/MappingUtilsTest.java index 032af30..758694a 100644 --- a/test/jalview/util/MappingUtilsTest.java +++ b/test/jalview/util/MappingUtilsTest.java @@ -442,7 +442,7 @@ public class MappingUtilsTest "[1, 2, 3, 4, 7, 8, 9, 12]", Arrays.toString(MappingUtils.flattenRanges(new int[] { 1, 4, 7, 9, 12, 12 }))); - // unpaired start position is ignored: + // trailing unpaired start position is ignored: assertEquals( "[1, 2, 3, 4, 7, 8, 9, 12]", Arrays.toString(MappingUtils.flattenRanges(new int[] { 1, 4, 7, @@ -736,4 +736,43 @@ public class MappingUtilsTest assertEquals(12, e.getPosition()); assertEquals(6, e.getNumber()); } + + /** + * Tests for the method that converts a series of [start, end] ranges to + * single positions, where the mapping is to a reverse strand i.e. start is + * greater than end point mapped to + */ + @Test(groups = { "Functional" }) + public void testFlattenRanges_reverseStrand() + { + assertEquals("[4, 3, 2, 1]", + Arrays.toString(MappingUtils.flattenRanges(new int[] { 4, 1 }))); + assertEquals( + "[4, 3, 2, 1]", + Arrays.toString(MappingUtils.flattenRanges(new int[] { 4, 3, 2, + 1 }))); + assertEquals( + "[4, 3, 2, 1]", + Arrays.toString(MappingUtils.flattenRanges(new int[] { 4, 4, 3, + 3, 2, 2, 1, 1 }))); + assertEquals( + "[12, 9, 8, 7, 4, 3, 2, 1]", + Arrays.toString(MappingUtils.flattenRanges(new int[] { 12, 12, + 9, 7, 4, 1 }))); + // forwards and backwards anyone? + assertEquals( + "[4, 5, 6, 3, 2, 1]", + Arrays.toString(MappingUtils.flattenRanges(new int[] { 4, 6, 3, + 1 }))); + // backwards and forwards + assertEquals( + "[3, 2, 1, 4, 5, 6]", + Arrays.toString(MappingUtils.flattenRanges(new int[] { 3, 1, 4, + 6 }))); + // trailing unpaired start position is ignored: + assertEquals( + "[12, 9, 8, 7, 4, 3, 2]", + Arrays.toString(MappingUtils.flattenRanges(new int[] { 12, 12, + 9, 7, 4, 2, 1 }))); + } }