3 import static org.testng.Assert.assertEquals;
5 import jalview.datamodel.Alignment;
6 import jalview.datamodel.AlignmentI;
7 import jalview.datamodel.Sequence;
8 import jalview.datamodel.SequenceI;
10 import org.testng.annotations.Test;
12 public class AlignmentPropertiesTest
14 @Test(groups="Functional")
15 public void testWriteProperties_asHtml()
17 SequenceI seq1 = new Sequence("Seq1", "--ABC-DEFGH-"); // 8 residues
18 SequenceI seq2 = new Sequence("Seq2", "---BC-DE-KH-"); // 6
19 SequenceI seq3 = new Sequence("Seq3", "-RABCFDE-KH-"); // 9
20 AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2, seq3 });
22 AlignmentProperties ap = new AlignmentProperties(al);
23 StringBuilder sb = ap.writeProperties(true);
24 String expected = "<table border=\"1\">"
25 + "<tr><td>Sequences</td><td>3</td></tr>"
26 + "<tr><td>Alignment width</td><td>12</td></tr>"
27 + "<tr><td>Minimum Sequence Length</td><td>6</td></tr>"
28 + "<tr><td>Maximum Sequence Length</td><td>9</td></tr>"
29 + "<tr><td>Average Length</td><td>7</td></tr>"
30 + "<tr><td>Minimum (sequence length / width)</td><td>50.0%</td></tr>" // 6/12
31 + "<tr><td>Maximum (sequence length / width)</td><td>75.0%</td></tr>" // 9/12
32 + "<tr><td>Residue density</td><td>63.9%</td></tr>" // 23/36
33 + "<tr><td>Gap density</td><td>36.1%</td></tr>" + "</table>";
34 assertEquals(sb.toString(), expected);