X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FSeqsetUtilsTest.java;h=fbd5812b08f110fa9fc0aa04891ddab507b520d1;hb=04134a52ba4355211d96a1a883663508008a584b;hp=71e5bfdac267e0b3b02348b435d7445bce12bd99;hpb=5a48101c1958df5d0f655a7044afd506df4e040f;p=jalview.git diff --git a/test/jalview/analysis/SeqsetUtilsTest.java b/test/jalview/analysis/SeqsetUtilsTest.java index 71e5bfd..fbd5812 100644 --- a/test/jalview/analysis/SeqsetUtilsTest.java +++ b/test/jalview/analysis/SeqsetUtilsTest.java @@ -27,11 +27,16 @@ import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.gui.JvOptionPane; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; + +import java.util.BitSet; import java.util.Hashtable; import java.util.Map; import org.testng.Assert; import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** @@ -82,4 +87,29 @@ public class SeqsetUtilsTest Assert.assertSame(sqset[0].getSequenceFeatures().get(1), sqset2[0].getSequenceFeatures().get(1)); } + + @DataProvider + public Object[][] sequenceAndMask() + { + return new Object[][] { + { "AAAABBBBCCCCDDDD", 0xFFFFL, "AAAABBBBCCCCDDDD" }, + { "AAAABBBBCCCCDDDD", 0x000FL, "AAAA" }, + { "---A---B---C---D", 0x8888L, "ABCD" }, + { "---A---B---C---D", 0x9999L, "-A-B-C-D" }, + { "ABCDABCDABCDABCD", 0xC5A3L, "ABBDACCD" }, + { "", 0xFFFFL, "" }, + { "AAAABBBBCCCCDDDD", 0x0000L, "" }, + { "AAABBBCCC", 0xFFFF, "AAABBBCCC" }, + { "AAAABBBB", 0xD000L, "" }, + { "AAAABBBB", 0xAA0AL, "AA" }, + }; + } + + @Test(groups = {"Functional"}, dataProvider = "sequenceAndMask") + public void testFilterSequence(String sequence, long mask, String expected) + { + BitSet bitMask = BitSet.valueOf(new long[] {mask}); + var result = SeqsetUtils.filterSequence(sequence.toCharArray(), bitMask); + assertThat(result, equalTo(expected.toCharArray())); + } }