JAL-2446 getGroups, getFeatures for positional/non-positional features
[jalview.git] / test / jalview / datamodel / features / FeatureStoreTest.java
index 0945803..fa63637 100644 (file)
@@ -236,7 +236,7 @@ public class FeatureStoreTest
   }
 
   @Test(groups = "Functional")
-  public void testGetFeatures()
+  public void testGetPositionalFeatures()
   {
     FeatureStore store = new FeatureStore();
     SequenceFeature sf1 = new SequenceFeature("Metal", "desc", 10, 20,
@@ -267,15 +267,19 @@ public class FeatureStoreTest
             18, 45, Float.NaN, null);
     store.addFeature(sf7);
 
-    List<SequenceFeature> features = store.getFeatures();
-    assertEquals(features.size(), 7);
+    List<SequenceFeature> features = store.getPositionalFeatures();
+    assertEquals(features.size(), 6);
     assertTrue(features.contains(sf1));
     assertTrue(features.contains(sf2));
     assertTrue(features.contains(sf3));
     assertTrue(features.contains(sf4));
     assertTrue(features.contains(sf5));
-    assertTrue(features.contains(sf6));
+    assertFalse(features.contains(sf6));
     assertTrue(features.contains(sf7));
+
+    features = store.getNonPositionalFeatures();
+    assertEquals(features.size(), 1);
+    assertTrue(features.contains(sf6));
   }
 
   @Test(groups = "Functional")
@@ -283,21 +287,22 @@ public class FeatureStoreTest
   {
     FeatureStore store = new FeatureStore();
     SequenceFeature sf1 = addFeature(store, 10, 20);
-    assertTrue(store.getFeatures().contains(sf1));
+    assertTrue(store.getPositionalFeatures().contains(sf1));
 
     /*
      * simple deletion
      */
     assertTrue(store.delete(sf1));
-    assertTrue(store.getFeatures().isEmpty());
+    assertTrue(store.getPositionalFeatures().isEmpty());
 
     /*
      * non-positional feature deletion
      */
     SequenceFeature sf2 = addFeature(store, 0, 0);
-    assertTrue(store.getFeatures().contains(sf2));
+    assertFalse(store.getPositionalFeatures().contains(sf2));
+    assertTrue(store.getNonPositionalFeatures().contains(sf2));
     assertTrue(store.delete(sf2));
-    assertTrue(store.getFeatures().isEmpty());
+    assertTrue(store.getNonPositionalFeatures().isEmpty());
 
     /*
      * contact feature deletion
@@ -305,10 +310,10 @@ public class FeatureStoreTest
     SequenceFeature sf3 = new SequenceFeature("", "Disulphide Bond", 11,
             23, Float.NaN, null);
     store.addFeature(sf3);
-    assertEquals(store.getFeatures().size(), 1);
-    assertTrue(store.getFeatures().contains(sf3));
+    assertEquals(store.getPositionalFeatures().size(), 1);
+    assertTrue(store.getPositionalFeatures().contains(sf3));
     assertTrue(store.delete(sf3));
-    assertTrue(store.getFeatures().isEmpty());
+    assertTrue(store.getPositionalFeatures().isEmpty());
 
     /*
      * nested feature deletion
@@ -319,34 +324,34 @@ public class FeatureStoreTest
     SequenceFeature sf7 = addFeature(store, 25, 25); // sibling of sf6
     SequenceFeature sf8 = addFeature(store, 24, 24); // child of sf6
     SequenceFeature sf9 = addFeature(store, 23, 23); // child of sf6
-    assertEquals(store.getFeatures().size(), 6);
+    assertEquals(store.getPositionalFeatures().size(), 6);
 
     // delete a node with children - they take its place
     assertTrue(store.delete(sf6)); // sf8, sf9 should become children of sf5
-    assertEquals(store.getFeatures().size(), 5);
-    assertFalse(store.getFeatures().contains(sf6));
+    assertEquals(store.getPositionalFeatures().size(), 5);
+    assertFalse(store.getPositionalFeatures().contains(sf6));
 
     // delete a node with no children
     assertTrue(store.delete(sf7));
-    assertEquals(store.getFeatures().size(), 4);
-    assertFalse(store.getFeatures().contains(sf7));
+    assertEquals(store.getPositionalFeatures().size(), 4);
+    assertFalse(store.getPositionalFeatures().contains(sf7));
 
     // delete root of NCList
     assertTrue(store.delete(sf5));
-    assertEquals(store.getFeatures().size(), 3);
-    assertFalse(store.getFeatures().contains(sf5));
+    assertEquals(store.getPositionalFeatures().size(), 3);
+    assertFalse(store.getPositionalFeatures().contains(sf5));
 
     // continue the killing fields
     assertTrue(store.delete(sf4));
-    assertEquals(store.getFeatures().size(), 2);
-    assertFalse(store.getFeatures().contains(sf4));
+    assertEquals(store.getPositionalFeatures().size(), 2);
+    assertFalse(store.getPositionalFeatures().contains(sf4));
 
     assertTrue(store.delete(sf9));
-    assertEquals(store.getFeatures().size(), 1);
-    assertFalse(store.getFeatures().contains(sf9));
+    assertEquals(store.getPositionalFeatures().size(), 1);
+    assertFalse(store.getPositionalFeatures().contains(sf9));
 
     assertTrue(store.delete(sf8));
-    assertTrue(store.getFeatures().isEmpty());
+    assertTrue(store.getPositionalFeatures().isEmpty());
   }
 
   @Test(groups = "Functional")
@@ -428,11 +433,11 @@ public class FeatureStoreTest
   public void testGetFeatureGroups()
   {
     FeatureStore fs = new FeatureStore();
-    assertTrue(fs.getFeatureGroups().isEmpty());
+    assertTrue(fs.getFeatureGroups(true).isEmpty());
 
     SequenceFeature sf1 = new SequenceFeature("Cath", "desc", 10, 20, 1f, "group1");
     fs.addFeature(sf1);
-    Set<String> groups = fs.getFeatureGroups();
+    Set<String> groups = fs.getFeatureGroups(true);
     assertEquals(groups.size(), 1);
     assertTrue(groups.contains("group1"));
 
@@ -441,16 +446,16 @@ public class FeatureStoreTest
      */
     SequenceFeature sf2 = new SequenceFeature("Cath", "desc", 20, 30, 1f, "group1");
     fs.addFeature(sf2);
-    groups = fs.getFeatureGroups();
+    groups = fs.getFeatureGroups(true);
     assertEquals(groups.size(), 1);
     assertTrue(groups.contains("group1"));
     fs.delete(sf2);
-    groups = fs.getFeatureGroups();
+    groups = fs.getFeatureGroups(true);
     assertEquals(groups.size(), 1);
     assertTrue(groups.contains("group1"));
     fs.delete(sf1);
-    groups = fs.getFeatureGroups();
-    assertTrue(fs.getFeatureGroups().isEmpty());
+    groups = fs.getFeatureGroups(true);
+    assertTrue(fs.getFeatureGroups(true).isEmpty());
 
     SequenceFeature sf3 = new SequenceFeature("Cath", "desc", 20, 30, 1f, "group2");
     fs.addFeature(sf3);
@@ -458,22 +463,22 @@ public class FeatureStoreTest
     fs.addFeature(sf4);
     SequenceFeature sf5 = new SequenceFeature("Cath", "desc", 20, 30, 1f, null);
     fs.addFeature(sf5);
-    groups = fs.getFeatureGroups();
+    groups = fs.getFeatureGroups(true);
     assertEquals(groups.size(), 3);
     assertTrue(groups.contains("group2"));
     assertTrue(groups.contains("Group2")); // case sensitive
     assertTrue(groups.contains(null)); // null allowed
 
     fs.delete(sf3);
-    groups = fs.getFeatureGroups();
+    groups = fs.getFeatureGroups(true);
     assertEquals(groups.size(), 2);
     assertFalse(groups.contains("group2"));
     fs.delete(sf4);
-    groups = fs.getFeatureGroups();
+    groups = fs.getFeatureGroups(true);
     assertEquals(groups.size(), 1);
     assertFalse(groups.contains("Group2"));
     fs.delete(sf5);
-    groups = fs.getFeatureGroups();
+    groups = fs.getFeatureGroups(true);
     assertTrue(groups.isEmpty());
   }
 }