X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2Ffeatures%2FSequenceFeaturesTest.java;h=e979f5108ac4836a2af30f2f04f518688be2bfc8;hb=942cc6dcee175123aefd418a040d7fc6c7e8f6c5;hp=29e76bbd4e1b356e6bbe8e28cec4a307d2580b26;hpb=08b87509ada06ac8614424247346daef4054b41a;p=jalview.git diff --git a/test/jalview/datamodel/features/SequenceFeaturesTest.java b/test/jalview/datamodel/features/SequenceFeaturesTest.java index 29e76bb..e979f51 100644 --- a/test/jalview/datamodel/features/SequenceFeaturesTest.java +++ b/test/jalview/datamodel/features/SequenceFeaturesTest.java @@ -1275,4 +1275,73 @@ public class SequenceFeaturesTest store.deleteAll(); assertFalse(store.hasFeatures()); } + + @Test(groups = "Functional") + public void testFindFeatures_withResultList() + { + SequenceFeaturesI sf = new SequenceFeatures(); + SequenceFeature sf1 = addFeature(sf, "Pfam", 10, 50); + SequenceFeature sf2 = addFeature(sf, "Pfam", 150, 250); + + /* + * findFeatures with result list to append to + */ + List overlaps = new ArrayList<>(); + List result = sf.findFeatures(200, "Pfam", overlaps); + assertSame(result, overlaps); + assertEquals(result.size(), 1); + assertTrue(result.contains(sf2)); + assertFalse(result.contains(sf1)); + + /* + * with no result list - method creates one + */ + result = sf.findFeatures(200, "Pfam", null); + assertEquals(result.size(), 1); + assertTrue(result.contains(sf2)); + assertFalse(result.contains(sf1)); + + /* + * verify the created list is extendable (is not immutable) + * notice it may contain duplicates + */ + result = sf.findFeatures(220, "Pfam", result); + assertEquals(result.size(), 2); + assertSame(result.get(0), sf2); // in input list + assertSame(result.get(1), sf2); // duplicate added + + /* + * no feature of requested type - with result list + */ + overlaps.clear(); + result = sf.findFeatures(200, "Rfam", overlaps); + assertTrue(result.isEmpty()); + + /* + * no feature of requested type - with no result list + */ + result = sf.findFeatures(200, "Rfam", null); + assertTrue(result.isEmpty()); + + /* + * verify the created list is extendable (is not immutable) + */ + result = sf.findFeatures(210, "Pfam", result); + assertEquals(result.size(), 1); + assertTrue(result.contains(sf2)); + assertFalse(result.contains(sf1)); + } + + @Test(groups = "Functional") + public void testHasFeatures_ofType() + { + SequenceFeaturesI sf = new SequenceFeatures(); + assertFalse(sf.hasFeatures("Pfam")); + + SequenceFeature sf1 = addFeature(sf, "Pfam", 10, 50); + assertTrue(sf.hasFeatures("Pfam")); + + sf.delete(sf1); + assertFalse(sf.hasFeatures("Pfam")); + } }