#!/usr/local/bin/perl -w
use lib '.';
BEGIN {
eval { require Test; };
use Test;
plan tests => 6;
}
# All tests must be run from the software directory;
# make sure we are getting the modules from here:
use strict;
use GO::Parser;
# ----- REQUIREMENTS -----
# This test script tests the following requirements:/x
# GO::Model::Graph must implement the GO::Builder interface; ie
# it should be possible to pass in a graph to a parser and have it build
# up a graph object
# ------------------------
my $parser = new GO::Parser ({format=>'obo_text',
handler=>'obj'});
ok(1);
$parser->parse (shift @ARGV || "./t/data/test-go.obo");
ok(1);
my $graph = $parser->handler->g;
my $terms = $graph->find_roots;
foreach my $term (@$terms) {
printf "ROOT: %s\n", $term->name;
}
ok(@$terms == 3);
$terms = $graph->get_all_nodes;
my $t = 0;
my $t2 = 0;
ok(@$terms == 97);
foreach my $term (@$terms) {
my $rels = $graph->get_relationships($term->acc);
$t2 += @$rels;
$t+= @{$graph->get_parent_relationships($term->acc)};
foreach my $rel (@$rels) {
printf "EDGE|%s|%s|%s\n",
$rel->subject_acc,
$rel->object_acc,
$rel->type;
}
}
printf "total parent rels:%s\n", $t;
printf "total (both ways):%s\n", $t2;
ok($t == 118);
ok($t2 == 218); # trailing rels counted only once