@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
@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
@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