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) }
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) }
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
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)