X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceGroupTest.java;fp=test%2Fjalview%2Fdatamodel%2FSequenceGroupTest.java;h=65549f2156546bbfc4772c34367447222e4950f3;hb=d5bcc3830eab04e6db816e1c2ad8fce1dc189612;hp=243bd53cc51a11489f3e79463955a805975484a2;hpb=3ebdd4e28382e38a181aae1eed71549f603f9025;p=jalview.git diff --git a/test/jalview/datamodel/SequenceGroupTest.java b/test/jalview/datamodel/SequenceGroupTest.java index 243bd53..65549f2 100644 --- a/test/jalview/datamodel/SequenceGroupTest.java +++ b/test/jalview/datamodel/SequenceGroupTest.java @@ -14,7 +14,7 @@ import org.testng.annotations.Test; public class SequenceGroupTest { - @Test + @Test(groups={"Functional"}) public void testAddSequence() { SequenceGroup sg = new SequenceGroup(); @@ -42,7 +42,7 @@ public class SequenceGroupTest assertTrue(sg.getSequences().contains(seq3)); } - @Test + @Test(groups={"Functional"}) public void testAddOrRemove() { SequenceGroup sg = new SequenceGroup(); @@ -66,7 +66,7 @@ public class SequenceGroupTest assertFalse(sg.getSequences().contains(seq1)); } - @Test + @Test(groups={"Functional"}) public void testGetColourScheme() { SequenceGroup sg = new SequenceGroup(); @@ -81,7 +81,7 @@ public class SequenceGroupTest assertSame(scheme, sg.getColourScheme()); } - @Test + @Test(groups={"Functional"}) public void testSetContext() { SequenceGroup sg1 = new SequenceGroup(); @@ -112,4 +112,75 @@ public class SequenceGroupTest assertNull(sg3.getContext()); } } + + @Test(groups = { "Functional" }) + public void testContains() + { + /* + * essentially the same tests as AlignmentI.findGroup + * but from a particular group's perspective + */ + + SequenceI seq1 = new Sequence("seq1", "ABCDEF---GHI"); + SequenceI seq2 = new Sequence("seq2", "---JKLMNO---"); + AlignmentI a = new Alignment(new SequenceI[] { seq1, seq2 }); + /* + * add a group consisting of just "DEF" + */ + SequenceGroup sg1 = new SequenceGroup(); + sg1.addSequence(seq1, false); + sg1.setStartRes(3); + sg1.setEndRes(5); + + /* + * test sequence membership + */ + assertTrue(sg1.contains(seq1)); + assertFalse(sg1.contains(seq2)); + + /* + * test sequence+position + */ + + assertFalse(sg1.contains(seq1, 2)); // position not in group + assertFalse(sg1.contains(seq1, 6)); // position not in group + assertFalse(sg1.contains(seq2, 5)); // sequence not in group + assertTrue(sg1.contains(seq1, 3)); // yes + assertTrue(sg1.contains(seq1, 4)); + assertTrue(sg1.contains(seq1, 5)); + + /* + * add a group consisting of + * EF-- + * KLMN + */ + SequenceGroup sg2 = new SequenceGroup(); + sg2.addSequence(seq1, false); + sg2.addSequence(seq2, false); + sg2.setStartRes(4); + sg2.setEndRes(7); + a.addGroup(sg2); + + /* + * if a residue is in more than one group, method returns + * the first found (in order groups were added) + */ + assertTrue(sg2.contains(seq1, 4)); + assertTrue(sg2.contains(seq1, 5)); + + /* + * seq2 only belongs to the second group + */ + assertTrue(sg2.contains(seq2, 4)); + assertTrue(sg2.contains(seq2, 5)); + assertTrue(sg2.contains(seq2, 6)); + assertTrue(sg2.contains(seq2, 7)); + assertFalse(sg2.contains(seq2, 3)); + assertFalse(sg2.contains(seq2, 8)); + sg2.setEndRes(8); + assertTrue(sg2.contains(seq2, 8)); + sg2.deleteSequence(seq2, false); + assertFalse(sg2.contains(seq2)); + + } }