lib/Bio/Tools/Run/README: remove file
[bioperl-live.git] / t / Ontology / GOterm.t
blob13de385c94801dbb5fe36a0fab1332938f674ce6
1 # -*-Perl-*- Test Harness script for Bioperl
2 # $Id$
4 use strict;
5 use warnings;
7 BEGIN {
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');
18 my $obj = Bio::Ontology::GOterm->new();
20 # note that all *dblink* methods are now deprecated...
22 isa_ok( $obj,"Bio::Ontology::GOterm");
24 $obj->init();
26 like( $obj->to_string(), qr'-- GO id:' );
28 is( $obj->GO_id( "GO:0003947" ), "GO:0003947" );
29 is( $obj->GO_id(), "GO:0003947" );
32 is( $obj->get_dbxrefs(), 0 );
34 my @dblinks = (Bio::Annotation::DBLink->new(-primary_id => 'dAA'),
35                                  Bio::Annotation::DBLink->new(-primary_id => 'dAB'));
37 $obj->add_dbxref( -dbxrefs => \@dblinks );
38 is( scalar($obj->get_dbxrefs()), 2 );
39 my @df1 = $obj->get_dbxrefs();
40 is( $df1[ 0 ]->display_text, "dAA" );
41 is( $df1[ 1 ]->display_text, "dAB" );
42 is( $obj->get_dbxrefs(), 2 );
44 my @df2 = $obj->remove_dbxrefs();
45 is( $df2[ 0 ]->display_text, "dAA" );
46 is( $df2[ 1 ]->display_text, "dAB" );
48 is( $obj->get_dbxrefs(), 0 );
49 is( $obj->remove_dbxrefs(), 0 );
52 is( $obj->get_secondary_GO_ids(), 0 );
54 $obj->add_secondary_GO_id( ( "GO:0000000", "GO:1234567" ) );
55 is( scalar($obj->get_secondary_GO_ids()), 2 );
56 my @si1 = $obj->get_secondary_GO_ids();
57 is( $si1[ 0 ], "GO:0000000" );
58 is( $si1[ 1 ], "GO:1234567" );
59 is( $obj->get_secondary_GO_ids(), 2 );
61 my @si2 = $obj->remove_secondary_GO_ids();
62 is( $si2[ 0 ], "GO:0000000" );
63 is( $si2[ 1 ], "GO:1234567" );
65 is( $obj->get_secondary_GO_ids(), 0 );
66 is( $obj->remove_secondary_GO_ids(), 0 );
70 is( $obj->identifier( "0003947" ), "0003947" );
71 is( $obj->identifier(), "0003947" );
73 is( $obj->name( "N-acetylgalactosaminyltransferase" ), "N-acetylgalactosaminyltransferase" );
74 is( $obj->name(), "N-acetylgalactosaminyltransferase" );
76 is( $obj->definition( "Catalysis of ..." ), "Catalysis of ..." );
77 is( $obj->definition(), "Catalysis of ..." );
79 is( $obj->version( "666" ), "666" );
80 is( $obj->version(), "666" );
82 ok( $obj->ontology( "category 1 name" ) );
83 is( $obj->ontology()->name(), "category 1 name" );
85 my $ont = Bio::Ontology::Ontology->new();
86 ok( $ont->name( "category 2 name" ) );
88 ok( $obj->ontology( $ont ) );
89 is( $obj->ontology()->name(), "category 2 name" );
91 is( $obj->is_obsolete( 1 ), 1 );
92 is( $obj->is_obsolete(), 1 );
94 is( $obj->comment( "Consider the term ..." ), "Consider the term ..." );
95 is( $obj->comment(), "Consider the term ..." );
97 is( $obj->get_synonyms(), 0 );
99 $obj->add_synonym( ( "AA", "AB" ) );
100 my @al1 = $obj->get_synonyms();
101 is( scalar(@al1), 2 );
102 is( $al1[ 0 ], "AA" );
103 is( $al1[ 1 ], "AB" );
105 my @al2 = $obj->remove_synonyms();
106 is( $al2[ 0 ], "AA" );
107 is( $al2[ 1 ], "AB" );
109 is( $obj->get_synonyms(), 0 );
110 is( $obj->remove_synonyms(), 0 );
112 $obj->add_synonym( ( "AA", "AB" ) );
113 $obj->add_dbxref( -dbxrefs => \@dblinks );
114 $obj->add_secondary_GO_id( ( "GO:1234567", "GO:1234567" ) );
116 $obj->init();
117 is( $obj->identifier(), undef ); # don't make up identifiers
118 is( $obj->name(), undef );
119 is( $obj->definition(), undef );
120 is( $obj->is_obsolete(), 0 );
121 is( $obj->comment(), undef );
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" );  
132 is( $obj->identifier(), "GO:0016847" );
133 is( $obj->name(), "1-aminocyclopropane-1-carboxylate synthase" );
134 is( $obj->definition(), "Catalysis of ..." );
135 is( $obj->is_obsolete(), 0 );
136 is( $obj->comment(), "X" );
137 is( $obj->version(), "6.6.6" );
138 is( $obj->ontology()->name(), "cat" );