]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_ruby/test/maasha/test_seq.rb
added edit_distance method to seq.rb
[biopieces.git] / code_ruby / test / maasha / test_seq.rb
index b3bdd790baa16546e74d655e79dd1ec06f3d57eb..5947ee874666102cf6ef61f3ab8f8ff90516a2ef 100755 (executable)
@@ -298,13 +298,18 @@ class TestSeq < Test::Unit::TestCase
     assert_equal("UAGCuagc", @entry.complement!.seq)
   end
 
-
-  test "#hamming distance returns correctly" do
+  test "#hamming_distance returns correctly" do
     seq1 = Seq.new("test1", "ATCG")
     seq2 = Seq.new("test2", "atgg")
     assert_equal(1, seq1.hamming_distance(seq2))
   end
 
+  test "#edit_distance returns correctly" do
+    seq1 = Seq.new("test1", "ATCG")
+    seq2 = Seq.new("test2", "tgncg")
+    assert_equal(2, seq1.edit_distance(seq2))
+  end
+
   test "#generate with length < 1 raises" do
     assert_raise(SeqError) { @entry.generate(-10, :dna) }
     assert_raise(SeqError) { @entry.generate(0, :dna) }
@@ -333,6 +338,22 @@ class TestSeq < Test::Unit::TestCase
     assert_not_equal(@entry.seq, @entry.shuffle!.seq)
   end
 
+  test "#+ without qual returns correctly" do
+    entry = Seq.new("test1", "at") + Seq.new("test2", "cg")
+    assert_nil(entry.seq_name)
+    assert_equal("atcg", entry.seq)
+    assert_nil(entry.type)
+    assert_nil(entry.qual)
+  end
+
+  test "#+ with qual returns correctly" do
+    entry = Seq.new("test1", "at", :dna, "II") + Seq.new("test2", "cg", :dna, "JJ")
+    assert_nil(entry.seq_name)
+    assert_equal("atcg", entry.seq)
+    assert_equal(:dna,   entry.type)
+    assert_equal("IIJJ", entry.qual)
+  end
+
   test "#<< with different types raises" do
     @entry.seq = "atcg"
     assert_raise(SeqError) { @entry << Seq.new("test", "atcg", :dna) }
@@ -373,16 +394,48 @@ class TestSeq < Test::Unit::TestCase
     assert_equal("HHHHIIII", @entry.qual)
   end
 
-  test "#[] returns correctly" do
-    @entry.seq  = "atcg"
-    @entry.type = :dna
-    @entry.qual = "FGHI"
+  test "#[] with qual returns correctly" do
+    entry = Seq.new("test", "atcg", :dna, "FGHI")
 
-    fail
+    e = entry[2]
+
+    assert_equal("test", e.seq_name)
+    assert_equal("c",    e.seq)
+    assert_equal(:dna,   e.type)
+    assert_equal("H",    e.qual)
+    assert_equal("atcg", entry.seq)
+    assert_equal("FGHI", entry.qual)
   end
 
-  test "[]= returns correctly" do
-    fail
+  test "#[] without qual returns correctly" do
+    entry = Seq.new("test", "atcg")
+
+    e = entry[2]
+
+    assert_equal("test", e.seq_name)
+    assert_equal("c",    e.seq)
+    assert_nil(e.qual)
+    assert_equal("atcg", entry.seq)
+  end
+
+  test "[]= with qual returns correctly" do
+    entry = Seq.new("test", "atcg", :dna, "FGHI")
+
+    entry[0] = Seq.new("foo", "T", :dna, "I")
+
+    assert_equal("test", entry.seq_name)
+    assert_equal("Ttcg", entry.seq)
+    assert_equal(:dna,   entry.type)
+    assert_equal("IGHI", entry.qual)
+  end
+
+  test "[]= without qual returns correctly" do
+    entry = Seq.new("test", "atcg")
+
+    entry[0] = Seq.new("foo", "T")
+
+    assert_equal("test", entry.seq_name)
+    assert_equal("Ttcg", entry.seq)
   end
 
   test "#subseq with start < 0 raises" do
@@ -498,26 +551,6 @@ class TestSeq < Test::Unit::TestCase
     assert_equal(0, @entry.composition["X"])
   end
 
-  test "#homopol_max returns 0 with empty sequence" do
-    @entry.seq = ""
-    assert_equal(0, @entry.homopol_max)
-  end
-
-  test "#homopol_max returns 0 with nil sequence" do
-    @entry.seq = nil
-    assert_equal(0, @entry.homopol_max)
-  end
-
-  test "#homopol_max returns 0 when not found" do
-    @entry.seq = "AtTcCcGggGnnNnn"
-    assert_equal(0, @entry.homopol_max(6))
-  end
-
-  test "#homopol_max returns correctly" do
-    @entry.seq = "AtTcCcGggGnnNnn"
-    assert_equal(5, @entry.homopol_max(3))
-  end
-
   test "#hard_mask returns correctly" do
     @entry.seq = "--AAAANn"
     assert_equal(33.33, @entry.hard_mask)