# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
require 'maasha/seq'
-require 'maasha/seq/patternmatcher'
+require 'maasha/seq/dynamic'
require 'test/unit'
require 'pp'
-include PatternMatcher
+class Seq
+ include Dynamic
+end
-class TestPatternMatcher < Test::Unit::TestCase
+class TestDynamic < Test::Unit::TestCase
def setup
@p = Seq.new("test", "atcg")
end
- def test_PatternMatcher_no_match_returns_nil
- assert_nil(@p.match("gggg"))
+ def test_Dynamic_no_match_returns_nil
+ assert_nil(@p.patmatch("gggg"))
+ end
+
+ def test_Dynamic_patmatch_perfect_returns_correctly
+ m = @p.patmatch("atcg")
+ assert_equal(0, m.beg)
+ assert_equal("atcg", m.match)
+ assert_equal(0, m.mis)
+ assert_equal(0, m.ins)
+ assert_equal(0, m.del)
+ assert_equal(4, m.length)
+ end
+
+ def test_Dynamic_patmatch_perfect_with_ambiguity_codes_returns_correctly
+ m = @p.patmatch("nnnn")
+ assert_equal(0, m.beg)
+ assert_equal("atcg", m.match)
+ assert_equal(0, m.mis)
+ assert_equal(0, m.ins)
+ assert_equal(0, m.del)
+ assert_equal(4, m.length)
+ end
+
+ def test_Dynamic_patmatch_with_one_mismatch_and_edit_dist_zero_returns_nil
+ assert_nil(@p.patmatch("aCcg"))
+ end
+
+ def test_Dynamic_patmatch_with_one_mismatch_and_edit_dist_one_returns_correctly
+ m = @p.patmatch("aCcg", 0, 1)
+ assert_equal(0, m.beg)
+ assert_equal("atcg", m.match)
+ assert_equal(1, m.mis)
+ assert_equal(0, m.ins)
+ assert_equal(0, m.del)
+ assert_equal(4, m.length)
+ end
+
+ def test_Dynamic_patmatch_with_two_mismatch_and_edit_dist_one_returns_nil
+ assert_nil(@p.patmatch("aGcA", 0, 1))
+ end
+
+ def test_Dynamic_patmatch_with_one_insertion_and_edit_dist_zero_returns_nil
+ assert_nil(@p.patmatch("atGcg"))
end
-# def test_PatternMatcher_match_perfect_returns_correctly
-# m = @p.match("atcg")
-# assert_equal(0, m.pos)
-# assert_equal("atcg", m.match)
-# assert_equal(4, m.matches)
-# assert_equal(0, m.mismatches)
-# assert_equal(0, m.insertions)
-# assert_equal(0, m.deletions)
-# assert_equal(4, m.length)
-# end
-#
-# def test_PatternMatcher_match_perfect_with_ambiguity_codes_returns_correctly
-# m = @p.match("nnnn")
-# assert_equal(0, m.pos)
-# assert_equal("atcg", m.match)
-# assert_equal(4, m.matches)
-# assert_equal(0, m.mismatches)
-# assert_equal(0, m.insertions)
-# assert_equal(0, m.deletions)
-# assert_equal(4, m.length)
-# end
-#
-# def test_PatternMatcher_match_with_one_mismatch_and_edit_dist_zero_returns_nil
-# assert_nil(@p.match("aCcg"))
-# end
-#
-# def test_PatternMatcher_match_with_one_mismatch_and_edit_dist_one_returns_correctly
-# m = @p.match("aCcg", 0, 1)
-# assert_equal(0, m.pos)
-# assert_equal("atcg", m.match)
-# assert_equal(3, m.matches)
-# assert_equal(1, m.mismatches)
-# assert_equal(0, m.insertions)
-# assert_equal(0, m.deletions)
-# assert_equal(4, m.length)
-# end
-#
-# def test_PatternMatcher_match_with_two_mismatch_and_edit_dist_one_returns_nil
-# assert_nil(@p.match("aGcA", 0, 1))
-# end
-#
-# def test_PatternMatcher_match_with_one_insertion_and_edit_dist_zero_returns_nil
-# assert_nil(@p.match("atGcg"))
-# end
-#
-# def test_PatternMatcher_match_with_one_insertion_and_edit_dist_one_returns_correctly
-# m = @p.match("atGcg", 0, 1)
-# assert_equal(0, m.pos)
-# assert_equal("atcg", m.match)
-# assert_equal(4, m.matches)
-# assert_equal(0, m.mismatches)
-# assert_equal(1, m.insertions)
-# assert_equal(0, m.deletions)
-# assert_equal(4, m.length)
-# end
-#
-# def test_PatternMatcher_match_with_two_insertions_and_edit_dist_one_returns_nil
-# assert_nil(@p.match("atGcTg", 0, 1))
-# end
-#
-# def test_PatternMatcher_match_with_two_insertions_and_edit_dist_two_returns_correctly
-# m = @p.match("atGcTg", 0, 2)
-# assert_equal(0, m.pos)
-# assert_equal("atcg", m.match)
-# assert_equal(4, m.matches)
-# assert_equal(0, m.mismatches)
-# assert_equal(2, m.insertions)
-# assert_equal(0, m.deletions)
-# assert_equal(4, m.length)
-# end
-#
-# def test_PatternMatcher_match_with_one_deletion_and_edit_distance_zero_returns_nil
-# assert_nil(@p.match("acg"))
-# end
-#
-# def test_PatternMatcher_match_with_one_deletion_and_edit_distance_one_returns_correctly
-# m = @p.match("acg", 0, 1)
-# assert_equal(0, m.pos)
-# assert_equal("atcg", m.match)
-# assert_equal(3, m.matches)
-# assert_equal(0, m.mismatches)
-# assert_equal(0, m.insertions)
-# assert_equal(1, m.deletions)
-# assert_equal(4, m.length)
-# end
-#
-# def test_PatternMatcher_scan_locates_three_patterns_ok
-# p = Seq.new("test", "ataacgagctagctagctagctgactac")
-# assert_equal(3, p.scan("tag").count)
-# end
-#
-# def test_PatternMatcher_scan_with_pos_locates_two_patterns_ok
-# p = Seq.new("test", "ataacgagctagctagctagctgactac")
-# assert_equal(2, p.scan("tag", 10).count)
-# end
+ def test_Dynamic_patmatch_with_one_insertion_and_edit_dist_one_returns_correctly
+ m = @p.patmatch("atGcg", 0, 1)
+ assert_equal(0, m.beg)
+ assert_equal("atcg", m.match)
+ assert_equal(0, m.mis)
+ assert_equal(1, m.ins)
+ assert_equal(0, m.del)
+ assert_equal(4, m.length)
+ end
+
+ def test_Dynamic_patmatch_with_two_insertions_and_edit_dist_one_returns_nil
+ assert_nil(@p.patmatch("atGcTg", 0, 1))
+ end
+
+ def test_Dynamic_patmatch_with_two_insertions_and_edit_dist_two_returns_correctly
+ m = @p.patmatch("atGcTg", 0, 2)
+ assert_equal(0, m.beg)
+ assert_equal("atcg", m.match)
+ assert_equal(0, m.mis)
+ assert_equal(2, m.ins)
+ assert_equal(0, m.del)
+ assert_equal(4, m.length)
+ end
+
+ def test_Dynamic_patmatch_with_one_deletion_and_edit_distance_zero_returns_nil
+ assert_nil(@p.patmatch("acg"))
+ end
+
+ def test_Dynamic_patmatch_with_one_deletion_and_edit_distance_one_returns_correctly
+ m = @p.patmatch("acg", 0, 1)
+ assert_equal(0, m.beg)
+ assert_equal("atcg", m.match)
+ assert_equal(0, m.mis)
+ assert_equal(0, m.ins)
+ assert_equal(1, m.del)
+ assert_equal(4, m.length)
+ end
+
+ def test_Dynamic_patscan_locates_three_patterns_ok
+ p = Seq.new("test", "ataacgagctagctagctagctgactac")
+ assert_equal(3, p.patscan("tag").count)
+ end
+
+ def test_Dynamic_patscan_with_pos_locates_two_patterns_ok
+ p = Seq.new("test", "ataacgagctagctagctagctgactac")
+ assert_equal(2, p.patscan("tag", 10).count)
+ end
end