92 {
93 int bit_index = -1;
94 int prev_bit_index = -1;
95 int num_bits_tested = 0;
96 while ((bit_index = bv.NextSetBit(bit_index)) >= 0) {
97 EXPECT_LT(bit_index, bv.size());
98
99 for (int i = prev_bit_index + 1; i < bit_index; ++i) {
100 EXPECT_EQ(0, bv[i]) << "i = " << i << " prev = " << prev_bit_index;
101 }
102
103 EXPECT_EQ(1, bv[bit_index]) << "Bit index = " << bit_index;
104 ++num_bits_tested;
105 prev_bit_index = bit_index;
106 }
107
108 for (int i = prev_bit_index + 1; i < bv.size(); ++i) {
109 EXPECT_EQ(0, bv[i]);
110 }
111 EXPECT_EQ(num_bits_tested, bv.NumSetBits());
112 }