t/*: remove "use lib '.'" and t/lib/Error.pm
[bioperl-live.git] / t / SeqIO / tigrxml.t
blobf26e7a4ab4536e3c0bd93d79a91015a731dd080d
1 # -*-Perl-*- Test Harness script for Bioperl
2 # $Id$
4 use strict;
6 BEGIN {
7     use Bio::Root::Test;
8     
9     test_begin(-tests => 49,
10                            -requires_modules => [qw(XML::SAX XML::SAX::Writer)]);
11         
12         use_ok('Bio::SeqIO::tigrxml');
15 my $verbose = test_debug();
17 my $ast = Bio::SeqIO->new(-format => 'tigrxml' ,
18                           -verbose => $verbose,
19                           -file => test_input_file('test.tigrxml'));
20 isa_ok($ast, 'Bio::SeqIO');
21 $ast->verbose($verbose);
22 ok my $as = $ast->next_seq();
23 is($as->display_id, 'chr9');
25 my $first = 1;
26 for my $f ( sort { $a->start * $a->strand <=> $b->start * $b->strand } $as->get_SeqFeatures ) {
27     ok($f);
29     my ($name);
30     for my $tag ( qw(Parent ID) ) {
31         if( $f->has_tag($tag) ) {
32             ($name) = $f->get_tag_values($tag);
33             last;
34         }
35     }
36     if( $name eq '162.t00500' || $name eq '162.m02638' ) {
37         if( $f->primary_tag eq 'gene' ) {
38             is($f->start, 185408);
39             is($f->end, 187155);
40             # warn($f->gff_string, "\n");
41         } elsif( $f->primary_tag eq 'mRNA' ) { 
42             is($f->start, 185408); # the values list for COORD are start/end of CDS not whole transcript
43             is($f->end, 187155);    
44             is($f->strand, 1);
45         } elsif( $f->primary_tag eq "five_prime_UTR" ) {
46             my ($id) = $f->get_tag_values('ID');
47             if( $id =~ /UTR1$/ ) {
48                 is($f->start, 185408);
49                 is($f->end,   185433);
50             } elsif( $id =~ /UTR2$/ ) {
51                 is($f->start, 185487);
52                 is($f->end,   185793);
53             } else {
54                 ok(0, 'expected only two UTRS');
55             }       
56         } elsif( $f->primary_tag eq "three_prime_UTR" ) {
57             is($f->start, 187042);
58             is($f->end, 187155);
59         } elsif( $f->primary_tag eq 'CDS' ) {
60             is($f->start, 185794);
61             is($f->end, 187041);
62         }
63     } elsif ( $name eq '162.t00448' || $name eq '162.m02967' ) {
64         if( $f->primary_tag eq 'gene' ) {
65             is($f->start, 59343);
66             is($f->end, 61061);
67         } elsif( $f->primary_tag eq 'mRNA' ) { 
68             is($f->start, 59343); # the values list for COORD are start/end of CDS not whole transcript
69             is($f->end, 61061);    
70             is($f->strand, -1);
71         } elsif( $f->primary_tag eq "five_prime_UTR" ) {
72             my ($id) = $f->get_tag_values('ID');
73             is($f->start, 60834);
74             is($f->end, 61061);
75             is($f->strand, -1);
76         } elsif( $f->primary_tag eq "three_prime_UTR" ) {
77             is($f->start, 59343);
78             is($f->end,   59632);
79             is($f->strand, -1);
80         } elsif( $f->primary_tag eq 'CDS' ) {
81             if( $first ) { 
82                 is($f->start, 60801);
83                 is($f->end,   60833);
84                 is($f->strand, -1);
85                 $first = 0;
86             }
87         }
88     } else { 
89         ok(0, "unexpected name '$name'\n");
90     }