JAL-1800 SearchResults.equals() to allow smarter mouseover of codons
[jalview.git] / test / jalview / datamodel / MatchTest.java
1 package jalview.datamodel;
2 import static org.testng.AssertJUnit.assertEquals;
3 import static org.testng.AssertJUnit.assertFalse;
4 import static org.testng.AssertJUnit.assertTrue;
5
6 import jalview.datamodel.SearchResults.Match;
7
8 import org.testng.annotations.Test;
9
10 public class MatchTest
11 {
12
13   @Test(groups = { "Functional" })
14   public void testToString()
15   {
16     SequenceI seq = new Sequence("", "abcdefghijklm");
17     Match m = new SearchResults().new Match(seq, 3, 5);
18     assertEquals("2cde", m.toString());
19   }
20
21   @Test(groups = { "Functional" })
22   public void testEquals()
23   {
24     SequenceI seq1 = new Sequence("", "abcdefghijklm");
25     SequenceI seq2 = new Sequence("", "abcdefghijklm");
26     SearchResults sr1 = new SearchResults();
27     SearchResults sr2 = new SearchResults();
28
29     assertFalse(sr1.equals(null));
30     assertFalse(sr1.equals(seq1));
31     assertTrue(sr1.equals(sr1));
32     assertTrue(sr1.equals(sr2));
33     assertTrue(sr2.equals(sr1));
34
35     sr1.addResult(seq1, 1, 1);
36     assertFalse(sr1.equals(sr2));
37     assertFalse(sr2.equals(sr1));
38
39     sr2.addResult(seq1, 1, 1);
40     assertTrue(sr1.equals(sr2));
41     assertTrue(sr2.equals(sr1));
42
43     /*
44      * same match but on different sequences - not equal
45      */
46     SearchResults sr3 = new SearchResults();
47     sr3.addResult(seq2, 1, 1);
48     assertFalse(sr1.equals(sr3));
49     assertFalse(sr3.equals(sr1));
50
51     /*
52      * same sequence but different end position - not equal
53      */
54     sr1.addResult(seq1, 3, 4);
55     sr2.addResult(seq1, 3, 5);
56     assertFalse(sr1.equals(sr2));
57
58     /*
59      * same sequence but different start position - not equal
60      */
61     sr1 = new SearchResults();
62     sr2 = new SearchResults();
63     sr1.addResult(seq1, 3, 4);
64     sr2.addResult(seq1, 2, 4);
65     assertFalse(sr1.equals(sr2));
66   }
67 }