JAL-3397 final update
[jalview.git] / test / jalview / datamodel / features / FeatureStoreJSTest.java
index 2b0c9ea..ac80298 100644 (file)
@@ -16,6 +16,8 @@ import org.testng.annotations.Test;
 public class FeatureStoreJSTest
 {
 
+  private int intervalStoreOption = FeatureStore.intervalStoreJSOption;
+
   @Test(groups = "Functional")
   public void testFindFeatures_nonNested()
   {
@@ -38,10 +40,9 @@ public class FeatureStoreJSTest
     overlaps = fs.findOverlappingFeatures(12, 16);
 
     assertEquals(overlaps.size(), 3);
-    // BH note, this is reversed from IS-NCList 2 1 0, not 0 1 2
-    assertEquals(overlaps.get(2).getEnd(), 20);
+    assertEquals(overlaps.get(2).getEnd(), 25);
     assertEquals(overlaps.get(1).getEnd(), 20);
-    assertEquals(overlaps.get(0).getEnd(), 25);
+    assertEquals(overlaps.get(0).getEnd(), 20);
 
     overlaps = fs.findOverlappingFeatures(33, 33);
     assertEquals(overlaps.size(), 1);
@@ -50,8 +51,7 @@ public class FeatureStoreJSTest
 
   private FeatureStoreI newFeatureStore()
   {
-    return new FeatureStoreJS();
-    // return new FeatureStoreImpl();
+    return new FeatureStoreJS(intervalStoreOption);
   }
 
   @Test(groups = "Functional")
@@ -93,9 +93,41 @@ public class FeatureStoreJSTest
     assertTrue(overlaps.contains(sf4));
   }
 
+  private void testFind()
+  {
+    FeatureStoreI fs1 = newFeatureStore();
+
+    SequenceFeature sf = addFeature(fs1, 1, 3000);
+
+    for (int i = 1; i < 1000; i++)
+
+    {
+
+      addFeature(fs1, 1 + i, 1000 + i);
+
+    }
+
+    // 1.......3000
+    // 2....1001
+    // 3....1002
+    // 4....1003
+    // ...
+    // 1000..1999
+
+    List<SequenceFeature> overlaps1 = fs1.findOverlappingFeatures(2000,
+            2001);
+
+    assertEquals(overlaps1.size(), 1);
+
+    assertTrue(overlaps1.contains(sf));
+
+  }
+
   @Test(groups = "Functional")
   public void testFindFeatures_mixed()
   {
+    testFind();
+
     FeatureStoreI fs = newFeatureStore();
     SequenceFeature sf1 = addFeature(fs, 10, 50);
     SequenceFeature sf2 = addFeature(fs, 1, 15);