]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_ruby/test/maasha/test_seq.rb
refactoring of revcomp in seq.rb
[biopieces.git] / code_ruby / test / maasha / test_seq.rb
index f966a5fa47b2387c74f1c2a785b6f8e49082f1be..8bc6852927235b939414d80a02329b3b5490def7 100755 (executable)
@@ -219,7 +219,15 @@ class TestSeq < Test::Unit::TestCase
 
   def test_Seq_reverse_returns_correctly
     @entry.seq = "ATCG"
-    assert_equal("GCTA", @entry.reverse.seq)
+    new_entry  = @entry.reverse
+    assert_equal("GCTA", new_entry.seq)
+    assert_equal("ATCG", @entry.seq)
+  end
+
+  def test_Seq_reverse_bang_returns_correctly
+    @entry.seq = "ATCG"
+    @entry.reverse!
+    assert_equal("GCTA", @entry.seq)
   end
 
   def test_Seq_complement_raises_if_no_sequence
@@ -236,27 +244,43 @@ class TestSeq < Test::Unit::TestCase
   def test_Seq_complement_for_DNA_is_correct
     @entry.seq  = 'ATCGatcg'
     @entry.type = 'dna'
-    assert_equal("TAGCtagc", @entry.complement)
+    comp        = @entry.complement
+    assert_equal("TAGCtagc", comp.seq)
+    assert_equal("ATCGatcg", @entry.seq)
   end
 
   def test_Seq_complement_for_RNA_is_correct
     @entry.seq  = 'AUCGaucg'
     @entry.type = 'rna'
-    assert_equal("UAGCuagc", @entry.complement)
+    comp        = @entry.complement
+    assert_equal("UAGCuagc", comp.seq)
+    assert_equal("AUCGaucg", @entry.seq)
+  end
+
+  def test_Seq_complement_bang_raises_if_no_sequence
+    @entry.type = 'dna'
+    assert_raise(SeqError) { @entry.complement! }
+  end
+
+  def test_Seq_complement_bang_raises_on_bad_type
+    @entry.seq  = 'ATCG'
+    @entry.type = 'protein'
+    assert_raise(SeqError) { @entry.complement! }
   end
 
-  def test_Seq_reverse_complement_for_DNA_is_correct
+  def test_Seq_complement_bang_for_DNA_is_correct
     @entry.seq  = 'ATCGatcg'
     @entry.type = 'dna'
-    assert_equal("cgatCGAT", @entry.reverse_complement.seq)
+    assert_equal("TAGCtagc", @entry.complement!.seq)
   end
 
-  def test_Seq_reverse_complement_for_RNA_is_correct
+  def test_Seq_complement_bang_for_RNA_is_correct
     @entry.seq  = 'AUCGaucg'
     @entry.type = 'rna'
-    assert_equal("cgauCGAU", @entry.reverse_complement.seq)
+    assert_equal("UAGCuagc", @entry.complement!.seq)
   end
 
+
   def test_Seq_hamming_distance_returns_correctly
     seq1 = Seq.new("test1", "ATCG")
     seq2 = Seq.new("test2", "atgg")