#! /usr/bin/env perl

use strict;
use warnings;
use Bio::SeqIO;
use Bio::DB::Fasta;
use InMemoryFastaAccess;

use Bio::Root::Test;
test_begin(-tests => 4);

#--------- Method 1 ---------#

my $refDB1   = Bio::DB::Fasta->new('Test2.Fasta');
my $queryDB1 = Bio::DB::Fasta->new('Test1.Fasta');

my $refStr1   = $refDB1->subseq( "gi|294675557|ref|NC_014034.1|", 161067, 161788 )."\n";
my $queryStr1 = $queryDB1->subseq( "gi|169245903|gb|EU376363.1|", 1, 722 )."\n";


#--------- Method 2 ---------#

my $refDB2   = InMemoryFastaAccess->new('Test2.Fasta');
my $queryDB2 = InMemoryFastaAccess->new('Test1.Fasta');

my $refStr2   = $refDB2->subseq( "gi|294675557|ref|NC_014034.1|", 161067, 161788 )."\n";
my $queryStr2 = $queryDB2->subseq( "gi|169245903|gb|EU376363.1|", 1, 722 )."\n";


#--------- Method 3 ---------#

my $refDB3 = Bio::SeqIO->new(-file => 'Test2.Fasta');

my $refSeq3;
while ( $refSeq3 = $refDB3->next_seq) {
  last if $refSeq3->id eq "gi|294675557|ref|NC_014034.1|";
}
my $refStr3   = $refSeq3->subseq( 161067, 161788 )."\n";

my $querySeq3;
my $queryDB3 = Bio::SeqIO->new(-file => 'Test1.Fasta');
while ( $querySeq3 = $queryDB3->next_seq) {
  last if $querySeq3->id eq "gi|169245903|gb|EU376363.1|";
}
my $queryStr3 = $querySeq3->subseq( 1, 722 )."\n";


#--------- Tests    ---------#

is $queryStr1, $queryStr2;
is $queryStr1, $queryStr3;
is $refStr1, $refStr2;
is $refStr1, $refStr3;


exit;
