X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Futil%2FMappingUtilsTest.java;h=9239ba596269f43cb57c3468a584e3a055b84346;hb=d043ce47fc710d3eb2629ba926a8a7417bd67d8c;hp=8cb1208bc69a9710cd6f32593cad9124a82305f5;hpb=04c8f7bff663aa469127e9eed4164e02933782f1;p=jalview.git diff --git a/test/jalview/util/MappingUtilsTest.java b/test/jalview/util/MappingUtilsTest.java index 8cb1208..9239ba5 100644 --- a/test/jalview/util/MappingUtilsTest.java +++ b/test/jalview/util/MappingUtilsTest.java @@ -59,6 +59,7 @@ import jalview.io.FileFormat; import jalview.io.FileFormatI; import jalview.io.FormatAdapter; + public class MappingUtilsTest { @BeforeClass(alwaysRun = true) @@ -1450,4 +1451,59 @@ public class MappingUtilsTest assertEquals(0, mappedGroup.getStartRes()); assertEquals(1, mappedGroup.getEndRes()); // two columns } + + // new for 2.12 + @Test(groups = "Functional") + public void testAddRange() + { + int[] range = { 1, 5 }; + List ranges = new ArrayList<>(); + + // add to empty list: + MappingUtils.addRange(range, ranges); + assertEquals(1, ranges.size()); + assertSame(range, ranges.get(0)); + + // extend contiguous (same position): + MappingUtils.addRange(new int[] { 5, 10 }, ranges); + assertEquals(1, ranges.size()); + assertEquals(1, ranges.get(0)[0]); + assertEquals(10, ranges.get(0)[1]); + + // extend contiguous (next position): + MappingUtils.addRange(new int[] { 11, 15 }, ranges); + assertEquals(1, ranges.size()); + assertEquals(1, ranges.get(0)[0]); + assertEquals(15, ranges.get(0)[1]); + + // change direction: range is not merged: + MappingUtils.addRange(new int[] { 16, 10 }, ranges); + assertEquals(2, ranges.size()); + assertEquals(16, ranges.get(1)[0]); + assertEquals(10, ranges.get(1)[1]); + + // extend reverse contiguous (same position): + MappingUtils.addRange(new int[] { 10, 8 }, ranges); + assertEquals(2, ranges.size()); + assertEquals(16, ranges.get(1)[0]); + assertEquals(8, ranges.get(1)[1]); + + // extend reverse contiguous (next position): + MappingUtils.addRange(new int[] { 7, 6 }, ranges); + assertEquals(2, ranges.size()); + assertEquals(16, ranges.get(1)[0]); + assertEquals(6, ranges.get(1)[1]); + + // change direction: range is not merged: + MappingUtils.addRange(new int[] { 6, 9 }, ranges); + assertEquals(3, ranges.size()); + assertEquals(6, ranges.get(2)[0]); + assertEquals(9, ranges.get(2)[1]); + + // not contiguous: not merged + MappingUtils.addRange(new int[] { 11, 12 }, ranges); + assertEquals(4, ranges.size()); + assertEquals(11, ranges.get(3)[0]); + assertEquals(12, ranges.get(3)[1]); + } }