package jalview.io;
import static org.testng.AssertJUnit.assertEquals;
import jalview.datamodel.SequenceFeature;
import java.util.Hashtable;
import java.util.Map;
import org.testng.annotations.Test;
public class SequenceAnnotationReportTest
{
@Test(groups = "Functional")
public void testAppendFeature_disulfideBond()
{
SequenceAnnotationReport sar = new SequenceAnnotationReport(null);
StringBuffer sb = new StringBuffer();
sb.append("123456");
SequenceFeature sf = new SequenceFeature("disulfide bond", "desc", 1,
3, 1.2f, "group");
// residuePos == 2 does not match start or end of feature, nothing done:
sar.appendFeature(sb, 2, null, sf);
assertEquals("123456", sb.toString());
// residuePos == 1 matches start of feature, text appended (but no
)
// feature score is not included
sar.appendFeature(sb, 1, null, sf);
assertEquals("123456disulfide bond 1:3", sb.toString());
// residuePos == 3 matches end of feature, text appended
//
is prefixed once sb.length() > 6
sar.appendFeature(sb, 3, null, sf);
assertEquals("123456disulfide bond 1:3
disulfide bond 1:3",
sb.toString());
}
@Test(groups = "Functional")
public void testAppendFeature_status()
{
SequenceAnnotationReport sar = new SequenceAnnotationReport(null);
StringBuffer sb = new StringBuffer();
SequenceFeature sf = new SequenceFeature("METAL", "Fe2-S", 1, 3,
Float.NaN, "group");
sf.setStatus("Confirmed");
sar.appendFeature(sb, 1, null, sf);
assertEquals("METAL 1 3; Fe2-S; (Confirmed)", sb.toString());
}
@Test(groups = "Functional")
public void testAppendFeature_withScore()
{
SequenceAnnotationReport sar = new SequenceAnnotationReport(null);
StringBuffer sb = new StringBuffer();
SequenceFeature sf = new SequenceFeature("METAL", "Fe2-S", 1, 3, 1.3f,
"group");
Map
is appended to a buffer > 6 in length
assertEquals("METAL 1 3; Fe2-S
METAL 1 3; Fe2-S Score=1.3",
sb.toString());
/*
* map has min == max for this feature type - score is not shown:
*/
minmax.put("METAL", new float[][] { { 2f, 2f }, null });
sb.setLength(0);
sar.appendFeature(sb, 1, minmax, sf);
assertEquals("METAL 1 3; Fe2-S", sb.toString());
}
@Test(groups = "Functional")
public void testAppendFeature_noScore()
{
SequenceAnnotationReport sar = new SequenceAnnotationReport(null);
StringBuffer sb = new StringBuffer();
SequenceFeature sf = new SequenceFeature("METAL", "Fe2-S", 1, 3,
Float.NaN, "group");
sar.appendFeature(sb, 1, null, sf);
assertEquals("METAL 1 3; Fe2-S", sb.toString());
}
@Test(groups = "Functional")
public void testAppendFeature_clinicalSignificance()
{
SequenceAnnotationReport sar = new SequenceAnnotationReport(null);
StringBuffer sb = new StringBuffer();
SequenceFeature sf = new SequenceFeature("METAL", "Fe2-S", 1, 3,
Float.NaN, "group");
sf.setValue("clinical_significance", "Benign");
sar.appendFeature(sb, 1, null, sf);
assertEquals("METAL 1 3; Fe2-S; Benign", sb.toString());
}
@Test(groups = "Functional")
public void testAppendFeature_withScoreStatusClinicalSignificance()
{
SequenceAnnotationReport sar = new SequenceAnnotationReport(null);
StringBuffer sb = new StringBuffer();
SequenceFeature sf = new SequenceFeature("METAL", "Fe2-S", 1, 3, 1.3f,
"group");
sf.setStatus("Confirmed");
sf.setValue("clinical_significance", "Benign");
Map