test
[bioperl-run.git] / t / RepeatMasker.t
blob711e470a38e3a44e83d455751a0ff3e6918372eb
1 # -*-Perl-*-
2 ## Bioperl Test Harness Script for Modules
3 # $Id$
5 use strict;
6 BEGIN {
7     eval { require Test; };
8     if( $@ ) {
9         use lib 't';
10     }
11     use Test;
12     use vars qw($NTESTS);
13     $NTESTS = 10;
14     plan tests => $NTESTS;
16 use Bio::Tools::Run::RepeatMasker;
17 use Bio::SeqIO;
19 my $inputfilename= Bio::Root::IO->catfile(qw(t data repeatmasker.fa));
20 my $createdfile = Bio::Root::IO->catfile(qw(t data repeatmasker.fa.out));
22 END {
23     for ( $Test::ntest..$NTESTS ) {
24         skip("RepeatMasker program not found or incorrectly configured. Skipping.",1);
25     }
26         unlink($createdfile);
29 my $verbose = $ENV{'BIOPERLDEBUG'} ? 1 : 0;
30 my @params=("species" => "mammal", 'noint' => 1, 'qq' => 1, '-verbose' => $verbose);
31 my $fact = Bio::Tools::Run::RepeatMasker->new(@params);
32 $fact->quiet(1);
33 if( ! $fact->executable ) { 
34     warn("RepeatMasker program not found. Skipping tests $Test::ntest to $NTESTS.\n");
36     exit(0);
39 ok ($fact->species, 'mammal');
40 ok ($fact->noint,1);
42 my $in  = Bio::SeqIO->new(-file => $inputfilename , '-format' => 'fasta');
43 my $seq = $in->next_seq();
44 my @feats = $fact->mask($seq);
46 my $version = $fact->version;
48 ok ($feats[0]->feature1->primary_tag, "Simple_repeat");
49 ok ($feats[0]->feature1->source_tag, "RepeatMasker");
50 ok ($feats[0]->feature2->seq_id, "(TTAGGG)n");
52 if( $version =~ /open-(\S+)/) {
53     my $num = $1;
54     if( $num ge '3.1.0' ) {
55         ok ($feats[0]->feature1->start, 1337);
56         ok ($feats[0]->feature1->end, 1411);
57         ok ($feats[0]->feature1->strand, 1);
58         ok ($feats[1]->feature1->start, 1710);
59         ok ($feats[1]->feature1->end, 2052);
60     } elsif( $num ge  '3.0.8' ) {
61         ok ($feats[0]->feature1->start, 1337);
62         ok ($feats[0]->feature1->end, 1407);
63         ok ($feats[0]->feature1->strand, 1);
64         ok ($feats[1]->feature1->start, 1712);
65         ok ($feats[1]->feature1->end, 2225);    
66     } else {
67         skip("unknown RepeatMasker Version, cannot test",1) for ( 1..3);
68     }
69 } else {
70     ok ($feats[0]->feature1->start, 1337);
71     ok ($feats[0]->feature1->end, 1407);
72     ok ($feats[0]->feature1->strand, 1);