| 171 | } |
| 172 | |
| 173 | void Check(const Buffer& buffer, int64_t start_offset, int64_t length) { |
| 174 | BitmapUInt64Reader reader(buffer.data(), start_offset, length); |
| 175 | for (int64_t i = 0; i < length; i += 64) { |
| 176 | ASSERT_EQ(reader.position(), i); |
| 177 | const auto nbits = std::min<int64_t>(64, length - i); |
| 178 | uint64_t word = reader.NextWord(); |
| 179 | for (int64_t j = 0; j < nbits; ++j) { |
| 180 | ASSERT_EQ(word & 1, bit_util::GetBit(buffer.data(), start_offset + i + j)); |
| 181 | word >>= 1; |
| 182 | } |
| 183 | } |
| 184 | ASSERT_EQ(reader.position(), length); |
| 185 | } |
| 186 | |
| 187 | void CheckExtensive(const Buffer& buffer) { |
| 188 | for (const int64_t offset : kTestOffsets) { |