7 class TestBitArray < Test::Unit::TestCase
12 def test_BitArray_initialize_raises_on_bad_sizes
13 [ -1, 0, 1.1, "a" ].each do |size|
14 assert_raise(BitArrayError) { BitArray.new(size) }
18 def test_BitArray_initialize_dont_raise_on_ok_sizes
19 [ 1, 10, 1000 ].each do |size|
20 assert_nothing_raised { BitArray.new(size) }
24 def test_BitArray_size_returns_correctly
25 assert_equal(10, @ba.size)
28 def test_BitArray_to_s_returns_correctly
29 assert_equal("0000000000", @ba.to_s)
32 def test_BitArray_bit_set_with_bad_pos_raises
33 [-1, 10, 1.1].each do |pos|
34 assert_raise(BitArrayError) { @ba.bit_set(pos) }
38 def test_BitArray_bit_set
41 (0.upto 9).each do |pos|
44 assert_equal(str, @ba.to_s)
48 def test_BitArray_bit_set_questionmark_with_bad_pos_raises
49 [-1, 10, 1.1].each do |pos|
50 assert_raise(BitArrayError) { @ba.bit_set?(pos) }
54 def test_BitArray_bit_set_questionmark
55 (0.upto 9).each do |pos|
57 assert_equal(true, @ba.bit_set?(pos))
61 def test_BitArray_bits_on_returns_correctly
63 assert_equal(1, @ba.bits_on)
66 def test_BitArray_bits_off_returns_correctly
68 assert_equal(9, @ba.bits_off)
71 def test_BitArray_and_with_uneven_sizes_raises
73 assert_raise(BitArrayError) { @ba & ba }
76 def test_BitArray_AND_returns_correctly
82 assert_equal( "0000010000", (@ba & ba).to_s)
85 def test_BitArray_AND_EQUAL_returns_correctly
92 assert_equal( "0000010000", @ba.to_s)
95 def test_BitArray_OR_returns_correctly
101 assert_equal( "0000111000", (@ba | ba).to_s)
104 def test_BitArray_XOR_returns_correctly
105 ba = BitArray.new(10)
110 assert_equal( "0000101000", (@ba ^ ba).to_s)