From dbf82445cab4c7459debd30a94bc3edf6d411cb9 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Mon, 13 May 2024 16:01:36 +0100 Subject: [PATCH] JAL-518 failing test for case preservation on justify --- test/jalview/commands/EditCommandTest.java | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/test/jalview/commands/EditCommandTest.java b/test/jalview/commands/EditCommandTest.java index 8e04cdd..fa52c79 100644 --- a/test/jalview/commands/EditCommandTest.java +++ b/test/jalview/commands/EditCommandTest.java @@ -36,10 +36,13 @@ import jalview.datamodel.SequenceI; import jalview.datamodel.features.SequenceFeatures; import jalview.gui.JvOptionPane; +import java.nio.charset.Charset; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.spi.LocaleServiceProvider; import org.testng.Assert; import org.testng.annotations.BeforeClass; @@ -1179,4 +1182,45 @@ public class EditCommandTest assertEquals(10, sf.getBegin()); assertEquals(11, sf.getEnd()); } + private SequenceI mkDs(SequenceI as) + { + SequenceI ds = as.createDatasetSequence(); + ds.setSequence(ds.getSequenceAsString().toUpperCase(Locale.ROOT)); + return ds; + } + /** + * Test that mimics 'remove all gapped columns' action. This generates a + * series Delete Gap edits that each act on all sequences that share a gapped + * column region. + */ + @Test(groups = { "Functional" }) + public void testLeftRight_Justify_and_preserves_gaps() + { + EditCommand command = new EditCommand(); + String original1 = "--ABc--DEF"; + String original2 = "-G-Hi--J"; + String original3 = "-M-No--PQ"; + + /* + * Set up the sequence array for operations + */ + SequenceI seq1 = new Sequence("sq1", original1); + SequenceI ds1 = mkDs(seq1); + /* + * and check we are preserving data - if the calls below fail, something has broken the Jalview dataset derivation process + */ + assertEquals("ABCDEF", seq1.getDatasetSequence().getSequenceAsString()); + assertEquals(original1,seq1.getSequenceAsString()); + SequenceI seq2 = new Sequence("sq2",original2); + SequenceI ds2 = mkDs(seq2); + SequenceI seq3 = new Sequence("sq3", original3); + SequenceI ds3 = mkDs(seq3); + List sqs = Arrays.asList( seq1, seq2, seq3 ); + Alignment al = new Alignment(sqs.toArray(new SequenceI[0])); + EditCommand lefj = new JustifyLeftOrRightCommand("Left J", true, sqs, 1, 7, al); + String exp = "-ABcD---EF"; + assertEquals(exp.toUpperCase(Locale.ROOT),seq1.getSequenceAsString()); + // check case + assertEquals(exp,seq1.getSequenceAsString()); + } } -- 1.7.10.2