JAL-722 redone additional derived alignment statistics
[jalview.git] / test / jalview / io / AlignmentPropertiesTest.java
1 package jalview.io;
2
3 import static org.testng.Assert.assertEquals;
4
5 import jalview.datamodel.Alignment;
6 import jalview.datamodel.AlignmentI;
7 import jalview.datamodel.Sequence;
8 import jalview.datamodel.SequenceI;
9
10 import org.testng.annotations.Test;
11
12 public class AlignmentPropertiesTest
13 {
14   @Test(groups="Functional")
15   public void testWriteProperties_asHtml()
16   {
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 });
21
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);
35   }
36 }