use 5.008; # Require at least Perl version 5.8
use strict; # Must declare all variables before using them
use warnings; # Emit helpful warnings
use autodie; # Automatically throw fatal exceptions for common unrecoverable
# errors (e.g. trying to open a non-existent file)
use Test::More; # Testing module
use Test::LongString; # Compare strings byte by byte
use File::Temp qw( tempfile ); #
use Data::Section -setup; # Have various DATA sections, allows for mock files
use File::Slurp qw( slurp);
test_system(
outfile => 't/trim_AGGT_out',
);
{ # Test trimming both ends
my $outfile = 't/trimmed_AGGT_TTG';
system( "bin/selex_adapter_trimmer --fastq --infile=t/sample.fastq --outfile=$outfile --adapterseq=AGGT --adapter3prime=TTG");
my $result = slurp $outfile;
my $expected = slurp 't/expected_AGGT_TTG.fastq';
is_string( $result, $expected, 'AGGT and TTG trimming successful' );
delete_temp_file($outfile);
}
done_testing();
sub test_system {
my %opt = @_;
system ("bin/selex_adapter_trimmer --fastq --infile=t/sample.fastq --outfile=$opt{outfile} --adapterseq=AGGT");
my $result = slurp $opt{outfile};
my $expected = slurp 't/expected_trimAGGT.fastq';
is_string( $result, $expected, 'Simple trim of AGGT successful' );
delete_temp_file($opt{outfile});
}
sub delete_temp_file {
my $filename = shift;
my $unlinked_ok = unlink $filename;
ok($unlinked_ok, "Deleted temp file '$filename'");
}