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