X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FFinderTest.java;h=0220c36effdc8f951b2c3f6e7d20368731cd3127;hb=404d5b51a7a7781ad6924df6a7ce63c754370f16;hp=42225e89c1dcd332867a54263a12d298361f8b17;hpb=fae891ea08e5ceb278a0ff91313a2f50cbc017f0;p=jalview.git diff --git a/test/jalview/analysis/FinderTest.java b/test/jalview/analysis/FinderTest.java index 42225e8..0220c36 100644 --- a/test/jalview/analysis/FinderTest.java +++ b/test/jalview/analysis/FinderTest.java @@ -40,7 +40,9 @@ import jalview.datamodel.HiddenColumns; import jalview.datamodel.SearchResultMatchI; import jalview.datamodel.SearchResultsI; import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceGroup; +import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; import jalview.gui.AlignViewport; import jalview.gui.JvOptionPane; @@ -81,6 +83,12 @@ public class FinderTest DataSourceType.PASTE); av = af.getViewport(); al = av.getAlignment(); + al.getSequenceAt(0).addSequenceFeature( + new SequenceFeature("BBBB", "FeatureB", 9, 11, "")); + al.getSequenceAt(3).addSequenceFeature( + new SequenceFeature("BBAB", "FeatureA", 1, 3, "")); + al.getSequenceAt(3).addSequenceFeature( + new SequenceFeature("AAAA", "FeatureA", 9, 11, "")); } @AfterMethod(alwaysRun = true) @@ -925,4 +933,60 @@ public class FinderTest assertEquals(match.getStart(), 7); // H (there is no G) assertEquals(match.getEnd(), 7); } + + @Test(groups = "Functional") + public void testFind_featuresOnly() + { + Finder f = new Finder(av); + // no match when not searching feature descriptions + f.findAll("Feature", false, false, false, true); + assertEquals(f.getSearchResults().getCount(), 0); + + // no match when case sensitive on feature descriptions + f.findAll("feature", true, false, true, true); + assertEquals(f.getSearchResults().getCount(), 0); + + // search feature descriptions - all match + f.findAll("Feature", false, false, true, true); + assertEquals(f.getSearchResults().getCount(), 3); + + List seqs = f.getSearchResults().getMatchingSubSequences(); + // assume order is preserved in results + assertEquals(al.getSequenceAt(0).getDatasetSequence(), + seqs.get(0).getDatasetSequence()); + assertEquals(seqs.get(0).getStart(), 9); + assertEquals(seqs.get(0).getEnd(), 11); + assertEquals(al.getSequenceAt(3).getDatasetSequence(), + seqs.get(1).getDatasetSequence()); + assertEquals(seqs.get(1).getStart(), 9); + assertEquals(seqs.get(1).getEnd(), 11); + assertEquals(al.getSequenceAt(3).getDatasetSequence(), + seqs.get(2).getDatasetSequence()); + assertEquals(seqs.get(2).getStart(), 1); + assertEquals(seqs.get(2).getEnd(), 3); + + SequenceI sq = null; + // search feature descriptions incrementally + // assume same order as before + f.findNext("Feature", false, false, true, true); + assertEquals(f.getSearchResults().getCount(), 1); + sq = f.getSearchResults().getMatchingSubSequences().get(0); + assertEquals(sq.getSequenceAsString(), + seqs.get(0).getSequenceAsString()); + + // .. + f.findNext("Feature", false, false, true, true); + assertEquals(f.getSearchResults().getCount(), 1); + sq = f.getSearchResults().getMatchingSubSequences().get(0); + assertEquals(sq.getSequenceAsString(), + seqs.get(1).getSequenceAsString()); + + // .. + f.findNext("Feature", false, false, true, true); + assertEquals(f.getSearchResults().getCount(), 1); + sq = f.getSearchResults().getMatchingSubSequences().get(0); + assertEquals(sq.getSequenceAsString(), + seqs.get(2).getSequenceAsString()); + + } }