[bug 2262]
[bioperl-live.git] / t / BlastIndex.t
blob6fa516b2740b8dbf4825be49a1153390ba176002
1 # -*-Perl-*- Test Harness script for Bioperl
2 # $Id$
4 use strict;
6 BEGIN {
7         use lib 't/lib';
8         use BioperlTest;
9         
10         test_begin(-tests => 26,
11                                   -requires_module => 'IO::String');
12     
13         use_ok('Cwd');
14         use_ok('Bio::SearchIO');
15         use_ok('Bio::Index::Blast');
18 END {  unlink qw( Wibbl Wibbl.pag Wibbl.dir Wibbl.index); }
20 # BLASTP
22 my $index = Bio::Index::Blast->new(-filename => 'Wibbl',
23                                                                                           -write_flag => 1);
24 ok($index);
26 $index->make_index(test_input_file('multi_blast.bls'));
27 ($index->dbm_package eq 'SDBM_File') ? 
28         (ok(-e "Wibbl.pag" && -e "Wibbl.dir")) :
29         (ok(-e "Wibbl"));
31 foreach my $id ( qw(CATH_RAT PAPA_CARPA) ) {
32         my $fh = $index->get_stream($id);
33         ok($fh);
34         ok( ! eof($fh) );
35         my $report = Bio::SearchIO->new(-noclose => 1,
36                                    -format  => 'blast',
37                                    -fh      => $fh);
38         my $result = $report->next_result;
39         like($result->query_name, qr/$id/);
40         ok( $result->next_hit);
41         
42         like( $index->fetch_report($id)->query_name, qr/$id/);
45 # RPS-BLAST
47 $index = Bio::Index::Blast->new(-filename => 'Wibbl.index',
48                                                                                   -write_flag => 1);
49 ok($index);
51 $index->make_index(test_input_file('rpsblast.bls'));
53 foreach my $id ( qw(orf20 orf40) ) {
54         my $fh = $index->get_stream($id);
55         ok($fh);
56         ok( ! eof($fh) );
57         my $report = Bio::SearchIO->new(-noclose => 1,
58                                    -format  => 'blast',
59                                    -fh      => $fh);
60         my $result = $report->next_result;
61         like($result->query_name, qr/$id/);
62         ok( $result->next_hit);
63         
64         like( $index->fetch_report($id)->query_name, qr/$id/);