import jalview.datamodel.SequenceFeature;
import java.util.List;
+import java.util.Set;
import org.testng.annotations.Test;
sf.delete(sf1);
assertFalse(sf.hasFeatures());
}
+
+ @Test(groups = "Functional")
+ public void testGetFeatureGroups()
+ {
+ SequenceFeatures sf = new SequenceFeatures();
+ assertTrue(sf.getFeatureGroups().isEmpty());
+
+ SequenceFeature sf1 = new SequenceFeature("Pfam", "Desc", 10, 50, 0f,
+ "PfamGroup");
+ sf.add(sf1);
+ Set<String> groups = sf.getFeatureGroups();
+ assertEquals(groups.size(), 1);
+ assertTrue(groups.contains("PfamGroup"));
+
+ SequenceFeature sf2 = new SequenceFeature("Cath", "Desc", 10, 50, 0f,
+ null);
+ sf.add(sf2);
+ groups = sf.getFeatureGroups();
+ assertEquals(groups.size(), 2);
+ assertTrue(groups.contains("PfamGroup"));
+ assertTrue(groups.contains(null));
+
+ sf.delete(sf1);
+ sf.delete(sf2);
+ assertTrue(sf.getFeatureGroups().isEmpty());
+
+ SequenceFeature sf3 = new SequenceFeature("CDS", "", 10, 50, 0f,
+ "Ensembl");
+ sf.add(sf3);
+ SequenceFeature sf4 = new SequenceFeature("exon", "", 10, 50, 0f,
+ "Ensembl");
+ sf.add(sf4);
+ groups = sf.getFeatureGroups();
+ assertEquals(groups.size(), 1);
+ assertTrue(groups.contains("Ensembl"));
+
+ /*
+ * delete last Ensembl group feature from CDS features
+ * but still have one in exon features
+ */
+ sf.delete(sf3);
+ groups = sf.getFeatureGroups();
+ assertEquals(groups.size(), 1);
+ assertTrue(groups.contains("Ensembl"));
+ }
}