X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceTest.java;h=7d3fdd2a9370d268c8a927edb43bcf33243c2573;hb=4c6cd08af580ff73cfce39bec34ae4658a4b4b34;hp=4da11eb578912e4165112b016eedd9dab04c613f;hpb=173080a606f4e91665be2d9f67ed1271390a4c82;p=jalview.git diff --git a/test/jalview/datamodel/SequenceTest.java b/test/jalview/datamodel/SequenceTest.java index 4da11eb..7d3fdd2 100644 --- a/test/jalview/datamodel/SequenceTest.java +++ b/test/jalview/datamodel/SequenceTest.java @@ -1162,23 +1162,57 @@ public class SequenceTest seq.setDatasetSequence(seq2); } - @Test - public void testFindPositions() + @Test(groups = { "Functional" }) + public void testFindFeatures() { - SequenceI sq = new Sequence("Seq", "ABC--DE-F", 8, 13); - - Range range = sq.findPositions(1, 4); // BC - assertEquals(new Range(9, 10), range); - - range = sq.findPositions(2, 4); // C - assertEquals(new Range(10, 10), range); - - assertNull(sq.findPositions(3, 4)); // all gaps + SequenceI sq = new Sequence("test/8-16", "-ABC--DEF--GHI--"); + sq.createDatasetSequence(); - range = sq.findPositions(2, 6); // CDE - assertEquals(new Range(10, 12), range); + assertTrue(sq.findFeatures(1, 99).isEmpty()); - range = sq.findPositions(3, 7); // DE - assertEquals(new Range(11, 12), range); + // add non-positional feature + SequenceFeature sf0 = new SequenceFeature("Cath", "desc", 0, 0, 2f, + null); + sq.addSequenceFeature(sf0); + // add feature on BCD + SequenceFeature sf1 = new SequenceFeature("Cath", "desc", 9, 11, 2f, + null); + sq.addSequenceFeature(sf1); + // add feature on DE + SequenceFeature sf2 = new SequenceFeature("Cath", "desc", 11, 12, 2f, + null); + sq.addSequenceFeature(sf2); + // add contact feature at [B, H] + SequenceFeature sf3 = new SequenceFeature("Disulphide bond", "desc", 9, + 15, 2f, + null); + sq.addSequenceFeature(sf3); + // add contact feature at [F, G] + SequenceFeature sf4 = new SequenceFeature("Disulfide Bond", "desc", 13, + 14, 2f, + null); + sq.addSequenceFeature(sf4); + + // no features in columns 1-2 (-A) + List found = sq.findFeatures(1, 2); + assertTrue(found.isEmpty()); + + // columns 1-6 (-ABC--) includes BCD and B/H feature but not DE + found = sq.findFeatures(1, 6); + assertEquals(2, found.size()); + assertTrue(found.contains(sf1)); + assertTrue(found.contains(sf3)); + + // columns 5-6 (--) includes (enclosing) BCD but not (contact) B/H feature + found = sq.findFeatures(5, 6); + assertEquals(1, found.size()); + assertTrue(found.contains(sf1)); + + // columns 7-10 (DEF-) includes BCD, DE, F/G but not B/H feature + found = sq.findFeatures(7, 10); + assertEquals(3, found.size()); + assertTrue(found.contains(sf1)); + assertTrue(found.contains(sf2)); + assertTrue(found.contains(sf4)); } }