New INSTALL.WIN doc (from wiki)
[bioperl-live.git] / t / GraphAdaptor.t
blob9c8343078630519ce4dbb8f02057da0039b65333
1 # -*-Perl-*-
2 ## Bioperl Test Harness Script for Modules
3 # $Id$
5 # Before `make install' is performed this script should be runnable with
6 # `make test'. After `make install' it should work as `perl test.t'
8 use strict;
9 BEGIN {
10     # to handle systems with no installed Test module
11     # we include the t dir (where a copy of Test.pm is located)
12     # as a fallback
13     eval { require Test; };
14     if( $@ ) {
15         use lib 't';
16     }
17     use Test;
19     eval { require 'Graph.pm' };
20     if( $@ ) {
21             print STDERR "\nGraph.pm doesn't seem to be installed on this system -- the GO Parser needs it...\n\n";
22             plan tests => 1;
23             ok( 1 );
24             exit( 0 );
25     }
27     plan tests => 18;
30 use Bio::Ontology::SimpleGOEngine::GraphAdaptor;
32 my $g=new Bio::Ontology::SimpleGOEngine::GraphAdaptor;
33 my $graph_version=( defined($Graph::VERSION) && $Graph::VERSION >= 0.5 )  ? 'new' : 'old';
34 my $adaptor_class=$graph_version eq 'new' ? 
35   'Bio::Ontology::SimpleGOEngine::GraphAdaptor' : 'Bio::Ontology::SimpleGOEngine::GraphAdaptor02';
36 ok (ref $g, $adaptor_class);
38 $g->add_vertex('vertex0');
39 ok($g->has_vertex('vertex0'));
40 ok(!$g->has_vertex('vertex1'));
41 my @v=$g->vertices;
42 ok (@v==1 && $v[0] eq 'vertex0') ;
44 $g->add_edge('vertex0','vertex1');
45 ok($g->has_edge('vertex0','vertex1'));
46 ok(!$g->has_edge('vertex0','vertex'));
47 my @e=$g->edges;
48 ok (@e==1 && $e[0]->[0] eq 'vertex0' && $e[0]->[1] eq 'vertex1') ;
50 @e=$g->edges_at('vertex0');
51 ok (@e==1 && $e[0]->[0] eq 'vertex0' && $e[0]->[1] eq 'vertex1') ;
53 @v=$g->predecessors('vertex1');
54 ok (@v==1 && $v[0] eq 'vertex0');
56 @v=$g->successors('vertex0');
57 ok (@v==1 && $v[0] eq 'vertex1');
59 @v=$g->source_vertices;
60 ok (@v==1 && $v[0] eq 'vertex0');
62 @v=$g->sink_vertices;
63 ok (@v==1 && $v[0] eq 'vertex1');
65 $g->set_vertex_attribute('vertex0','ATTR0','vertex0_ATTR0');
66 $g->set_vertex_attribute('vertex0','ATTR1','vertex0_ATTR1');
67 $g->set_vertex_attribute('vertex1','ATTR0','vertex1_ATTR0');
68 $g->set_vertex_attribute('vertex1','ATTR1','vertex1_ATTR1');
69 ok ($g->get_vertex_attribute('vertex0','ATTR0'),'vertex0_ATTR0');
70 ok ($g->get_vertex_attribute('vertex0','ATTR1'),'vertex0_ATTR1');
71 ok ($g->get_vertex_attribute('vertex1','ATTR0'),'vertex1_ATTR0');
72 ok ($g->get_vertex_attribute('vertex1','ATTR1'),'vertex1_ATTR1');
74 $g->set_edge_attribute('vertex0','vertex1','ATTR0','vertex0_vertex1_ATTR0');
75 $g->set_edge_attribute('vertex0','vertex1','ATTR1','vertex0_vertex1_ATTR1');
76 ok ($g->get_edge_attribute('vertex0','vertex1','ATTR0'),'vertex0_vertex1_ATTR0');
77 ok ($g->get_edge_attribute('vertex0','vertex1','ATTR1'),'vertex0_vertex1_ATTR1');