1# -*-Perl-*- Test Harness script for Bioperl 2# $Id$ 3 4use strict; 5use warnings; 6 7BEGIN { 8 use Bio::Root::Test; 9 10 test_begin(-tests => 62, 11 -requires_module => 'Graph::Directed'); 12 13 use_ok('Bio::Ontology::GOterm'); 14 use_ok('Bio::Ontology::Ontology'); 15 use_ok('Bio::Annotation::DBLink'); 16} 17 18my $obj = Bio::Ontology::GOterm->new(); 19 20# note that all *dblink* methods are now deprecated... 21 22isa_ok( $obj,"Bio::Ontology::GOterm"); 23 24$obj->init(); 25 26like( $obj->to_string(), qr'-- GO id:' ); 27 28is( $obj->GO_id( "GO:0003947" ), "GO:0003947" ); 29is( $obj->GO_id(), "GO:0003947" ); 30 31 32is( $obj->get_dbxrefs(), 0 ); 33 34my @dblinks = (Bio::Annotation::DBLink->new(-primary_id => 'dAA'), 35 Bio::Annotation::DBLink->new(-primary_id => 'dAB')); 36 37$obj->add_dbxref( -dbxrefs => \@dblinks ); 38is( scalar($obj->get_dbxrefs()), 2 ); 39my @df1 = $obj->get_dbxrefs(); 40is( $df1[ 0 ]->display_text, "dAA" ); 41is( $df1[ 1 ]->display_text, "dAB" ); 42is( $obj->get_dbxrefs(), 2 ); 43 44my @df2 = $obj->remove_dbxrefs(); 45is( $df2[ 0 ]->display_text, "dAA" ); 46is( $df2[ 1 ]->display_text, "dAB" ); 47 48is( $obj->get_dbxrefs(), 0 ); 49is( $obj->remove_dbxrefs(), 0 ); 50 51 52is( $obj->get_secondary_GO_ids(), 0 ); 53 54$obj->add_secondary_GO_id( ( "GO:0000000", "GO:1234567" ) ); 55is( scalar($obj->get_secondary_GO_ids()), 2 ); 56my @si1 = $obj->get_secondary_GO_ids(); 57is( $si1[ 0 ], "GO:0000000" ); 58is( $si1[ 1 ], "GO:1234567" ); 59is( $obj->get_secondary_GO_ids(), 2 ); 60 61my @si2 = $obj->remove_secondary_GO_ids(); 62is( $si2[ 0 ], "GO:0000000" ); 63is( $si2[ 1 ], "GO:1234567" ); 64 65is( $obj->get_secondary_GO_ids(), 0 ); 66is( $obj->remove_secondary_GO_ids(), 0 ); 67 68 69 70is( $obj->identifier( "0003947" ), "0003947" ); 71is( $obj->identifier(), "0003947" ); 72 73is( $obj->name( "N-acetylgalactosaminyltransferase" ), "N-acetylgalactosaminyltransferase" ); 74is( $obj->name(), "N-acetylgalactosaminyltransferase" ); 75 76is( $obj->definition( "Catalysis of ..." ), "Catalysis of ..." ); 77is( $obj->definition(), "Catalysis of ..." ); 78 79is( $obj->version( "666" ), "666" ); 80is( $obj->version(), "666" ); 81 82ok( $obj->ontology( "category 1 name" ) ); 83is( $obj->ontology()->name(), "category 1 name" ); 84 85my $ont = Bio::Ontology::Ontology->new(); 86ok( $ont->name( "category 2 name" ) ); 87 88ok( $obj->ontology( $ont ) ); 89is( $obj->ontology()->name(), "category 2 name" ); 90 91is( $obj->is_obsolete( 1 ), 1 ); 92is( $obj->is_obsolete(), 1 ); 93 94is( $obj->comment( "Consider the term ..." ), "Consider the term ..." ); 95is( $obj->comment(), "Consider the term ..." ); 96 97is( $obj->get_synonyms(), 0 ); 98 99$obj->add_synonym( ( "AA", "AB" ) ); 100my @al1 = $obj->get_synonyms(); 101is( scalar(@al1), 2 ); 102is( $al1[ 0 ], "AA" ); 103is( $al1[ 1 ], "AB" ); 104 105my @al2 = $obj->remove_synonyms(); 106is( $al2[ 0 ], "AA" ); 107is( $al2[ 1 ], "AB" ); 108 109is( $obj->get_synonyms(), 0 ); 110is( $obj->remove_synonyms(), 0 ); 111 112$obj->add_synonym( ( "AA", "AB" ) ); 113$obj->add_dbxref( -dbxrefs => \@dblinks ); 114$obj->add_secondary_GO_id( ( "GO:1234567", "GO:1234567" ) ); 115 116$obj->init(); 117is( $obj->identifier(), undef ); # don't make up identifiers 118is( $obj->name(), undef ); 119is( $obj->definition(), undef ); 120is( $obj->is_obsolete(), 0 ); 121is( $obj->comment(), undef ); 122 123 124$obj = Bio::Ontology::GOterm->new( -go_id => "0016847", 125 -name => "1-aminocyclopropane-1-carboxylate synthase", 126 -definition => "Catalysis of ...", 127 -is_obsolete => 0, 128 -version => "6.6.6", 129 -ontology => "cat", 130 -comment => "X" ); 131 132is( $obj->identifier(), "GO:0016847" ); 133is( $obj->name(), "1-aminocyclopropane-1-carboxylate synthase" ); 134is( $obj->definition(), "Catalysis of ..." ); 135is( $obj->is_obsolete(), 0 ); 136is( $obj->comment(), "X" ); 137is( $obj->version(), "6.6.6" ); 138is( $obj->ontology()->name(), "cat" ); 139