require 'inline'
+class TrimError < StandardError; end
+
# Module containing methods for end trimming sequences with suboptimal quality
# scores.
module Trim
# Method to check the arguments for trimming and raise on bad sequence, qualities,
# and min_qual.
def check_trim_args(min_qual)
- raise SeqError, "no sequence" if self.seq.nil?
- raise SeqError, "no quality score" if self.qual.nil?
+ raise TrimError, "no sequence" if self.seq.nil?
+ raise TrimError, "no quality score" if self.qual.nil?
unless (SCORE_MIN .. SCORE_MAX).include? min_qual
- raise SeqError, "minimum quality value: #{min_qual} out of range #{SCORE_MIN} .. #{SCORE_MAX}"
+ raise TrimError, "minimum quality value: #{min_qual} out of range #{SCORE_MIN} .. #{SCORE_MAX}"
end
end
def test_Trim_quality_trim_with_missing_seq_raises
@entry.qual = "hhhh"
- assert_raise(SeqError) { @entry.quality_trim_right(20) }
- assert_raise(SeqError) { @entry.quality_trim_right!(20) }
- assert_raise(SeqError) { @entry.quality_trim_left(20) }
- assert_raise(SeqError) { @entry.quality_trim_left!(20) }
- assert_raise(SeqError) { @entry.quality_trim(20) }
- assert_raise(SeqError) { @entry.quality_trim!(20) }
+ assert_raise(TrimError) { @entry.quality_trim_right(20) }
+ assert_raise(TrimError) { @entry.quality_trim_right!(20) }
+ assert_raise(TrimError) { @entry.quality_trim_left(20) }
+ assert_raise(TrimError) { @entry.quality_trim_left!(20) }
+ assert_raise(TrimError) { @entry.quality_trim(20) }
+ assert_raise(TrimError) { @entry.quality_trim!(20) }
end
def test_Trim_quality_trim_with_missing_qual_raises
@entry.seq = "ATCG"
- assert_raise(SeqError) { @entry.quality_trim_right(20) }
- assert_raise(SeqError) { @entry.quality_trim_right!(20) }
- assert_raise(SeqError) { @entry.quality_trim_left(20) }
- assert_raise(SeqError) { @entry.quality_trim_left!(20) }
- assert_raise(SeqError) { @entry.quality_trim(20) }
- assert_raise(SeqError) { @entry.quality_trim!(20) }
+ assert_raise(TrimError) { @entry.quality_trim_right(20) }
+ assert_raise(TrimError) { @entry.quality_trim_right!(20) }
+ assert_raise(TrimError) { @entry.quality_trim_left(20) }
+ assert_raise(TrimError) { @entry.quality_trim_left!(20) }
+ assert_raise(TrimError) { @entry.quality_trim(20) }
+ assert_raise(TrimError) { @entry.quality_trim!(20) }
end
def test_Trim_quality_trim_with_bad_min_raises
@entry.qual = "hhhh"
[-1, 41].each do |min|
- assert_raise(SeqError) { @entry.quality_trim_right(min) }
- assert_raise(SeqError) { @entry.quality_trim_right!(min) }
- assert_raise(SeqError) { @entry.quality_trim_left(min) }
- assert_raise(SeqError) { @entry.quality_trim_left!(min) }
- assert_raise(SeqError) { @entry.quality_trim(min) }
- assert_raise(SeqError) { @entry.quality_trim!(min) }
+ assert_raise(TrimError) { @entry.quality_trim_right(min) }
+ assert_raise(TrimError) { @entry.quality_trim_right!(min) }
+ assert_raise(TrimError) { @entry.quality_trim_left(min) }
+ assert_raise(TrimError) { @entry.quality_trim_left!(min) }
+ assert_raise(TrimError) { @entry.quality_trim(min) }
+ assert_raise(TrimError) { @entry.quality_trim!(min) }
end
end