]> git.donarmstrong.com Git - biopieces.git/commitdiff
added Seq.shuffle method and tests
authormartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Thu, 28 Feb 2013 10:21:22 +0000 (10:21 +0000)
committermartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Thu, 28 Feb 2013 10:21:22 +0000 (10:21 +0000)
git-svn-id: http://biopieces.googlecode.com/svn/trunk@2105 74ccb610-7750-0410-82ae-013aeee3265d

code_ruby/lib/maasha/seq.rb
code_ruby/test/maasha/test_seq.rb

index 577d51a6b1d01aa96aae7170cda425638daaf21e..e72250d596cc5d1dd55adac34d3a15b3503048fa 100644 (file)
@@ -390,7 +390,12 @@ class Seq
     seq_new
   end
 
-  # Method to shuffle a sequence readomly inline.
+  # Method to return a new Seq object with shuffled sequence.
+  def shuffle
+    Seq.new(self.seq_name, self.seq.split('').shuffle!.join, self.type, self.qual)
+  end
+
+  # Method to shuffle a sequence randomly inline.
   def shuffle!
     self.seq = self.seq.split('').shuffle!.join
     self
index a7145ef009beb5ebf35e4f48eeb7becf5d5ae4d3..f966a5fa47b2387c74f1c2a785b6f8e49082f1be 100755 (executable)
@@ -9,7 +9,8 @@ class TestSeq < Test::Unit::TestCase
     @entry = Seq.new
   end
 
-  #  def test_Seq# autoremoves whitespace, newlines, and carriage returns
+  #  # autoremoves whitespace, newlines, and carriage returns
+  #  def test_Seq_strip
   #    dna = Seq.new
   #    dna.seq = "A\tT\r\tC\nG  "
   #    assert_equal(dna.seq, "ATCG")
@@ -277,6 +278,19 @@ class TestSeq < Test::Unit::TestCase
     end
   end
 
+  def test_Seq_shuffle_returns_correctly
+    orig       = "actgactgactgatcgatcgatcgatcgtactg" 
+    @entry.seq = "actgactgactgatcgatcgatcgatcgtactg"
+    entry_shuf = @entry.shuffle
+    assert_equal(orig, @entry.seq)
+    assert_not_equal(@entry.seq, entry_shuf.seq)
+  end
+
+  def test_Seq_shuffle_bang_returns_correctly
+    @entry.seq = "actgactgactgatcgatcgatcgatcgtactg"
+    assert_not_equal(@entry.seq, @entry.shuffle!.seq)
+  end
+
   def test_Seq_subseq_with_start_lt_0_raises
     @entry.seq = "ATCG"
     assert_raise(SeqError) { @entry.subseq(-1, 1) }