JAL-2829 fixes and unit tests
[jalview.git] / test / jalview / datamodel / SequenceTest.java
index f470d45..a084a8e 100644 (file)
@@ -1843,6 +1843,7 @@ public class SequenceTest
 
     /*
      * delete gaps and residues internally (new dataset sequence)
+     * first delete from gap to residue
      */
     sq = new Sequence("test/8-10", "A-B-C");
     sq.createDatasetSequence();
@@ -1850,7 +1851,34 @@ public class SequenceTest
     assertEquals("A-C", sq.getSequenceAsString());
     assertEquals(8, sq.getStart());
     assertEquals(9, sq.getEnd());
-    assertEquals("ACDEF", sq.getDatasetSequence().getSequenceAsString());
+    assertEquals("AC", sq.getDatasetSequence().getSequenceAsString());
     assertEquals(8, sq.getDatasetSequence().getStart());
+    assertEquals(9, sq.getDatasetSequence().getEnd());
+
+    /*
+     * internal delete from gap to gap
+     */
+    sq = new Sequence("test/8-10", "A-B-C");
+    sq.createDatasetSequence();
+    sq.deleteChars(1, 4); // delete -B-
+    assertEquals("AC", sq.getSequenceAsString());
+    assertEquals(8, sq.getStart());
+    assertEquals(9, sq.getEnd());
+    assertEquals("AC", sq.getDatasetSequence().getSequenceAsString());
+    assertEquals(8, sq.getDatasetSequence().getStart());
+    assertEquals(9, sq.getDatasetSequence().getEnd());
+
+    /*
+     * internal delete from residue to residue
+     */
+    sq = new Sequence("test/8-10", "A-B-C");
+    sq.createDatasetSequence();
+    sq.deleteChars(2, 3); // delete B
+    assertEquals("A--C", sq.getSequenceAsString());
+    assertEquals(8, sq.getStart());
+    assertEquals(9, sq.getEnd());
+    assertEquals("AC", sq.getDatasetSequence().getSequenceAsString());
+    assertEquals(8, sq.getDatasetSequence().getStart());
+    assertEquals(9, sq.getDatasetSequence().getEnd());
   }
 }