+ [0, 5].each { |del|
+ assert_nothing_raised { @seq.patscan("N", 0, 0, 0, del) }
+ }
+ end
+
+ def test_BackTrack_patscan_perfect_left_is_ok
+ assert_equal("0:7:tacgatg", @seq.patscan("TACGATG").first.to_s)
+ end
+
+ def test_BackTrack_patscan_perfect_right_is_ok
+ assert_equal("13:7:tgcacgg", @seq.patscan("TGCACGG").first.to_s)
+ end
+
+ def test_BackTrack_patscan_ambiguity_is_ok
+ assert_equal("13:7:tgcacgg", @seq.patscan("TGCACNN").first.to_s)
+ end
+
+ def test_BackTrack_patscan_pos_is_ok
+ assert_equal("10:1:g", @seq.patscan("N", 10).first.to_s)
+ assert_equal("19:1:g", @seq.patscan("N", 10).last.to_s)
+ end
+
+ def test_BackTrack_patscan_mis_left_is_ok
+ assert_equal("0:7:tacgatg", @seq.patscan("Aacgatg", 0, 1).first.to_s)
+ end
+
+ def test_BackTrack_patscan_mis_right_is_ok
+ assert_equal("13:7:tgcacgg", @seq.patscan("tgcacgA", 0, 1).first.to_s)
+ end
+
+ def test_BackTrack_patscan_ins_left_is_ok
+ assert_equal("0:7:tacgatg", @seq.patscan("Atacgatg", 0, 0, 1).first.to_s)
+ end
+
+ def test_BackTrack_patscan_ins_right_is_ok
+ assert_equal("13:7:tgcacgg", @seq.patscan("tgcacggA", 0, 0, 1).first.to_s)
+ end
+
+ def test_BackTrack_patscan_del_left_is_ok
+ assert_equal("0:7:tacgatg", @seq.patscan("acgatg", 0, 0, 0, 1).first.to_s)
+ end
+
+ def test_BackTrack_patscan_del_right_is_ok
+ assert_equal("12:8:atgcacgg", @seq.patscan("tgcacgg", 0, 0, 0, 1).first.to_s)