X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2Ffeatures%2FFeatureStoreTest.java;h=bc179f69ca6f6857fc29de23415ef4b9817bd8fc;hb=78991c8c3216606a0e7203ec25f59fea4898126c;hp=c38cb1eabfa2de895aa7c2ea7e14ac7388f28c6d;hpb=4a25d1aa51aa9f76efba8eb278bdd976216bb88e;p=jalview.git diff --git a/test/jalview/datamodel/features/FeatureStoreTest.java b/test/jalview/datamodel/features/FeatureStoreTest.java index c38cb1e..bc179f6 100644 --- a/test/jalview/datamodel/features/FeatureStoreTest.java +++ b/test/jalview/datamodel/features/FeatureStoreTest.java @@ -8,18 +8,25 @@ import static org.testng.Assert.assertTrue; import jalview.datamodel.SequenceFeature; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Set; import org.testng.annotations.Test; +import junit.extensions.PA; + public class FeatureStoreTest { + private FeatureStore newFeatureStore() + { + return new FeatureStore(); + } @Test(groups = "Functional") public void testFindFeatures_nonNested() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); fs.addFeature(new SequenceFeature("", "", 10, 20, Float.NaN, null)); // same range different description @@ -49,7 +56,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testFindFeatures_nested() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); SequenceFeature sf1 = addFeature(fs, 10, 50); SequenceFeature sf2 = addFeature(fs, 10, 40); SequenceFeature sf3 = addFeature(fs, 20, 30); @@ -88,7 +95,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testFindFeatures_mixed() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); SequenceFeature sf1 = addFeature(fs, 10, 50); SequenceFeature sf2 = addFeature(fs, 1, 15); SequenceFeature sf3 = addFeature(fs, 20, 30); @@ -145,7 +152,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testFindFeatures_contactFeatures() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); SequenceFeature sf = new SequenceFeature("disulphide bond", "bond", 10, 20, Float.NaN, null); @@ -188,7 +195,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testGetPositionalFeatures() { - FeatureStore store = new FeatureStore(); + FeatureStore store = newFeatureStore(); SequenceFeature sf1 = new SequenceFeature("Metal", "desc", 10, 20, Float.NaN, null); store.addFeature(sf1); @@ -235,7 +242,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testDelete() { - FeatureStore store = new FeatureStore(); + FeatureStore store = newFeatureStore(); SequenceFeature sf1 = addFeature(store, 10, 20); assertTrue(store.getPositionalFeatures().contains(sf1)); @@ -307,7 +314,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testAddFeature() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); SequenceFeature sf1 = new SequenceFeature("Cath", "", 10, 20, Float.NaN, null); @@ -358,7 +365,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testIsEmpty() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); assertTrue(fs.isEmpty()); assertEquals(fs.getFeatureCount(true), 0); @@ -411,7 +418,9 @@ public class FeatureStoreTest assertEquals(fs.getFeatureCount(true), 3); assertTrue(fs.delete(sf1)); assertEquals(fs.getFeatureCount(true), 2); - assertEquals(fs.features.size(), 2); + Collection intervalStore = (Collection) PA + .getValue(fs, "features"); + assertEquals(intervalStore.size(), 2); assertFalse(fs.isEmpty()); assertTrue(fs.delete(sf2)); assertEquals(fs.getFeatureCount(true), 1); @@ -424,7 +433,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testGetFeatureGroups() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); assertTrue(fs.getFeatureGroups(true).isEmpty()); assertTrue(fs.getFeatureGroups(false).isEmpty()); @@ -491,7 +500,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testGetTotalFeatureLength() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); assertEquals(fs.getTotalFeatureLength(), 0); addFeature(fs, 10, 20); // 11 @@ -567,7 +576,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testGetMinimumScore_getMaximumScore() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); assertEquals(fs.getMinimumScore(true), Float.NaN); // positional assertEquals(fs.getMaximumScore(true), Float.NaN); assertEquals(fs.getMinimumScore(false), Float.NaN); // non-positional @@ -639,14 +648,15 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testListContains() { - assertFalse(FeatureStore.listContains(null, null)); + FeatureStore featureStore = newFeatureStore(); + assertFalse(featureStore.listContains(null, null)); List features = new ArrayList<>(); - assertFalse(FeatureStore.listContains(features, null)); + assertFalse(featureStore.listContains(features, null)); SequenceFeature sf1 = new SequenceFeature("type1", "desc1", 20, 30, 3f, "group1"); - assertFalse(FeatureStore.listContains(null, sf1)); - assertFalse(FeatureStore.listContains(features, sf1)); + assertFalse(featureStore.listContains(null, sf1)); + assertFalse(featureStore.listContains(features, sf1)); features.add(sf1); SequenceFeature sf2 = new SequenceFeature("type1", "desc1", 20, 30, 3f, @@ -655,14 +665,14 @@ public class FeatureStoreTest "group1"); // sf2.equals(sf1) so contains should return true - assertTrue(FeatureStore.listContains(features, sf2)); - assertFalse(FeatureStore.listContains(features, sf3)); + assertTrue(featureStore.listContains(features, sf2)); + assertFalse(featureStore.listContains(features, sf3)); } @Test(groups = "Functional") public void testGetFeaturesForGroup() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); /* * with no features @@ -720,7 +730,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testShiftFeatures() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); assertFalse(fs.shiftFeatures(0, 1)); // nothing to do SequenceFeature sf1 = new SequenceFeature("Cath", "", 2, 5, 0f, null); @@ -807,7 +817,7 @@ public class FeatureStoreTest /* * add a feature and a nested feature */ - FeatureStore store = new FeatureStore(); + FeatureStore store = newFeatureStore(); SequenceFeature sf1 = addFeature(store, 10, 20); // sf2 is nested in sf1 so will be stored in nestedFeatures SequenceFeature sf2 = addFeature(store, 12, 14); @@ -815,8 +825,10 @@ public class FeatureStoreTest assertEquals(features.size(), 2); assertTrue(features.contains(sf1)); assertTrue(features.contains(sf2)); - assertTrue(store.features.contains(sf1)); - assertTrue(store.features.contains(sf2)); + Collection intervalStore = (Collection) PA + .getValue(store, "features"); + assertTrue(intervalStore.contains(sf1)); + assertTrue(intervalStore.contains(sf2)); /* * delete the first feature @@ -838,7 +850,7 @@ public class FeatureStoreTest @Test(groups = "Functional") public void testContains() { - FeatureStore fs = new FeatureStore(); + FeatureStore fs = newFeatureStore(); SequenceFeature sf1 = new SequenceFeature("Cath", "", 10, 20, Float.NaN, "group1"); SequenceFeature sf2 = new SequenceFeature("Cath", "", 10, 20, @@ -881,4 +893,28 @@ public class FeatureStoreTest assertFalse(fs.contains(sf1)); assertTrue(fs.contains(sf7)); } + + @Test(groups = "Functional") + public void testFindFeatures_withResultList() + { + FeatureStore fs = newFeatureStore(); + SequenceFeature sf1 = addFeature(fs, 10, 50); + SequenceFeature sf2 = addFeature(fs, 150, 250); + + List overlaps = new ArrayList<>(); + List result = fs.findOverlappingFeatures(200, 200, + overlaps); + assertSame(result, overlaps); + assertEquals(result.size(), 1); + assertTrue(result.contains(sf2)); + assertFalse(result.contains(sf1)); + + /* + * if no list supplied, method creates one + */ + result = fs.findOverlappingFeatures(200, 200, null); + assertEquals(result.size(), 1); + assertTrue(result.contains(sf2)); + assertFalse(result.contains(sf1)); + } }