+ public void testGetPositionalFeatures_withResultList()
+ {
+ FeatureStore store = newFeatureStore();
+ SequenceFeature sf1 = new SequenceFeature("Metal", "desc", 10, 20,
+ Float.NaN, null);
+ store.addFeature(sf1);
+ // contact feature
+ SequenceFeature sf2 = new SequenceFeature("Disulphide bond", "desc", 18,
+ 45, Float.NaN, null);
+ store.addFeature(sf2);
+
+ List<SequenceFeature> features = new ArrayList<>();
+ store.getPositionalFeatures(features);
+ assertEquals(features.size(), 2);
+ assertTrue(features.contains(sf1));
+ assertTrue(features.contains(sf2));
+
+ /*
+ * no check for duplicates
+ */
+ features.remove(sf1);
+ assertEquals(features.size(), 1);
+ assertTrue(features.contains(sf2));
+ store.getPositionalFeatures(features);
+ assertEquals(features.size(), 3);
+ assertTrue(features.contains(sf1));
+ assertTrue(features.contains(sf2)); // two copies now
+ features.remove(sf2);
+ assertTrue(features.contains(sf2)); // one copy left
+ assertEquals(features.size(), 2);
+
+ /*
+ * null argument throws exception
+ */
+ try
+ {
+ store.getPositionalFeatures(null);
+ fail("expected exception");
+ } catch (NullPointerException e)
+ {
+ // expected
+ }
+ }
+
+ @Test(groups = "Functional")
+ public void testGetNonPositionalFeatures()
+ {
+ FeatureStore store = newFeatureStore();
+ List<SequenceFeature> features = store.getNonPositionalFeatures();
+ assertTrue(features.isEmpty());
+
+ SequenceFeature sf1 = new SequenceFeature("Metal", "desc", 10, 20,
+ Float.NaN, null);
+ store.addFeature(sf1);
+ assertTrue(features.isEmpty());
+
+ SequenceFeature sf2 = new SequenceFeature("Metal", "desc", 0, 0,
+ Float.NaN, null);
+ store.addFeature(sf2);
+ features = store.getNonPositionalFeatures();
+ assertEquals(features.size(), 1);
+ assertTrue(features.contains(sf2));
+
+ /*
+ * with result list argument
+ */
+ features.clear();
+ store.getNonPositionalFeatures(features);
+ assertEquals(features.size(), 1);
+ assertTrue(features.contains(sf2));
+
+ /*
+ * no check for duplicates
+ */
+ store.getNonPositionalFeatures(features);
+ assertEquals(features.size(), 2);
+ assertTrue(features.contains(sf2)); // two copies
+ features.remove(sf2);
+ assertTrue(features.contains(sf2));
+
+ /*
+ * null argument throws exception
+ */
+ try
+ {
+ store.getNonPositionalFeatures(null);
+ fail("expected exception");
+ } catch (NullPointerException e)
+ {
+ // expected
+ }
+ }
+
+ @Test(groups = "Functional")