From 3182da081aceb36cd59dff322fd90ae481e654f6 Mon Sep 17 00:00:00 2001 From: cjfields Date: Fri, 12 Dec 2008 21:33:52 +0000 Subject: [PATCH] some EUtilities tests (parsing from files) svn path=/bioperl-live/trunk/; revision=15154 --- t/Tools/EUtilities/egquery.t | 44 ++++++++++++++++++++ t/Tools/EUtilities/epost.t | 55 +++++++++++++++++++++++++ t/Tools/EUtilities/esearch.t | 96 ++++++++++++++++++++++++++++++++++++++++++++ t/Tools/EUtilities/espell.t | 53 ++++++++++++++++++++++++ 4 files changed, 248 insertions(+) create mode 100644 t/Tools/EUtilities/egquery.t create mode 100644 t/Tools/EUtilities/epost.t create mode 100644 t/Tools/EUtilities/esearch.t create mode 100644 t/Tools/EUtilities/espell.t diff --git a/t/Tools/EUtilities/egquery.t b/t/Tools/EUtilities/egquery.t new file mode 100644 index 000000000..04f32adb0 --- /dev/null +++ b/t/Tools/EUtilities/egquery.t @@ -0,0 +1,44 @@ +# -*-Perl-*- Test Harness script for Bioperl +# $Id: egquery.t 15112 2008-12-08 18:12:38Z sendu $ +# + +use strict; +use warnings; + +BEGIN { + use lib '.'; + use Bio::Root::Test; + + test_begin(-tests => 19); + + use_ok('Bio::Tools::EUtilities'); +} + +# Normal esearch +my $eutil = Bio::Tools::EUtilities->new( + -eutil => 'egquery', + -file => test_input_file('eutils','egquery.xml')); + +is($eutil->get_db, 'pubmed', 'get_db'); +is($eutil->get_database, 'pubmed', 'get_database'); +is(scalar($eutil->get_databases), 35, 'get_databases'); +is($eutil->get_term, 'Notch AND Mus musculus','get_term'); + +## eveything else undef or 0 +is ($eutil->get_count('pubmed'), 1803, 'get_count'); +is ($eutil->get_count('protein'), 534, 'get_count'); +is ($eutil->get_count('cdd'), 0, 'get_count'); + +my @qs = $eutil->get_GlobalQueries; +is(scalar(@qs), 35, 'get_GlobalQueries'); +is($qs[2]->get_term, 'Notch AND Mus musculus', 'get_term'); +is($qs[2]->get_database, 'journals', 'get_term'); +is($qs[2]->get_count, 0, 'get_term'); +is($qs[2]->get_status, 'Term or Database is not found', 'get_term'); +is($qs[2]->get_menu_name, 'Journals', 'get_term'); + +is($qs[20]->get_term, 'Notch AND Mus musculus', 'get_term'); +is($qs[20]->get_database, 'unists', 'get_term'); +is($qs[20]->get_count, 61, 'get_term'); +is($qs[20]->get_status, 'Ok', 'get_term'); +is($qs[20]->get_menu_name, 'UniSTS', 'get_term'); diff --git a/t/Tools/EUtilities/epost.t b/t/Tools/EUtilities/epost.t new file mode 100644 index 000000000..61749b04a --- /dev/null +++ b/t/Tools/EUtilities/epost.t @@ -0,0 +1,55 @@ +# -*-Perl-*- Test Harness script for Bioperl +# $Id: epost.t 15112 2008-12-08 18:12:38Z sendu $ + +use strict; +use warnings; + +BEGIN { + use lib '.'; + use Bio::Root::Test; + + test_begin(-tests => 17, + -requires_module => 'XML::Simple'); + + use_ok('Bio::Tools::EUtilities'); + use_ok('Bio::Tools::EUtilities::EUtilParameters'); +} + +my $eutil = Bio::Tools::EUtilities->new( + -eutil => 'epost', + -file => test_input_file('eutils','epost.xml')); + +# all parsers and data objects implement eutil() and datatype() (generally for +# debuggin purposes, but others may find them useful) +isa_ok($eutil, 'Bio::Tools::EUtilities::EUtilDataI'); +isa_ok($eutil, 'Bio::Tools::EUtilities::Query'); +is($eutil->eutil, 'epost', 'eutil'); +is($eutil->datatype, 'query', 'datatype'); +my $history = $eutil->next_History; +isa_ok($history, 'Bio::Tools::EUtilities::HistoryI'); +isa_ok($history, 'Bio::Tools::EUtilities::EUtilDataI'); +is($history->eutil, 'epost', 'eutil'); +is($history->datatype, 'history', 'eutil'); + +# simple epost does not have anything other than the webenv/query_key +is($history->get_webenv, + '0rACq8_iP87yHkqqm0SBaU38LzWLHIUd-J4QozMr31bh_XO5KAxLr5Q0o2e@03ED1E11941B69F1_0100SID', + 'get_webenv'); +is($history->get_query_key, 1, 'get_query_key'); +is(join(',',$history->history), + '0rACq8_iP87yHkqqm0SBaU38LzWLHIUd-J4QozMr31bh_XO5KAxLr5Q0o2e@03ED1E11941B69F1_0100SID,1', 'history'); +is($eutil->get_database, undef, 'get_database'); +is($eutil->get_ids, undef, 'get_ids'); + +my @ids = qw(1621261 89318838 68536103 20807972 730439); + +# add Parameters +my $pb = Bio::Tools::EUtilities::EUtilParameters->new(-eutil => 'epost', + -db => 'protein', + -id => \@ids); + +$eutil->parameter_base($pb); + +is($eutil->get_database, 'protein', 'get_database'); +my @ids2 = $eutil->get_ids; +is_deeply(\@ids2, \@ids, 'get_ids'); diff --git a/t/Tools/EUtilities/esearch.t b/t/Tools/EUtilities/esearch.t new file mode 100644 index 000000000..247e042f8 --- /dev/null +++ b/t/Tools/EUtilities/esearch.t @@ -0,0 +1,96 @@ +# -*-Perl-*- Test Harness script for Bioperl +# $Id: esearch.t 15112 2008-12-08 18:12:38Z sendu $ +# + +use strict; +use warnings; + +BEGIN { + use lib '.'; + use Bio::Root::Test; + + test_begin(-tests => 33, + -requires_module => 'XML::Simple'); + + use_ok('Bio::Tools::EUtilities'); + use_ok('Bio::Tools::EUtilities::EUtilParameters'); +} + +my @ids = qw(6679096 31543332 134288853 483581 20805941 187951953 169158074 +123228044 148676374 114326469 148707003 187952787 123233807 148694865 148694864 +148694863 148694861 148694862 8705244 8568086); + +# test any Query-related methods (term related) + +# Normal esearch +my $eutil = Bio::Tools::EUtilities->new( + -eutil => 'esearch', + -file => test_input_file('eutils','esearch1.xml')); + +# w/o a ParameterBase, only IDs, count, retstart/retmax, optionally History +is ($eutil->get_count, 534, 'get_count'); +my $history = $eutil->next_History; +is($history, undef); +my @ids2 = $eutil->get_ids; +is_deeply(\@ids2, \@ids, 'get_ids'); +is($eutil->get_retstart, 0,'get_retstart'); +is($eutil->get_retmax, 20,'get_retmax'); +is($eutil->get_translation_from, 'Mus musculus','get_translation_from'); +is($eutil->get_translation_to, '("Mus musculus"[Organism:__txid10090] OR Mus musculus)','get_translation_to'); + +# the database isn't carried into the parsers unless a EUtilParameters is present +is($eutil->get_db, undef, 'get_db'); +is($eutil->get_database, undef, 'get_database'); +is($eutil->get_term, undef,'get_term'); + +# add Parameters +my $pb = Bio::Tools::EUtilities::EUtilParameters->new(-eutil => 'esearch', + -db => 'protein', + -term => 'Notch AND Mus musculus'); + +$eutil->parameter_base($pb); + +# now will work... +is($eutil->get_db, 'protein', 'get_db'); +is($eutil->get_database, 'protein', 'get_database'); +is($eutil->get_term, 'Notch AND Mus musculus','get_term'); + +# espell only (should be undef) +is($eutil->get_corrected_query, undef ,'get_corrected_query'); +is($eutil->get_replaced_terms, undef ,'get_replaced_terms'); + +# test esearch data with History +$eutil = Bio::Tools::EUtilities->new( + -eutil => 'esearch', + -file => test_input_file('eutils','esearch2.xml')); + +is ($eutil->get_count, 534, 'get_count'); +$history = $eutil->next_History; +isa_ok($history, 'Bio::Tools::EUtilities::HistoryI'); +is($history->get_webenv, + '00m7eJh8lyG3wiC2SE2hd7Im_w5o3z3q4_JK9-Rn266ix_eRXkjNOYQxHp@03F17619941CFD71_0005SID', + 'get_webenv'); +is($history->get_query_key, 1, 'get_query_key'); +is(join(',',$history->history), + '00m7eJh8lyG3wiC2SE2hd7Im_w5o3z3q4_JK9-Rn266ix_eRXkjNOYQxHp@03F17619941CFD71_0005SID,1', 'history'); + +@ids2 = $eutil->get_ids; +is_deeply(\@ids2, \@ids, 'get_ids'); +is($eutil->get_retstart, 0,'get_retstart'); +is($eutil->get_retmax, 20,'get_retmax'); +is($eutil->get_translation_from, 'Mus musculus','get_translation_from'); +is($eutil->get_translation_to, '("Mus musculus"[Organism:__txid10090] OR Mus musculus)','get_translation_to'); + +# the database isn't carried into the parsers +is($eutil->get_db, undef, 'get_db'); +is($eutil->get_database, undef, 'get_database'); + +# the term isn't carried into the parsers +is($eutil->get_term, undef,'get_term'); + +# espell only (should be undef) +is($eutil->get_corrected_query, undef ,'get_corrected_query'); +is($eutil->get_replaced_terms, undef ,'get_replaced_terms'); + +my @qs = $eutil->get_GlobalQueries; +is(scalar(@qs), 0, 'get_GlobalQueries') diff --git a/t/Tools/EUtilities/espell.t b/t/Tools/EUtilities/espell.t new file mode 100644 index 000000000..9a2fc377a --- /dev/null +++ b/t/Tools/EUtilities/espell.t @@ -0,0 +1,53 @@ +# -*-Perl-*- Test Harness script for Bioperl +# $Id: espell.t 15112 2008-12-08 18:12:38Z sendu $ +# + +use strict; +use warnings; + +BEGIN { + use lib '.'; + use Bio::Root::Test; + + test_begin(-tests => 22, + -requires_module => 'XML::Simple'); + + use_ok('Bio::Tools::EUtilities'); + use_ok('Bio::Tools::EUtilities::EUtilParameters'); +} + +# Normal esearch +my $eutil = Bio::Tools::EUtilities->new( + -eutil => 'espell', + -file => test_input_file('eutils','espell.xml')); + +is($eutil->get_db, 'pubmed', 'get_db'); +is(($eutil->get_dbs)[0], 'pubmed', 'get_dbs'); +is($eutil->get_database, 'pubmed', 'get_database'); +is(($eutil->get_databases)[0], 'pubmed', 'get_databases'); +is($eutil->get_term, 'Netch AND Mus musclus','get_term'); +is($eutil->get_corrected_query, 'notch AND mus musculus' ,'get_corrected_query'); +is(scalar($eutil->get_replaced_terms), 2,'get_replaced_terms'); +is(join(',',$eutil->get_replaced_terms), 'notch,musculus','get_replaced_terms'); + +# eveything else undef or 0 +is ($eutil->get_count, undef, 'get_count'); +my $history = $eutil->next_History; +is($history, undef); +my @ids2 = $eutil->get_ids; +is(scalar(@ids2), 0, 'get_ids'); +is($eutil->get_retstart, undef,'get_retstart'); +is($eutil->get_retmax, undef,'get_retmax'); +is($eutil->get_translation_from, undef,'get_translation_from'); +is($eutil->get_translation_to, undef,'get_translation_to'); + +# add Parameters +my $pb = Bio::Tools::EUtilities::EUtilParameters->new(-eutil => 'espell', + -db => 'protein', + -term => 'Notch AND Mus musculus'); + +is($eutil->get_db, 'pubmed', 'get_db'); +is(($eutil->get_dbs)[0], 'pubmed', 'get_dbs'); +is($eutil->get_database, 'pubmed', 'get_database'); +is(($eutil->get_databases)[0], 'pubmed', 'get_databases'); +is($eutil->get_term, 'Netch AND Mus musclus','get_term'); \ No newline at end of file -- 2.11.4.GIT