]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_ruby/test/maasha/test_bitarray.rb
added more methods to bitarray.rb
[biopieces.git] / code_ruby / test / maasha / test_bitarray.rb
index 182ec27eee95f49aa9e139a73216c46bf21a1688..6c410be7fb1bf38f8dfc787f95f705ac4ab8d358 100755 (executable)
@@ -123,7 +123,7 @@ class TestBitArray < Test::Unit::TestCase
     @ba.bit_set(5)
     ba.bit_set(5)
     ba.bit_set(6)
-    assert_equal( "0000010000", (@ba & ba).to_s)
+    assert_equal("0000010000", (@ba & ba).to_s)
   end
 
   def test_BitArray_OR_with_uneven_sizes_raises
@@ -137,7 +137,7 @@ class TestBitArray < Test::Unit::TestCase
     @ba.bit_set(5)
     ba.bit_set(5)
     ba.bit_set(6)
-    assert_equal( "0000111000", (@ba | ba).to_s)
+    assert_equal("0000111000", (@ba | ba).to_s)
   end
 
   def test_BitArray_XOR_with_uneven_sizes_raises
@@ -151,14 +151,46 @@ class TestBitArray < Test::Unit::TestCase
     @ba.bit_set(5)
     ba.bit_set(5)
     ba.bit_set(6)
-    assert_equal( "0000101000", (@ba ^ ba).to_s)
+    assert_equal("0000101000", (@ba ^ ba).to_s)
   end
 
   def test_BitArray_FLIP_returns_correctly
     @ba.bit_set(0)
     @ba.bit_set(9)
 
-    assert_equal( "0111111110", (~@ba).to_s)
+    assert_equal("0111111110", (~@ba).to_s)
+  end
+
+  def test_interval_set_with_bad_interval_raises
+    assert_raise(BitArrayError) { @ba.interval_set(-1, 4) }
+    assert_raise(BitArrayError) { @ba.interval_set(1, 14) }
+    assert_raise(BitArrayError) { @ba.interval_set(4, 2) }
+  end
+
+  def test_interval_set_returns_correctly
+    @ba.interval_set(1, 9)
+
+    assert_equal("0111111110", @ba.to_s)
+  end
+
+  def test_interval_unset_with_bad_interval_raises
+    assert_raise(BitArrayError) { @ba.interval_unset(-1, 4) }
+    assert_raise(BitArrayError) { @ba.interval_unset(1, 14) }
+    assert_raise(BitArrayError) { @ba.interval_unset(4, 2) }
+  end
+
+  def test_interval_unset_returns_correctly
+    ~@ba
+    @ba.interval_unset(1, 9)
+
+    assert_equal("1000000001", @ba.to_s)
+  end
+
+  def test_each_interval_returns_correctly
+    @ba.fill!
+    @ba.bit_unset(4)
+    
+    assert_equal([[0, 4], [5, 10]], @ba.each_interval.to_a)
   end
 end