]> git.donarmstrong.com Git - biopieces.git/blob - code_ruby/Maasha/test/test_bitarray.rb
c077932907f204da2442e0d49a29d3bedc0f7b1c
[biopieces.git] / code_ruby / Maasha / test / test_bitarray.rb
1 #!/usr/bin/env ruby
2
3 require 'bitarray'
4 require 'test/unit'
5 require 'pp'
6
7 class TestBitArray < Test::Unit::TestCase 
8   def setup
9     @ba = BitArray.new(10)
10   end
11
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) }
15     end
16   end
17
18   def test_BitArray_initialize_dont_raise_on_ok_sizes
19     [ 1, 10, 1000 ].each do |size|
20       assert_nothing_raised { BitArray.new(size) }
21     end
22   end
23
24   def test_BitArray_size_returns_correctly
25     assert_equal(10, @ba.size)
26   end
27
28   def test_BitArray_to_s_returns_correctly
29     assert_equal("0000000000", @ba.to_s)
30   end
31
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) }
35     end
36   end
37
38   def test_BitArray_bit_set
39     str = "0000000000"
40
41     (0.upto 9).each do |pos|
42       @ba.bit_set(pos)
43       str[pos] = "1"
44       assert_equal(str, @ba.to_s)
45     end
46   end
47
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) }
51     end
52   end
53
54   def test_BitArray_bit_set_questionmark
55     (0.upto 9).each do |pos|
56       @ba.bit_set(pos)
57       assert_equal(true, @ba.bit_set?(pos))
58     end
59   end
60
61   def test_BitArray_bits_on_returns_correctly
62     @ba.bit_set(4)
63     assert_equal(1, @ba.bits_on)
64   end
65
66   def test_BitArray_bits_off_returns_correctly
67     @ba.bit_set(4)
68     assert_equal(9, @ba.bits_off)
69   end
70
71   def test_BitArray_and_with_uneven_sizes_raises
72     ba = BitArray.new(11)
73     assert_raise(BitArrayError) { @ba & ba }
74   end
75
76   def test_BitArray_AND_returns_correctly
77     ba = BitArray.new(10)
78     @ba.bit_set(4)
79     @ba.bit_set(5)
80     ba.bit_set(5)
81     ba.bit_set(6)
82     assert_equal( "0000010000", (@ba & ba).to_s)
83   end
84
85   def test_BitArray_AND_EQUAL_returns_correctly
86     ba = BitArray.new(10)
87     @ba.bit_set(4)
88     @ba.bit_set(5)
89     ba.bit_set(5)
90     ba.bit_set(6)
91     @ba &= ba
92     assert_equal( "0000010000", @ba.to_s)
93   end
94
95   def test_BitArray_OR_returns_correctly
96     ba = BitArray.new(10)
97     @ba.bit_set(4)
98     @ba.bit_set(5)
99     ba.bit_set(5)
100     ba.bit_set(6)
101     assert_equal( "0000111000", (@ba | ba).to_s)
102   end
103
104   def test_BitArray_XOR_returns_correctly
105     ba = BitArray.new(10)
106     @ba.bit_set(4)
107     @ba.bit_set(5)
108     ba.bit_set(5)
109     ba.bit_set(6)
110     assert_equal( "0000101000", (@ba ^ ba).to_s)
111   end
112 end
113
114
115 __END__
116