3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertTrue;
6 import jalview.datamodel.Sequence;
7 import jalview.datamodel.SequenceI;
11 public class ComparisonTest
15 public void testIsGap()
17 assertTrue(Comparison.isGap('-'));
18 assertTrue(Comparison.isGap('.'));
19 assertTrue(Comparison.isGap(' '));
20 assertFalse(Comparison.isGap('X'));
21 assertFalse(Comparison.isGap('x'));
22 assertFalse(Comparison.isGap('*'));
23 assertFalse(Comparison.isGap('G'));
27 * Test for isNucleotide is that sequences in a dataset are more than 85%
28 * AGCTU. Test is not case-sensitive and ignores gaps.
31 public void testIsNucleotide() {
32 SequenceI seq = new Sequence("eightypercent", "agctuAGCPV");
33 assertFalse(Comparison.isNucleotide(new SequenceI[]
36 seq = new Sequence("eightyfivepercent", "agctuAGCPVagctuAGCUV");
37 assertFalse(Comparison.isNucleotide(new SequenceI[]
40 seq = new Sequence("nineypercent", "agctuAGCgVagctuAGCUV");
41 assertTrue(Comparison.isNucleotide(new SequenceI[]
44 seq = new Sequence("eightyfivepercentgapped",
45 "--agc--tuA--GCPV-a---gct-uA-GC---UV");
46 assertFalse(Comparison.isNucleotide(new SequenceI[]
49 seq = new Sequence("nineypercentgapped",
50 "ag--ct-u-A---GC---g----Vag--c---tuAGCUV");
51 assertTrue(Comparison.isNucleotide(new SequenceI[]
54 seq = new Sequence("allgap", "---------");
55 assertFalse(Comparison.isNucleotide(new SequenceI[]
58 seq = new Sequence("DNA", "ACTugGCCAG");
59 SequenceI seq2 = new Sequence("Protein", "FLIMVSPTYW");
60 assertTrue(Comparison.isNucleotide(new SequenceI[]
61 { seq, seq, seq, seq, seq, seq, seq, seq, seq, seq2 })); // 90% DNA
62 assertFalse(Comparison.isNucleotide(new SequenceI[]
63 { seq, seq, seq, seq, seq, seq, seq, seq, seq2, seq2 })); // 80% DNA
65 seq = new Sequence("ProteinThatLooksLikeDNA", "WYATGCCTGAgtcgt");
67 assertTrue(Comparison.isNucleotide(new SequenceI[]
70 assertFalse(Comparison.isNucleotide(null));
74 * Test percentage identity calculation for two sequences.
77 public void testPID_matchGaps()
79 String seq1 = "ABCDEF";
80 String seq2 = "abcdef";
81 assertEquals("identical", 100f, Comparison.PID(seq1, seq2), 0.001f);
83 // comparison range defaults to length of first sequence
84 seq2 = "abcdefghijklmnopqrstuvwxyz";
85 assertEquals("identical", 100f, Comparison.PID(seq1, seq2), 0.001f);