Float.NaN, null);
assertTrue(fs.addFeature(sf1));
+ assertEquals(fs.size(true), 1); // positional
+ assertEquals(fs.size(false), 0); // non-positional
/*
* re-adding the same or an identical feature should fail
*/
assertFalse(fs.addFeature(sf1));
+ assertEquals(fs.size(true), 1);
assertFalse(fs.addFeature(sf2));
+ assertEquals(fs.size(true), 1);
}
@Test(groups = "Functional")
{
FeatureStore fs = new FeatureStore();
assertTrue(fs.isEmpty());
+ assertEquals(fs.size(true), 0);
/*
* non-nested feature
Float.NaN, null);
fs.addFeature(sf1);
assertFalse(fs.isEmpty());
+ assertEquals(fs.size(true), 1);
fs.delete(sf1);
assertTrue(fs.isEmpty());
+ assertEquals(fs.size(true), 0);
/*
* non-positional feature
sf1 = new SequenceFeature("Cath", "", 0, 0, Float.NaN, null);
fs.addFeature(sf1);
assertFalse(fs.isEmpty());
+ assertEquals(fs.size(false), 1); // non-positional
+ assertEquals(fs.size(true), 0); // positional
fs.delete(sf1);
assertTrue(fs.isEmpty());
+ assertEquals(fs.size(false), 0);
/*
* contact feature
sf1 = new SequenceFeature("Disulfide bond", "", 19, 49, Float.NaN, null);
fs.addFeature(sf1);
assertFalse(fs.isEmpty());
+ assertEquals(fs.size(true), 1);
fs.delete(sf1);
assertTrue(fs.isEmpty());
+ assertEquals(fs.size(true), 0);
/*
* sf2, sf3 added as nested features
fs.addFeature(sf1);
fs.addFeature(sf2);
fs.addFeature(sf3);
+ assertEquals(fs.size(true), 3);
assertTrue(fs.delete(sf1));
+ assertEquals(fs.size(true), 2);
// FeatureStore should now only contain features in the NCList
assertTrue(fs.nonNestedFeatures.isEmpty());
assertEquals(fs.nestedFeatures.size(), 2);
assertFalse(fs.isEmpty());
assertTrue(fs.delete(sf2));
+ assertEquals(fs.size(true), 1);
assertFalse(fs.isEmpty());
assertTrue(fs.delete(sf3));
+ assertEquals(fs.size(true), 0);
assertTrue(fs.isEmpty()); // all gone
}
groups = fs.getFeatureGroups(true);
assertTrue(groups.isEmpty());
}
+
+ @Test(groups = "Functional")
+ public void testGetAverageFeatureLength()
+ {
+ FeatureStore fs = new FeatureStore();
+ assertEquals(fs.getAverageFeatureLength(), 0f);
+
+ addFeature(fs, 10, 20); // 11
+ assertEquals(fs.getAverageFeatureLength(), 11f);
+ addFeature(fs, 17, 37); // 21
+ addFeature(fs, 14, 74); // 61
+ assertEquals(fs.getAverageFeatureLength(), 31f);
+
+ // non-positional features don't count
+ SequenceFeature sf1 = new SequenceFeature("Cath", "desc", 0, 0, 1f,
+ "group1");
+ fs.addFeature(sf1);
+ assertEquals(fs.getAverageFeatureLength(), 31f);
+
+ // contact features count 1
+ SequenceFeature sf2 = new SequenceFeature("disulphide bond", "desc",
+ 15, 35, 1f, "group1");
+ fs.addFeature(sf2);
+ assertEquals(fs.getAverageFeatureLength(), 94f / 4f);
+ }
}