Compress-BGZF
view release on metacpan or search on metacpan
t/bgzf_obj.t view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use Test::Fatal;
use Test::More qw/no_plan/;
use FindBin;
use Compress::BGZF;
use Compress::BGZF::Reader;
use Compress::BGZF::Writer;
use File::Basename qw/basename/;
use File::Copy qw/copy/;
use File::Temp qw/tempfile/;
use IO::Handle;
use Digest::MD5;
chdir $FindBin::Bin;
require_ok ("Compress::BGZF");
# check that compressed and uncompressed FHs return identical results
my @files = (
#'corpus/lorem_long',
'corpus/lorem_mixed',
'corpus/lorem',
'corpus/long_chunks',
);
my $scratch = File::Temp->newdir(CLEANUP => 1);
# test various Writer methods, and add created fields to list of Reader tests
# to validate output
for my $i (0..$#files) {
my $file = $files[$i];
my $fn_u = join '/', $scratch, basename($file);
my $fn_c = $fn_u . '.gz';
my $fn_i = $fn_c . '.gzi';
copy $file => $fn_u;
# test writing to STDOUT on first file
my $fh_tmp;
if ($i == 0) {
open $fh_tmp, '>', $fn_c;
$fn_c = undef;
}
local *STDOUT = $fh_tmp
if (defined $fh_tmp);
my $writer = Compress::BGZF::Writer->new($fn_c);
ok ($writer->isa('Compress::BGZF::Writer'), "returned Compress::BGZF::Writer object");
# test various EOL/compression combinations
$writer->set_write_eof();
$writer->set_write_eof($i % 2);
$writer->set_level(($i+1)*3 % 10);
like(
exception { $writer->set_level('foobar') },
qr/invalid compression level/i,
"invalid compression level caught $i.1"
);
like(
exception { $writer->set_level(undef) },
qr/invalid compression level/i,
( run in 1.339 second using v1.01-cache-2.11-cpan-54e63673c56 )