t/*: remove "use lib '.'" and t/lib/Error.pm
[bioperl-live.git] / t / SearchIO / exonerate.t
blob5c9405ef5f2bf924f929731d387a2377475e897d
1 # -*-Perl-*- Test Harness script for Bioperl
2 # $Id: SearchIO_exonerate.t 11525 2007-06-27 10:16:38Z sendu $
4 use strict;
6 BEGIN {
7     use Bio::Root::Test;
9     test_begin( -tests => 52 );
11     use_ok('Bio::SearchIO');
14 my ( $searchio, $result, $hit, $hsp );
16 $searchio = Bio::SearchIO->new(
17     -file   => test_input_file('testdat.exonerate'),
18     -format => 'exonerate'
20 my @data = (
21     [
22         qw(ln27 416 Contig124 939
23           293 416 -1
24           1   124 1
26           107 292 -1
27           178 363 1
29           66 106 -1
30           899 939 1
31           )
32     ],
33     [
34         qw(ln74 644 Contig275 1296
35           601 644 -1
36           901 944 1
38           436 600 -1
39           998 1162    1
41           386 435 -1
42           1247 1296 1
44           )
45     ]
48 my $val;
50 while ( my $r = $searchio->next_result ) {
51     my $d = shift @data;
52     is( $r->query_name, shift @$d );
53   SKIP: {
54         $val = shift @$d;
55         skip( 'no query length available in default output', 1 );
56         is( $r->query_length, $val );
57     }
59     my $h = $r->next_hit;
60     is( $h->name, shift @$d );
61   SKIP: {
62         $val = shift @$d;
63         skip( 'no hit length available in default output', 1 );
64         is( $h->length, $val );
65     }
66     while ( my $hsp = $h->next_hsp ) {
67         is( $hsp->query->start,  shift @$d );
68         is( $hsp->query->end,    shift @$d );
69         is( $hsp->query->strand, shift @$d );
71         is( $hsp->hit->start,  shift @$d );
72         is( $hsp->hit->end,    shift @$d );
73         is( $hsp->hit->strand, shift @$d );
74     }
77 # bug 2346
79 my @cts = (7, 1, 7);
81 $searchio = Bio::SearchIO->new(
82    -format => 'exonerate',
83    -file   => test_input_file('exonerate.output.works'),
85 parse($searchio);
87 $searchio = Bio::SearchIO->new(
88    -format => 'exonerate',
89    -file   => test_input_file('exonerate.output.dontwork'),
91 parse($searchio);
93 $searchio = Bio::SearchIO->new(
94    -format => 'exonerate',
95    -file   => test_input_file('exonerate.whitespace_before_query.works'),
97 parse($searchio);
99 sub parse {
100     my ($searchio) = @_;
101     while( my $r = $searchio->next_result ) {
102         my $hsp_ct = 0;
103         while(my $hit = $r->next_hit){
104             while(my $hsp = $hit->next_hsp){
105                 $hsp_ct++;
106             }
107         }
108         ok($r->query_name, "query_name");
109         is($hsp_ct, shift @cts);
110     }
113 $searchio = Bio::SearchIO->new(
114     -format => 'exonerate',
115     -file   => test_input_file('exonerate.output.negativescore.works'),
117 my $r   = $searchio->next_result;
118 $hit = $r->next_hit;
119 is( $hit->score, "-3" );