X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fgui%2Fstructurechooser%2FStructureChooserQuerySourceTest.java;h=0254a776a553f67ceb7b3e4bf32034b8b208129a;hb=dfa42fba9774fe4659d234661c1e0d2c17980505;hp=f492ce6611cf2377c4bedfaaba6056b994667841;hpb=2e3c61cedbe9185548ecfecad806c9e4f67f43c2;p=jalview.git diff --git a/test/jalview/gui/structurechooser/StructureChooserQuerySourceTest.java b/test/jalview/gui/structurechooser/StructureChooserQuerySourceTest.java index f492ce6..0254a77 100644 --- a/test/jalview/gui/structurechooser/StructureChooserQuerySourceTest.java +++ b/test/jalview/gui/structurechooser/StructureChooserQuerySourceTest.java @@ -24,6 +24,8 @@ package jalview.gui.structurechooser; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; +import java.util.Collection; +import java.util.List; import java.util.Vector; import org.junit.Assert; @@ -31,6 +33,7 @@ import org.testng.AssertJUnit; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; +import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import jalview.datamodel.DBRefEntry; @@ -38,11 +41,13 @@ import jalview.datamodel.DBRefSource; import jalview.datamodel.PDBEntry; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; +import jalview.fts.api.FTSData; import jalview.fts.core.FTSRestRequest; import jalview.fts.core.FTSRestResponse; import jalview.fts.service.pdb.PDBFTSRestClient; import jalview.fts.threedbeacons.TDBeaconsFTSRestClientTest; import jalview.gui.JvOptionPane; +import jalview.gui.StructureChooser; import jalview.jbgui.FilterOption; public class StructureChooserQuerySourceTest @@ -55,7 +60,7 @@ public class StructureChooserQuerySourceTest JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); } - Sequence seq,upSeq; + Sequence seq,upSeq,upSeq_insulin; // same set up as for structurechooser test @@ -113,6 +118,13 @@ public class StructureChooserQuerySourceTest upSeq.createDatasetSequence(); upSeq.setDescription("Breast cancer type 1 susceptibility protein"); upSeq.addDBRef(new DBRefEntry("UNIPROT","0","P38398",null,true)); + + upSeq_insulin=new Sequence("INS_HUMAN", + "MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGP" + + "GAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN"); + upSeq_insulin.createDatasetSequence(); + upSeq_insulin.setDescription("Insulin"); + upSeq_insulin.addDBRef(new DBRefEntry("UNIPROT","0","P01308",null,true)); } @AfterMethod(alwaysRun = true) @@ -173,7 +185,9 @@ public class StructureChooserQuerySourceTest { System.out.println("seq >>>> " + upSeq); TDBeaconsFTSRestClientTest.setMock(); + PDBFTSRestClient.setMock(); StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { upSeq}); + // gets the lightweight proxy rather than the ThreeDBStructureChooserQuerySource AssertJUnit.assertTrue(scquery instanceof ThreeDBStructureChooserQuerySource); String query = scquery.buildQuery(upSeq); AssertJUnit.assertEquals("P38398", query); @@ -245,8 +259,8 @@ public class StructureChooserQuerySourceTest // "uniprot_accession:P12345 OR uniprot_id:P12345 OR pdb_id:1xyz", // query); } - @Test(groups= {"Functional"}) - public void cascadingThreeDBandPDBQuerys() + @Test(groups= {"Functional"},dataProvider = "testUpSeqs") + public void cascadingThreeDBandPDBQuerys(SequenceI testUpSeq) { TDBeaconsFTSRestClientTest.setMock(); PDBFTSRestClient.setMock(); @@ -257,9 +271,26 @@ public class StructureChooserQuerySourceTest FTSRestResponse upResponse = null; FTSRestResponse pdbResponse = null; + // TODO test available options + // Best coverage + // Best Alphafold Model + // Best model (by confidence score) + // Will also need to develop a more sophisticated filtering system + List opts = tdbquery.getAvailableFilterOptions(StructureChooser.VIEWS_FILTER); + FilterOption opt_singlebest = opts.get(0); + FilterOption opt_manybest = opts.get(1); + assertEquals(opt_singlebest.getValue(), ThreeDBStructureChooserQuerySource.FILTER_FIRST_BEST_COVERAGE); + assertEquals(opt_manybest.getValue(), ThreeDBStructureChooserQuerySource.FILTER_TDBEACONS_COVERAGE); try { - upResponse = tdbquery.fetchStructuresMetaData(upSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(), null, false); + upResponse = tdbquery.fetchStructuresMetaData(testUpSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_singlebest, false); + tdbquery.updateAvailableFilterOptions(StructureChooser.VIEWS_FILTER,opts,upResponse.getSearchSummary()); + // test ranking without additional PDBe data + FTSRestResponse firstRanked = tdbquery.selectFirstRankedQuery(testUpSeq, upResponse.getSearchSummary(), tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_singlebest.getValue(), false); + assertEquals(firstRanked.getNumberOfItemsFound(),1); + // many best response + upResponse = tdbquery.fetchStructuresMetaData(testUpSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_manybest, false); + assertTrue(firstRanked.getSearchSummary().size()0); @@ -268,15 +299,23 @@ public class StructureChooserQuerySourceTest FTSRestResponse joinedResp = tdbquery.joinResponses(upResponse, pdbResponse); assertEquals(upResponse.getNumberOfItemsFound(),joinedResp.getNumberOfItemsFound()); + } catch (Exception x) { x.printStackTrace(); Assert.fail("Unexpected Exception"); } - StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { upSeq}); + StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { testUpSeq}); } + @DataProvider(name = "testUpSeqs") + public Object[][] testUpSeqs() throws Exception + { + setUp(); + return new Object[][] { {upSeq},{upSeq_insulin}}; + } + @Test(groups = { "Functional" }) public void sanitizeSeqNameTest() {