X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fcommands%2FEditCommandTest.java;h=7fb80fbfabfebc1235170d5d1b1a8dcaf89c8fef;hb=ea3d24d953af89ca95d4480371149b70abbfcc67;hp=69379d0f845615dda44c7ae7a5a3f444c518ecf6;hpb=8f118c154e74caaef6bec19acd0466904ac424d4;p=jalview.git diff --git a/test/jalview/commands/EditCommandTest.java b/test/jalview/commands/EditCommandTest.java index 69379d0..7fb80fb 100644 --- a/test/jalview/commands/EditCommandTest.java +++ b/test/jalview/commands/EditCommandTest.java @@ -105,7 +105,7 @@ public class EditCommandTest public void testCut() { Edit ec = testee.new Edit(Action.CUT, seqs, 4, 3, al); - testee.cut(ec, new AlignmentI[] { al }); + EditCommand.cut(ec, new AlignmentI[] { al }); assertEquals("abcdhjk", seqs[0].getSequenceAsString()); assertEquals("fghjnopq", seqs[1].getSequenceAsString()); assertEquals("qrstxyz", seqs[2].getSequenceAsString()); @@ -130,7 +130,7 @@ public class EditCommandTest newSeqs[1] = new Sequence("newseq1", "JWMPDH"); Edit ec = testee.new Edit(Action.PASTE, newSeqs, 0, al.getWidth(), al); - testee.paste(ec, new AlignmentI[] { al }); + EditCommand.paste(ec, new AlignmentI[] { al }); assertEquals(6, al.getSequences().size()); assertEquals("1234567890", seqs[3].getSequenceAsString()); assertEquals("ACEFKL", seqs[4].getSequenceAsString()); @@ -239,7 +239,7 @@ public class EditCommandTest public void testReplace() { // seem to need a dataset sequence on the edited sequence here - seqs[1].setDatasetSequence(seqs[1]); + seqs[1].createDatasetSequence(); new EditCommand("", Action.REPLACE, "ZXY", new SequenceI[] { seqs[1] }, 4, 8, al); assertEquals("abcdefghjk", seqs[0].getSequenceAsString()); @@ -423,12 +423,12 @@ public class EditCommandTest SequenceI seq = new Sequence("", "--A--B-CDEF"); SequenceI ds = new Sequence("", "ABCDEF"); seq.setDatasetSequence(ds); - SequenceI[] seqs = new SequenceI[] { seq }; - Edit e = command.new Edit(Action.INSERT_GAP, seqs, 1, 2, '-'); + SequenceI[] sqs = new SequenceI[] { seq }; + Edit e = command.new Edit(Action.INSERT_GAP, sqs, 1, 2, '-'); command.addEdit(e); - e = command.new Edit(Action.INSERT_GAP, seqs, 4, 1, '-'); + e = command.new Edit(Action.INSERT_GAP, sqs, 4, 1, '-'); command.addEdit(e); - e = command.new Edit(Action.INSERT_GAP, seqs, 0, 2, '-'); + e = command.new Edit(Action.INSERT_GAP, sqs, 0, 2, '-'); command.addEdit(e); Map unwound = command.priorState(false); @@ -450,10 +450,10 @@ public class EditCommandTest SequenceI seq = new Sequence("", "ABC"); SequenceI ds = new Sequence("", "ABC"); seq.setDatasetSequence(ds); - SequenceI[] seqs = new SequenceI[] { seq }; - Edit e = command.new Edit(Action.DELETE_GAP, seqs, 1, 1, '-'); + SequenceI[] sqs = new SequenceI[] { seq }; + Edit e = command.new Edit(Action.DELETE_GAP, sqs, 1, 1, '-'); command.addEdit(e); - e = command.new Edit(Action.DELETE_GAP, seqs, 2, 1, '-'); + e = command.new Edit(Action.DELETE_GAP, sqs, 2, 1, '-'); command.addEdit(e); Map unwound = command.priorState(false); @@ -470,8 +470,8 @@ public class EditCommandTest SequenceI seq = new Sequence("", "ABCDEF"); SequenceI ds = new Sequence("", "ABCDEF"); seq.setDatasetSequence(ds); - SequenceI[] seqs = new SequenceI[] { seq }; - Edit e = command.new Edit(Action.DELETE_GAP, seqs, 2, 2, '-'); + SequenceI[] sqs = new SequenceI[] { seq }; + Edit e = command.new Edit(Action.DELETE_GAP, sqs, 2, 2, '-'); command.addEdit(e); Map unwound = command.priorState(false); @@ -488,12 +488,38 @@ public class EditCommandTest SequenceI seq = new Sequence("", "AB---CDEF"); SequenceI ds = new Sequence("", "ABCDEF"); seq.setDatasetSequence(ds); - SequenceI[] seqs = new SequenceI[] { seq }; - Edit e = command.new Edit(Action.INSERT_GAP, seqs, 2, 3, '-'); + SequenceI[] sqs = new SequenceI[] { seq }; + Edit e = command.new Edit(Action.INSERT_GAP, sqs, 2, 3, '-'); command.addEdit(e); Map unwound = command.priorState(false); - assertEquals("ABCDEF", unwound.get(ds).getSequenceAsString()); + SequenceI prior = unwound.get(ds); + assertEquals("ABCDEF", prior.getSequenceAsString()); + assertEquals(1, prior.getStart()); + assertEquals(6, prior.getEnd()); + } + + /** + * Test 'undoing' a single gap insertion edit command, on a sequence whose + * start residue is other than 1 + */ + @Test(groups = { "Functional" }) + public void testPriorState_singleInsertWithOffset() + { + EditCommand command = new EditCommand(); + SequenceI seq = new Sequence("", "AB---CDEF", 8, 13); + // SequenceI ds = new Sequence("", "ABCDEF", 8, 13); + // seq.setDatasetSequence(ds); + seq.createDatasetSequence(); + SequenceI[] sqs = new SequenceI[] { seq }; + Edit e = command.new Edit(Action.INSERT_GAP, sqs, 2, 3, '-'); + command.addEdit(e); + + Map unwound = command.priorState(false); + SequenceI prior = unwound.get(seq.getDatasetSequence()); + assertEquals("ABCDEF", prior.getSequenceAsString()); + assertEquals(8, prior.getStart()); + assertEquals(13, prior.getEnd()); } /** @@ -514,13 +540,13 @@ public class EditCommandTest SequenceI seq = new Sequence("", "ABC-DEF"); SequenceI ds1 = new Sequence("", "ABCDEF"); seq.setDatasetSequence(ds1); - SequenceI[] seqs = new SequenceI[] { seq }; - Edit e = command.new Edit(Action.DELETE_GAP, seqs, 0, 2, '-'); + SequenceI[] sqs = new SequenceI[] { seq }; + Edit e = command.new Edit(Action.DELETE_GAP, sqs, 0, 2, '-'); command.addEdit(e); seq = new Sequence("", "ABCDEF"); seq.setDatasetSequence(ds1); - seqs = new SequenceI[] { seq }; - e = command.new Edit(Action.DELETE_GAP, seqs, 3, 1, '-'); + sqs = new SequenceI[] { seq }; + e = command.new Edit(Action.DELETE_GAP, sqs, 3, 1, '-'); command.addEdit(e); /* @@ -529,13 +555,13 @@ public class EditCommandTest seq = new Sequence("", "FGHI--J"); SequenceI ds2 = new Sequence("", "FGHIJ"); seq.setDatasetSequence(ds2); - seqs = new SequenceI[] { seq }; - e = command.new Edit(Action.DELETE_GAP, seqs, 2, 1, '-'); + sqs = new SequenceI[] { seq }; + e = command.new Edit(Action.DELETE_GAP, sqs, 2, 1, '-'); command.addEdit(e); seq = new Sequence("", "FGHIJ"); seq.setDatasetSequence(ds2); - seqs = new SequenceI[] { seq }; - e = command.new Edit(Action.DELETE_GAP, seqs, 4, 2, '-'); + sqs = new SequenceI[] { seq }; + e = command.new Edit(Action.DELETE_GAP, sqs, 4, 2, '-'); command.addEdit(e); /* @@ -544,8 +570,8 @@ public class EditCommandTest seq = new Sequence("", "MNOPQ"); SequenceI ds3 = new Sequence("", "MNOPQ"); seq.setDatasetSequence(ds3); - seqs = new SequenceI[] { seq }; - e = command.new Edit(Action.DELETE_GAP, seqs, 1, 1, '-'); + sqs = new SequenceI[] { seq }; + e = command.new Edit(Action.DELETE_GAP, sqs, 1, 1, '-'); command.addEdit(e); Map unwound = command.priorState(false); @@ -579,8 +605,8 @@ public class EditCommandTest SequenceI seq3 = new Sequence("", "M-NO--PQ"); SequenceI ds3 = new Sequence("", "MNOPQ"); seq3.setDatasetSequence(ds3); - SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3 }; - Edit e = command.new Edit(Action.DELETE_GAP, seqs, 0, 1, '-'); + SequenceI[] sqs = new SequenceI[] { seq1, seq2, seq3 }; + Edit e = command.new Edit(Action.DELETE_GAP, sqs, 0, 1, '-'); command.addEdit(e); /* @@ -592,8 +618,8 @@ public class EditCommandTest seq2.setDatasetSequence(ds2); seq3 = new Sequence("", "M-NOPQ"); seq3.setDatasetSequence(ds3); - seqs = new SequenceI[] { seq1, seq2, seq3 }; - e = command.new Edit(Action.DELETE_GAP, seqs, 4, 2, '-'); + sqs = new SequenceI[] { seq1, seq2, seq3 }; + e = command.new Edit(Action.DELETE_GAP, sqs, 4, 2, '-'); command.addEdit(e); Map unwound = command.priorState(false);