AcePerl

 view release on metacpan or  search on metacpan

t/sequence.t  view on Meta::CPAN

#!/usr/local/bin/perl -w


# Tests of Ace::Sequence and Ace::Sequence::Feature
######################### We start with some black magic to print on failure.
use lib '..','../blib/lib','../blib/arch';
use constant HOST => $ENV{ACEDB_HOST} || 'aceserver.cshl.org';
use constant PORT => $ENV{ACEDB_PORT} || 2007;

BEGIN {$| = 1; print "1..54\n"; }
END {print "not ok 1\n" unless $loaded;}
use Ace::Sequence;
$loaded = 1;

print "ok 1\n";

######################### End of black magic.

sub test {
    local($^W) = 0;
    my($num, $true,$msg) = @_;
    print($true ? "ok $num\n" : "not ok $num $msg\n");
}

test(2,$db = Ace->connect(-host=>HOST,-port=>PORT,-timeout=>50),"connection failure");

# uncomment to use with SMap test database (only valid on Lincoln's test machine)
#test(2,$db = Ace->connect(-path=>'~acedb/tempdb'),"connection failure");

die "Couldn't establish connection to database.  Aborting tests.\n" unless $db;

# test whole clones
test(3,$clone = $db->fetch(Sequence=>'ZK154'),"fetch failure");

test(4,$zk154 = Ace::Sequence->new($clone),"new() failure");
test(5,$zk154->start==1,"start() failure");
test(6,$zk154->end==26547,"end() failure");

test(7,$zk154s = Ace::Sequence->new(-seq=>$clone,
				    -offset=>100,
				    -Length=>100),"new() failure");
test(8,$zk154s->start==101,"start() failure (2)");
test(9,$zk154s->end==200,"end() failure (2)");

test(10,$zk154s->length == 100,"length() failure");
test(11,length($zk154s->dna)==100,"dna() failure");

test(12,$zk154r = Ace::Sequence->new(-seq=>$clone,
				     -offset =>  100,
				     -Length => -100),"new() failure");
test(13,$zk154r->start==101,"start() failure (3)");
test(14,$zk154r->end==2,"end() failure (3)");
test(15,$zk154r->length == -100,"length() failure");
test(16,length($zk154r->dna) == 100,"dna() failure");
# print "ok 14 # Skip, persistent off-by-one errors\n";
# print "ok 15 # Skip, persistent off-by-one errors\n";
# print "ok 16 # Skip, persistent off-by-one errors\n";

@features = sort { $a->start <=> $b->start; }  $zk154->features('exon');

test(17,@features,'features() error');

test(18,$features[0]->start > 0,'features()->start error');
test(19,$features[0]->end-$features[0]->start +1 == $features[0]->length,'features()->end error');

test(20,$gff = $zk154->gff,'gff() error');



( run in 0.890 second using v1.01-cache-2.11-cpan-39bf76dae61 )