X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=code_ruby%2Ftest%2Fmaasha%2Ftest_seq.rb;h=171e6b1ae9157205527a0613ef68fe65686bf4e7;hb=d4b9c1bec954d5ff3e6eb2f7dc6c1aaa1f7f810f;hp=d177d311467901296a0d2d0aa90f01dce29ffd86;hpb=162aeddb3605c07e27906be021786e2db3ce0664;p=biopieces.git diff --git a/code_ruby/test/maasha/test_seq.rb b/code_ruby/test/maasha/test_seq.rb index d177d31..171e6b1 100755 --- a/code_ruby/test/maasha/test_seq.rb +++ b/code_ruby/test/maasha/test_seq.rb @@ -488,6 +488,55 @@ class TestSeq < Test::Unit::TestCase assert_equal("-atCG", @entry.mask_seq_soft!(20).seq) end + # qual score detection + + def test_Seq_qual_base33_returns_correctly + # self.qual.match(/[!-:]/) + @entry.qual = '!"#$%&\'()*+,-./0123456789:' + assert_equal(true, @entry.qual_base33? ) + @entry.qual = 32.chr + assert_equal(false, @entry.qual_base33? ) + @entry.qual = 59.chr + assert_equal(false, @entry.qual_base33? ) + end + + def test_Seq_qual_base64_returns_correctly + # self.qual.match(/[K-h]/) + @entry.qual = 'KLMNOPQRSTUVWXYZ[\]^_`abcdefgh' + assert_equal(true, @entry.qual_base64? ) + @entry.qual = 74.chr + assert_equal(false, @entry.qual_base64? ) + @entry.qual = 105.chr + assert_equal(false, @entry.qual_base64? ) + end + + def test_Seq_qual_valid_with_nil_qual_raises + assert_raise(SeqError) { @entry.qual_valid?("illumina1.8") } + end + + def test_Seq_qual_valid_with_bad_encoding_raises + @entry.qual = "abc" + assert_raise(SeqError) { @entry.qual_valid?("foobar") } + end + + def test_Seq_qual_valid_returns_correctly + tests = [["sanger", 0, 40, 33], + ["454", 0, 40, 64], + ["solexa", -5, 40, 64], + ["illumina13", 0, 40, 64], + ["illumina15", 0, 40, 64], + ["illumina18", 0, 41, 33]] + + tests.each do |test| + @entry.qual = (test[1] + test[-1]).chr + (test[2] + test[-1]).chr + assert_equal(true, @entry.qual_valid?(test[0])) + @entry.qual = (test[1] + test[-1] - 1).chr + assert_equal(false, @entry.qual_valid?(test[0])) + @entry.qual = (test[2] + test[-1] + 1).chr + assert_equal(false, @entry.qual_valid?(test[0])) + end + end + # convert sanger to ... def test_Seq_convert_scores_bang_from_sanger_to_sanger_returns_OK