merge from develop
[jalview.git] / test / jalview / datamodel / MatchTest.java
diff --git a/test/jalview/datamodel/MatchTest.java b/test/jalview/datamodel/MatchTest.java
new file mode 100644 (file)
index 0000000..f711a14
--- /dev/null
@@ -0,0 +1,75 @@
+package jalview.datamodel;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
+
+import jalview.datamodel.SearchResults.Match;
+
+import org.testng.annotations.Test;
+
+public class MatchTest
+{
+
+  @Test(groups = { "Functional" })
+  public void testToString()
+  {
+    SequenceI seq = new Sequence("", "abcdefghijklm");
+    Match m = new SearchResults().new Match(seq, 3, 5);
+    assertEquals("2cde", m.toString());
+  }
+
+  @Test(groups = { "Functional" })
+  public void testGetCharacters()
+  {
+    SequenceI seq = new Sequence("", "abcdefghijklm");
+    Match m = new SearchResults().new Match(seq, 3, 5);
+    assertEquals("cde", m.getCharacters());
+  }
+
+  @Test(groups = { "Functional" })
+  public void testEquals()
+  {
+    SequenceI seq1 = new Sequence("", "abcdefghijklm");
+    SequenceI seq2 = new Sequence("", "abcdefghijklm");
+    SearchResults sr1 = new SearchResults();
+    SearchResults sr2 = new SearchResults();
+
+    assertFalse(sr1.equals(null));
+    assertFalse(sr1.equals(seq1));
+    assertTrue(sr1.equals(sr1));
+    assertTrue(sr1.equals(sr2));
+    assertTrue(sr2.equals(sr1));
+
+    sr1.addResult(seq1, 1, 1);
+    assertFalse(sr1.equals(sr2));
+    assertFalse(sr2.equals(sr1));
+
+    sr2.addResult(seq1, 1, 1);
+    assertTrue(sr1.equals(sr2));
+    assertTrue(sr2.equals(sr1));
+
+    /*
+     * same match but on different sequences - not equal
+     */
+    SearchResults sr3 = new SearchResults();
+    sr3.addResult(seq2, 1, 1);
+    assertFalse(sr1.equals(sr3));
+    assertFalse(sr3.equals(sr1));
+
+    /*
+     * same sequence but different end position - not equal
+     */
+    sr1.addResult(seq1, 3, 4);
+    sr2.addResult(seq1, 3, 5);
+    assertFalse(sr1.equals(sr2));
+
+    /*
+     * same sequence but different start position - not equal
+     */
+    sr1 = new SearchResults();
+    sr2 = new SearchResults();
+    sr1.addResult(seq1, 3, 4);
+    sr2.addResult(seq1, 2, 4);
+    assertFalse(sr1.equals(sr2));
+  }
+}