JAL-3725 helper methods for computing mapped feature range overlap
[jalview.git] / test / jalview / util / MappingUtilsTest.java
index d0269d8..0997fec 100644 (file)
@@ -22,10 +22,13 @@ package jalview.util;
 
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertNull;
 import static org.testng.AssertJUnit.assertSame;
 import static org.testng.AssertJUnit.assertTrue;
 import static org.testng.AssertJUnit.fail;
 
+import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
+
 import java.awt.Color;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -66,7 +69,6 @@ public class MappingUtilsTest
     Cache.initLogger();
   }
   
-
   @BeforeClass(alwaysRun = true)
   public void setUpJvOptionPane()
   {
@@ -1459,4 +1461,22 @@ public class MappingUtilsTest
     assertEquals(0, mappedGroup.getStartRes());
     assertEquals(1, mappedGroup.getEndRes()); // two columns
   }
+
+  @Test(groups = "Functional")
+  public void testFindOverlap()
+  {
+    List<int[]> ranges = new ArrayList<>();
+    ranges.add(new int[] {4, 8});
+    ranges.add(new int[] {10, 12});
+    ranges.add(new int[] {16, 19});
+    
+    int[] overlap = MappingUtils.findOverlap(ranges, 5,  13);
+    assertArrayEquals(overlap, new int[] {5, 12});
+    overlap = MappingUtils.findOverlap(ranges, -100, 100);
+    assertArrayEquals(overlap, new int[] {4, 19});
+    overlap = MappingUtils.findOverlap(ranges, 7, 17);
+    assertArrayEquals(overlap, new int[] {7, 17});
+    overlap = MappingUtils.findOverlap(ranges, 13, 15);
+    assertNull(overlap);
+  }
 }