Fix bug #212
[bioperl-live.git] / t / Perl.t
blob38055b23bb4b4e2e9230c7d3768e2155be588a6f
1 # -*-Perl-*- Test Harness script for Bioperl
2 # $Id$
4 use strict;
6 BEGIN { 
7         use lib '.';
8     use Bio::Root::Test;
9     
10     test_begin(-tests => 31,
11                            -requires_module => 'IO::String');
12         
13         use_ok('Bio::Perl');
16 # Bio::Perl isn't OO so we don't see Bio::Perl->new() here
18 my ($seq_object,$filename,$blast_report,@seq_object_array);
20 # will guess file format from extension
21 $filename = test_input_file('cysprot1.fa');
22 ok ($seq_object = read_sequence($filename));
23 isa_ok $seq_object, 'Bio::SeqI';
25 # forces genbank format
26 $filename = test_input_file('AF165282.gb');
27 ok  ($seq_object = read_sequence($filename,'genbank'));
28 isa_ok $seq_object, 'Bio::SeqI';
30 # reads an array of sequences
31 $filename = test_input_file('amino.fa');
32 is (@seq_object_array = read_all_sequences($filename,'fasta'), 2);
33 isa_ok $seq_object_array[0], 'Bio::SeqI';
34 isa_ok $seq_object_array[1], 'Bio::SeqI';
36 $filename = test_output_file();
37 ok write_sequence(">$filename",'genbank',$seq_object);
38 ok ($seq_object = new_sequence("ATTGGTTTGGGGACCCAATTTGTGTGTTATATGTA","myname","AL12232"));
39 isa_ok $seq_object, 'Bio::SeqI';
41 my $trans;
43 ok ($trans = translate($seq_object));
45 isa_ok $trans, 'Bio::SeqI';
47 ok ($trans = translate("ATTGGTTTGGGGACCCAATTTGTGTGTTATATGTA"));
49 isa_ok $trans, 'Bio::PrimarySeqI';
51 ok ($trans = translate_as_string($seq_object));
53 is $trans, 'IGLGTQFVCYM';
55 $trans = '';
57 ok ($trans = translate_as_string("ATTGGTTTGGGGACCCAATTTGTGTGTTATATGTA"));
59 is $trans, 'IGLGTQFVCYM';
61 # we need to keep tests that depend on net connection at the end
62 # these now run only with BIOPERLDEBUG set
64 SKIP: {
65         test_skip(-tests => 12, -requires_networking => 1, -requires_module => 'LWP::UserAgent');
66         
67         # swissprot
68         SKIP: {
69                 test_skip(-tests => 2, -requires_module => 'Data::Stag');
70                 eval {
71                         $seq_object = get_sequence('swissprot',"ROA1_HUMAN");
72                 };
73                 if ($@) {
74                         skip("problem connecting to SwissProt:$@",2);
75                 } else {
76                         ok $seq_object;
77                         isa_ok $seq_object, 'Bio::SeqI';
78                 }
79         }
80         
81     # embl
82         SKIP: {
83                 eval {
84                         $seq_object = get_sequence('embl',"HSFOS");
85                 };
86                 if ($@) {
87                         skip("problem connecting to EMBL:$@",2);
88                 } else {
89                         ok $seq_object;
90                         isa_ok $seq_object, 'Bio::SeqI';
91                 }
92         }
94         # genbank       
95         SKIP: {
96                 eval {
97                         $seq_object = get_sequence('genbank',"AI129902");
98                 };
99                 if ($@) {
100                         skip("problem connecting to GenBank:$@",2);
101                 } else {
102                         ok $seq_object;
103                         isa_ok $seq_object, 'Bio::SeqI';
104                 }
105         }
107     # refseq
108         SKIP: {
109                 eval {
110                         $seq_object = get_sequence('genbank',"NM_006732");
111                 };
112                 if( $@ ) {
113                         skip("problem connecting to RefSeq:$@",2);
114                 } else {
115                         ok $seq_object;
116                         isa_ok $seq_object, 'Bio::SeqI';
117                 }
118         }
119         
120         # genpept
121         SKIP: {
122                 eval {
123                         $seq_object = get_sequence('genpept',"AAC06201");
124                 };
125                 if ($@) {
126                         skip("problem connecting to RefSeq:$@",2);
127                 } else {
128                         ok $seq_object;
129                         isa_ok $seq_object, 'Bio::SeqI';
130                 }
131         }
132     
133     # blast
134     SKIP: {
135                 eval {
136                         $blast_report = blast_sequence($seq_object, 0);
137                 };
138                 if ($@) {
139                         skip("problem connecting to NCBI BLAST:$@",2);
140                 } else {
141                         ok $blast_report;
142                         isa_ok $blast_report, 'Bio::Search::Result::ResultI';
143                 }
144     }