3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertFalse;
5 import static org.testng.AssertJUnit.assertTrue;
6 import org.testng.annotations.Test;
7 import jalview.datamodel.Sequence;
8 import jalview.datamodel.SequenceI;
10 public class ComparisonTest
14 public void testIsGap()
16 assertTrue(Comparison.isGap('-'));
17 assertTrue(Comparison.isGap('.'));
18 assertTrue(Comparison.isGap(' '));
19 assertFalse(Comparison.isGap('X'));
20 assertFalse(Comparison.isGap('x'));
21 assertFalse(Comparison.isGap('*'));
22 assertFalse(Comparison.isGap('G'));
26 * Test for isNucleotide is that sequences in a dataset are more than 85%
27 * AGCTU. Test is not case-sensitive and ignores gaps.
30 public void testIsNucleotide() {
31 SequenceI seq = new Sequence("eightypercent", "agctuAGCPV");
32 assertFalse(Comparison.isNucleotide(new SequenceI[]
34 assertFalse(Comparison.isNucleotide(new SequenceI[][]
38 seq = new Sequence("eightyfivepercent", "agctuAGCPVagctuAGCUV");
39 assertFalse(Comparison.isNucleotide(new SequenceI[]
42 seq = new Sequence("nineypercent", "agctuAGCgVagctuAGCUV");
43 assertTrue(Comparison.isNucleotide(new SequenceI[]
46 seq = new Sequence("eightyfivepercentgapped",
47 "--agc--tuA--GCPV-a---gct-uA-GC---UV");
48 assertFalse(Comparison.isNucleotide(new SequenceI[]
51 seq = new Sequence("nineypercentgapped",
52 "ag--ct-u-A---GC---g----Vag--c---tuAGCUV");
53 assertTrue(Comparison.isNucleotide(new SequenceI[]
56 seq = new Sequence("allgap", "---------");
57 assertFalse(Comparison.isNucleotide(new SequenceI[]
60 seq = new Sequence("DNA", "ACTugGCCAG");
61 SequenceI seq2 = new Sequence("Protein", "FLIMVSPTYW");
65 assertTrue(Comparison.isNucleotide(new SequenceI[]
66 { seq, seq, seq, seq, seq, seq, seq, seq, seq, seq2 }));
67 assertTrue(Comparison.isNucleotide(new SequenceI[][]
69 { seq }, new SequenceI[]
70 { seq, seq, seq }, new SequenceI[]
71 { seq, seq, seq, seq, seq, seq2 } }));
75 assertFalse(Comparison.isNucleotide(new SequenceI[]
76 { seq, seq, seq, seq, seq, seq, seq, seq, seq2, seq2 }));
77 assertFalse(Comparison.isNucleotide(new SequenceI[][]
79 { seq }, new SequenceI[]
80 { seq, seq, seq }, new SequenceI[]
81 { seq, seq, seq, seq, seq2, seq2, null } }));
83 seq = new Sequence("ProteinThatLooksLikeDNA", "WYATGCCTGAgtcgt");
85 assertTrue(Comparison.isNucleotide(new SequenceI[]
88 assertFalse(Comparison.isNucleotide((SequenceI[]) null));
89 assertFalse(Comparison.isNucleotide((SequenceI[][]) null));
93 * Test percentage identity calculation for two sequences.
96 public void testPID_matchGaps()
98 String seq1 = "ABCDEF";
99 String seq2 = "abcdef";
100 assertEquals("identical", 100f, Comparison.PID(seq1, seq2), 0.001f);
102 // comparison range defaults to length of first sequence
103 seq2 = "abcdefghijklmnopqrstuvwxyz";
104 assertEquals("identical", 100f, Comparison.PID(seq1, seq2), 0.001f);