[Bioperl-l] Re: Test writing

Jason Stajich jason.stajich at duke.edu
Tue Jan 3 22:48:46 EST 2006


On Dec 28, 2005, at 7:27 AM, Gabriel Valiente wrote:

> Sorry about the delay, I've promised to write test files for  
> Bio::Tree::Draw::Cladogram and Bio::Tree::Compatible much earlier.
>
> I've just submitted t/Compatible.t, a test file for  
> Bio::Tree::Compatible. There are five simple tests, two of which  
> are commented out because they need an equality test for  
> Bio::Tree::Tree objects, which is missing. Any volunteer for  
> writing a tree equality test? Jason?
>
As soon as proper equality function is in the toolkit I can fix the  
bootstrap computing code in Bio::Tree::Statistics too.  Not sure when  
I'll have time and have to find a description of a good algorithm for  
doing it.

> Regarding the test file for Bio::Tree::Draw::Cladogram, I just  
> don't know what to include in the test. The only thing this module  
> does is to produce a EPS file, and the only thing that comes to my  
> mind is to test equality of a precomputed EPS file and one produced  
> on the fly for the same input tree. Any suggestions are welcome.
>
> By the way, can anybody briefly explain why is it necessary to  
> include prefixes like
>
> my $common = $t1->Bio::Tree::Compatible::common_labels($t2);
>
> in t/Compatible.t, which already uses Bio::Tree::Compatible,  
> instead of just
>
> my $common = $t1->common_labels($t2);
>
> ???
>
> Thanks,
>
> Gabriel Valiente
>
>> This message is for module authors and for anyone looking for  
>> something to do for BioPerl.
>>
>> I've modified the 'maintenance/modules.pl --untested' code so that  
>> it reads in all test files, extracts 'use'd or 'required' Bio  
>> classes, now *recursively* marks all super classes and 'use'd  
>> classes as tested. In addition, I manually ignore all Bio::Search  
>> and Bio::SearchIO classes. That is because although there are  
>> extensive tests for modules in these name spaces, new classes are  
>> instantiated based on attributes to the constructor. This might be  
>> true to other classes, too. If this is the case, I can see two  
>> possible actions:
>>
>> 1. Add them to the list of ignored class names at the end of  
>> function 'untested' in the script.
>>
>> 2. If the classes are never called directly, rename them to start  
>> with lower case letter which by convention means that they are  
>> "component classes" like Bio::SeqIO::genbank.
>>
>>
>> All other classes should have tests written for them or -  
>> ultimately - removed from the repository.
>>
>> The aim of this exercise is to come up with a first pass list of  
>> BioPerl classes that do not have any tests written for them and  
>> get them written. The next pass will be to find untested methods  
>> within classes.
>>
>>
>> When writing tests, please follow conventions in existing files  
>> and remember to test all public methods. If you do not have a cvs  
>> login, post the new tests to bugzilla.bioperl.org, not to the  
>> list. We are more than happy to give cvs access to anyone  
>> committing more than a couple new tests.
>>
>>       -Heikki
>>
>>
>> List of BioPerl classes needing tests:
>>
>> Bio::Align::Utilities
>> Bio::Annotation::AnnotationFactory
>> Bio::Annotation::Target
>> Bio::DB::Ace
>> Bio::DB::Expression
>> Bio::DB::Fasta::Stream
>> Bio::DB::Flat::BDB
>> Bio::DB::Flat::BinarySearch
>> Bio::DB::GFF::ID_Iterator
>> Bio::DB::Universal
>> Bio::DB::XEMBLService
>> Bio::Expression::Contact
>> Bio::Expression::DataSet
>> Bio::Expression::FeatureGroup
>> Bio::Expression::FeatureGroup::FeatureGroupMas50
>> Bio::Expression::FeatureSet::FeatureSetMas50
>> Bio::Expression::Platform
>> Bio::Expression::Sample
>> Bio::FeatureIO
>> Bio::Graphics::FeatureFile::Iterator
>> Bio::Graphics::Glyph
>> Bio::Graphics::Util
>> Bio::Index::Fastq
>> Bio::Index::Hmmer
>> Bio::LiveSeq::IO::SRS
>> Bio::Location::AvWithinCoordPolicy
>> Bio::Location::NarrowestCoordPolicy
>> Bio::Map::Clone
>> Bio::Map::Contig
>> Bio::Map::FPCMarker
>> Bio::Map::OrderedPositionWithDistance
>> Bio::Map::Physical
>> Bio::Matrix::PSM::Psm
>> Bio::Matrix::PSM::PsmHeader
>> Bio::Matrix::Scoring
>> Bio::Ontology::InterProTerm
>> Bio::Ontology::Path
>> Bio::Ontology::SimpleGOEngine
>> Bio::OntologyIO::Handlers::InterProHandler
>> Bio::OntologyIO::Handlers::InterPro_BioSQL_Handler
>> Bio::OntologyIO::InterProParser
>> Bio::PrimarySeq::Fasta
>> Bio::Root::Err
>> Bio::Root::Global
>> Bio::Root::IOManager
>> Bio::Root::Utilities
>> Bio::Root::Vector
>> Bio::Root::Xref
>> Bio::SeqFeature::Gene::Promoter
>> Bio::SeqFeature::PositionProxy
>> Bio::SeqFeature::Tools::FeatureNamer
>> Bio::SeqFeature::Tools::IDHandler
>> Bio::SeqFeature::Tools::TypeMapper
>> Bio::SeqIO::FTHelper
>> Bio::Structure::SecStr::DSSP::Res
>> Bio::Structure::SecStr::STRIDE::Res
>> Bio::Taxonomy
>> Bio::Taxonomy::Taxon
>> Bio::Taxonomy::Tree
>> Bio::Tools::AlignFactory
>> Bio::Tools::Blast::HSP
>> Bio::Tools::Blast::HTML
>> Bio::Tools::Blast::Sbjct
>> Bio::Tools::Blat
>> Bio::Tools::Coil
>> Bio::Tools::ESTScan
>> Bio::Tools::Eponine
>> Bio::Tools::Fgenesh
>> Bio::Tools::Gel
>> Bio::Tools::Grail
>> Bio::Tools::HMM
>> Bio::Tools::Hmmpfam
>> Bio::Tools::Primer::Feature
>> Bio::Tools::Primer::Pair
>> Bio::Tools::Prints
>> Bio::Tools::Profile
>> Bio::Tools::PrositeScan
>> Bio::Tools::Run::GenericParameters
>> Bio::Tools::Seg
>> Bio::Tools::Signalp
>> Bio::Tools::Tmhmm
>> Bio::Tools::WWW
>> Bio::Tools::WebBlat
>> Bio::Tree::Compatible
>> Bio::Tree::Draw::Cladogram
>> Bio::Tree::NodeNHX
>> FeatureStore  # in Bio::DB::GFF::Adaptor::berkeleydb.pm
>> interpro   # class defined in Bio::SeqIO::interpro, mistake?
>>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l

--
Jason Stajich
Duke University
http://www.duke.edu/~jes12/




More information about the Bioperl-l mailing list