2 $:.unshift File.join(File.dirname(__FILE__), '..', '..', '..')
9 class TestTrim < Test::Unit::TestCase
14 test "Seq.quality_trim with missing seq raises" do
16 assert_raise(TrimError) { @entry.quality_trim_right(20) }
17 assert_raise(TrimError) { @entry.quality_trim_right!(20) }
18 assert_raise(TrimError) { @entry.quality_trim_left(20) }
19 assert_raise(TrimError) { @entry.quality_trim_left!(20) }
20 assert_raise(TrimError) { @entry.quality_trim(20) }
21 assert_raise(TrimError) { @entry.quality_trim!(20) }
24 test "Seq.quality_trim with missing qual raises" do
26 assert_raise(TrimError) { @entry.quality_trim_right(20) }
27 assert_raise(TrimError) { @entry.quality_trim_right!(20) }
28 assert_raise(TrimError) { @entry.quality_trim_left(20) }
29 assert_raise(TrimError) { @entry.quality_trim_left!(20) }
30 assert_raise(TrimError) { @entry.quality_trim(20) }
31 assert_raise(TrimError) { @entry.quality_trim!(20) }
34 test "Seq.quality_trim with bad min raises" do
38 [-1, 41].each do |min|
39 assert_raise(TrimError) { @entry.quality_trim_right(min) }
40 assert_raise(TrimError) { @entry.quality_trim_right!(min) }
41 assert_raise(TrimError) { @entry.quality_trim_left(min) }
42 assert_raise(TrimError) { @entry.quality_trim_left!(min) }
43 assert_raise(TrimError) { @entry.quality_trim(min) }
44 assert_raise(TrimError) { @entry.quality_trim!(min) }
48 test "Seq.quality_trim with ok min dont raise" do
53 assert_nothing_raised { @entry.quality_trim_right(min) }
54 assert_nothing_raised { @entry.quality_trim_right!(min) }
55 assert_nothing_raised { @entry.quality_trim_left(min) }
56 assert_nothing_raised { @entry.quality_trim_left!(min) }
57 assert_nothing_raised { @entry.quality_trim(min) }
58 assert_nothing_raised { @entry.quality_trim!(min) }
62 test "Seq.quality_trim_right returns correctly" do
63 @entry.seq = "AAAAATCG"
64 @entry.qual = "IIIIIHGF"
65 new_entry = @entry.quality_trim_right(38)
66 assert_equal("AAAAATC", new_entry.seq)
67 assert_equal("IIIIIHG", new_entry.qual)
68 assert_equal("AAAAATCG", @entry.seq)
69 assert_equal("IIIIIHGF", @entry.qual)
72 test "Seq.quality_trim_right! returns correctly" do
73 @entry.seq = "AAAAATCG"
74 @entry.qual = "IIIIIHGF"
75 @entry.quality_trim_right!(38)
76 assert_equal("AAAAATC", @entry.seq)
77 assert_equal("IIIIIHG", @entry.qual)
80 test "Seq.quality_trim_right! with all low qual returns correctly" do
81 @entry.seq = "GCTAAAAA"
82 @entry.qual = "@@@@@@@@"
83 @entry.quality_trim_right!(38)
84 assert_equal("", @entry.seq)
85 assert_equal("", @entry.qual)
88 test "Seq.quality_trim_left returns correctly" do
89 @entry.seq = "GCTAAAAA"
90 @entry.qual = "FGHIIIII"
91 new_entry = @entry.quality_trim_left(38)
92 assert_equal("CTAAAAA", new_entry.seq)
93 assert_equal("GHIIIII", new_entry.qual)
94 assert_equal("GCTAAAAA", @entry.seq)
95 assert_equal("FGHIIIII", @entry.qual)
98 test "Seq.quality_trim_left! returns correctly" do
99 @entry.seq = "GCTAAAAA"
100 @entry.qual = "FGHIIIII"
101 @entry.quality_trim_left!(38)
102 assert_equal("CTAAAAA", @entry.seq)
103 assert_equal("GHIIIII", @entry.qual)
106 test "Seq.quality_trim_left! with all low qual returns correctly" do
107 @entry.seq = "GCTAAAAA"
108 @entry.qual = "@@@@@@@@"
109 @entry.quality_trim_left!(38)
110 assert_equal("", @entry.seq)
111 assert_equal("", @entry.qual)
114 test "Seq.quality_trim returns correctly" do
115 @entry.seq = "GCTAAAAAGTG"
116 @entry.qual = "FGHIIIIIHGF"
117 new_entry = @entry.quality_trim(38)
118 assert_equal("CTAAAAAGT", new_entry.seq)
119 assert_equal("GHIIIIIHG", new_entry.qual)
120 assert_equal("GCTAAAAAGTG", @entry.seq)
121 assert_equal("FGHIIIIIHGF", @entry.qual)
124 test "Seq.quality_trim! returns correctly" do
125 @entry.seq = "GCTAAAAAGTG"
126 @entry.qual = "FGHIIIIIHGF"
127 @entry.quality_trim!(38)
128 assert_equal("CTAAAAAGT", @entry.seq)
129 assert_equal("GHIIIIIHG", @entry.qual)
132 test "Seq.quality_trim! with min len bang returns correctly" do
133 @entry.seq = "GCTCAAACGTG"
134 @entry.qual = "IEFGHIHGFEI"
135 @entry.quality_trim!(37, 2)
136 assert_equal("TCAAACG", @entry.seq)
137 assert_equal("FGHIHGF", @entry.qual)
140 test "Seq.quality_trim! with all low qual returns correctly" do
141 @entry.seq = "GCTCAAACGTG"
142 @entry.qual = "@@@@@@@@@@@"
143 @entry.quality_trim!(37, 2)
144 assert_equal("", @entry.seq)
145 assert_equal("", @entry.qual)