forked from aarti/data-structures-ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbit_array_test.rb
36 lines (30 loc) · 871 Bytes
/
bit_array_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'minitest/autorun'
require_relative 'bit_array'
class BitArrayTest < MiniTest::Unit::TestCase
def test_equal
assert_equal "0", BitArray.new.to_s
end
def test_set
assert_equal "0001", BitArray.new.set(3).to_s
assert_equal "1011", BitArray.new.set(0, 2, 3).to_s
assert_equal "0100000000101", BitArray.new.set(1, 10, 12).to_s
end
def test_unset
assert_equal "101", BitArray.new.set(0, 1, 2).unset(1).to_s
end
def test_get
assert_equal 1, BitArray.new.set(1, 2).get(2)
assert_equal 0, BitArray.new.set(12).get(11)
assert_equal 1, BitArray.new.set(12).get(12)
end
def test_count
assert_equal 3, BitArray.new.set(1, 2, 5).count
end
def test_iterate
expected = [1, 1, 0, 1]
BitArray.new.set(0, 1, 3).each do |bit|
assert_equal expected.shift, bit
end
assert expected.empty?
end
end