1 package jalview.datamodel;
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertFalse;
5 import static org.testng.AssertJUnit.assertTrue;
7 import org.testng.annotations.Test;
9 public class SearchResultsTest
12 @Test(groups ={ "Functional" })
13 public void testToString()
15 SequenceI seq = new Sequence("", "abcdefghijklm");
16 SearchResults sr = new SearchResults();
17 sr.addResult(seq, 1, 1);
18 assertEquals("0a", sr.toString());
19 sr.addResult(seq, 3, 5);
20 assertEquals("0a2cde", sr.toString());
22 seq = new Sequence("", "pqrstuvwxy");
23 sr.addResult(seq, 6, 7);
24 assertEquals("0a2cde5uv", sr.toString());
27 @Test(groups = { "Functional" })
28 public void testEquals()
30 SequenceI seq1 = new Sequence("", "abcdefghijklm");
31 SearchResults sr1 = new SearchResults();
32 SearchResults sr2 = new SearchResults();
34 assertFalse(sr1.equals(null)); // null object
35 assertFalse(sr1.equals(seq1)); // wrong type
36 assertTrue(sr1.equals(sr1)); // self
37 assertTrue(sr1.equals(sr2)); // empty
38 assertTrue(sr2.equals(sr1)); // reflexive
41 * only one result is not empty
43 sr1.addResult(seq1, 1, 1);
44 assertTrue(sr1.equals(sr1));
45 assertFalse(sr1.equals(sr2));
46 assertFalse(sr2.equals(sr1));
51 sr2.addResult(seq1, 1, 1);
52 assertTrue(sr1.equals(sr2));
53 assertTrue(sr2.equals(sr1));
56 * both have three matches
58 sr1.addResult(seq1, 3, 4);
59 sr1.addResult(seq1, 6, 8);
60 sr2.addResult(seq1, 3, 4);
61 sr2.addResult(seq1, 6, 8);
62 assertTrue(sr1.equals(sr1));
63 assertTrue(sr2.equals(sr2));
64 assertTrue(sr1.equals(sr2));
65 assertTrue(sr2.equals(sr1));
69 * Matches that are similar but for distinct sequences are not equal
71 @Test(groups = { "Functional" })
72 public void testEquals_distinctSequences()
74 SequenceI seq1 = new Sequence("", "abcdefghijklm");
75 SequenceI seq2 = new Sequence("", "abcdefghijklm");
76 SearchResults sr1 = new SearchResults();
77 SearchResults sr2 = new SearchResults();
79 sr1.addResult(seq1, 1, 1);
80 sr2.addResult(seq2, 1, 1);
81 assertFalse(sr1.equals(sr2));
82 assertFalse(sr2.equals(sr1));
86 * Matches that are the same except for ordering are not equal
88 @Test(groups = { "Functional" })
89 public void testEquals_orderDiffers()
91 SequenceI seq1 = new Sequence("", "abcdefghijklm");
92 SearchResults sr1 = new SearchResults();
93 SearchResults sr2 = new SearchResults();
95 sr1.addResult(seq1, 1, 1);
96 sr1.addResult(seq1, 2, 2);
97 sr2.addResult(seq1, 2, 2);
98 sr2.addResult(seq1, 1, 1);
99 assertFalse(sr1.equals(sr2));
100 assertFalse(sr2.equals(sr1));
104 * Verify that hashCode matches for equal objects
106 @Test(groups = { "Functional" })
107 public void testHashcode()
109 SequenceI seq1 = new Sequence("", "abcdefghijklm");
110 SearchResults sr1 = new SearchResults();
111 SearchResults sr2 = new SearchResults();
116 assertEquals(sr1.hashCode(), sr2.hashCode());
121 sr1.addResult(seq1, 1, 1);
122 sr2.addResult(seq1, 1, 1);
123 assertEquals(sr1.hashCode(), sr2.hashCode());
128 sr1.addResult(seq1, 3, 4);
129 sr1.addResult(seq1, 6, 8);
130 sr2.addResult(seq1, 3, 4);
131 sr2.addResult(seq1, 6, 8);
132 assertEquals(sr1.hashCode(), sr2.hashCode());