version increase for final release, improved warning
[bioperl-network.git] / t / Graph-Seq.t
blob7fd281ce0cd3353945acfa25e9517d3727503e3a
1 # This is -*-Perl-*- code#
2 # Bioperl Test Harness Script for Modules#
3 # $Id: protgraph.t,v 1.1 2004/03/13 23:45:32 radams Exp
5 use vars qw($NUMTESTS $DEBUG $ERROR);
6 use strict;
7 $DEBUG = $ENV{'BIOPERLDEBUG'} || 0;
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         $ERROR = 0;
15         if ( $@ ) {
16                 use lib 't';
17         }
18         use Test;
19         $NUMTESTS  = 16;
20         plan tests => $NUMTESTS;
21         eval { require Graph; };
22         if ( $@ ) {
23                 warn("Perl's Graph required by the bioperl-network package, skipping tests");
24                 $ERROR = 1;
25         }
28 END {
29         foreach ( $Test::ntest..$NUMTESTS) {
30                 skip("Missing dependencies. Skipping tests",1);
31         }
33 exit 0 if $ERROR == 1;
35 require Graph::Undirected;
36 require Graph::Traversal::DFS;
37 require Bio::Seq;
40 # The purpose of these tests is to check to see if bugs have been
41 # fixed in Perl's Graph, particularly if refvertexed == 1
43 my $g = Graph::Undirected->new(refvertexed => 1);
45 ok 1;
47 my $seq1 = Bio::Seq->new(-seq => "aaaaaaa");
48 my $seq2 = Bio::Seq->new(-seq => "ttttttt");
49 my $seq3 = Bio::Seq->new(-seq => "ccccccc");
50 my $seq4 = Bio::Seq->new(-seq => "ggggggg");
52 $g->add_vertices($seq1,$seq2,$seq3,$seq4);
53 $g->add_edges([$seq1,$seq2],[$seq3,$seq4],[$seq3,$seq2]);
55 my @vs = $g->vertices;
56 ok $vs[0]->seq;
58 my $c = $g->complete;
59 @vs = $c->vertices;
60 ok $vs[0]->seq;
62 my $comp = $g->complement;
63 @vs = $comp->vertices;
64 ok $vs[0]->seq;
66 @vs = $g->interior_vertices;
67 ok $vs[0]->seq;
69 my $apsp = $g->APSP_Floyd_Warshall;
70 @vs = $apsp->path_vertices($seq1,$seq4);
71 ok $vs[0]->seq;
73 my $seq = $g->random_vertex;
74 ok $seq->seq;
76 my $t = Graph::Traversal::DFS->new($g);
77 $t->dfs;
78 @vs = $t->seen;
79 for my $seq (@vs) {
80         ok $seq->seq;
83 # Still an intermittent bug
84 # @vs = $g->articulation_points; 
85 # ok $vs[0]->seq; # not OK in Graph v. .80
86 # ok scalar @vs, 2;
88 my @cc = $g->connected_components;
89 for my $ref (@cc) {
90         for my $seq (@$ref) {
91                 ok $seq->seq;
92         }
95 my @bs = $g->bridges;
96 ok $bs[0][0]->seq;
98 my $cg = $g->connected_graph;
99 @vs = $cg->vertices;
100 # ok $vs[0]->seq; incorrect usage
102 my @spd = $g->SP_Dijkstra($seq1,$seq4);
104 my @spbf = $g->SP_Bellman_Ford($seq1,$seq4);
106 __END__