Remove BitStream* tests

This commit is contained in:
Igor Canadi 2014-08-19 09:52:54 -04:00
parent 50b790c6d4
commit 6929b08616

View File

@ -196,99 +196,6 @@ TEST(Coding, Strings) {
ASSERT_EQ("", input.ToString()); ASSERT_EQ("", input.ToString());
} }
TEST(Coding, BitStream) {
const int kNumBytes = 10;
char bytes[kNumBytes+1];
for (int i = 0; i < kNumBytes + 1; ++i) {
bytes[i] = '\0';
}
// Simple byte aligned test.
for (int i = 0; i < kNumBytes; ++i) {
BitStreamPutInt(bytes, kNumBytes, i*8, 8, 255-i);
ASSERT_EQ((unsigned char)bytes[i], (unsigned char)(255-i));
}
for (int i = 0; i < kNumBytes; ++i) {
ASSERT_EQ(BitStreamGetInt(bytes, kNumBytes, i*8, 8), (uint32_t)(255-i));
}
ASSERT_EQ(bytes[kNumBytes], '\0');
// Write and read back at strange offsets
for (int i = 0; i < kNumBytes + 1; ++i) {
bytes[i] = '\0';
}
for (int i = 0; i < kNumBytes; ++i) {
BitStreamPutInt(bytes, kNumBytes, i*5+1, 4, (i * 7) % (1 << 4));
}
for (int i = 0; i < kNumBytes; ++i) {
ASSERT_EQ(BitStreamGetInt(bytes, kNumBytes, i*5+1, 4),
(uint32_t)((i * 7) % (1 << 4)));
}
ASSERT_EQ(bytes[kNumBytes], '\0');
// Create 11011011 as a bit pattern
for (int i = 0; i < kNumBytes + 1; ++i) {
bytes[i] = '\0';
}
for (int i = 0; i < kNumBytes; ++i) {
BitStreamPutInt(bytes, kNumBytes, i*8, 2, 3);
BitStreamPutInt(bytes, kNumBytes, i*8+3, 2, 3);
BitStreamPutInt(bytes, kNumBytes, i*8+6, 2, 3);
ASSERT_EQ((unsigned char)bytes[i],
(unsigned char)(3 + (3 << 3) + (3 << 6)));
}
ASSERT_EQ(bytes[kNumBytes], '\0');
// Test large values
for (int i = 0; i < kNumBytes + 1; ++i) {
bytes[i] = '\0';
}
BitStreamPutInt(bytes, kNumBytes, 0, 64, (uint64_t)(-1));
for (int i = 0; i < 64/8; ++i) {
ASSERT_EQ((unsigned char)bytes[i],
(unsigned char)(255));
}
ASSERT_EQ(bytes[64/8], '\0');
}
TEST(Coding, BitStreamConvenienceFuncs) {
std::string bytes(1, '\0');
// Check that independent changes to byte are preserved.
BitStreamPutInt(&bytes, 0, 2, 3);
BitStreamPutInt(&bytes, 3, 2, 3);
BitStreamPutInt(&bytes, 6, 2, 3);
ASSERT_EQ((unsigned char)bytes[0], (unsigned char)(3 + (3 << 3) + (3 << 6)));
ASSERT_EQ(BitStreamGetInt(&bytes, 0, 2), 3u);
ASSERT_EQ(BitStreamGetInt(&bytes, 3, 2), 3u);
ASSERT_EQ(BitStreamGetInt(&bytes, 6, 2), 3u);
Slice slice(bytes);
ASSERT_EQ(BitStreamGetInt(&slice, 0, 2), 3u);
ASSERT_EQ(BitStreamGetInt(&slice, 3, 2), 3u);
ASSERT_EQ(BitStreamGetInt(&slice, 6, 2), 3u);
// Test overlapping crossing over byte boundaries
bytes = std::string(2, '\0');
BitStreamPutInt(&bytes, 6, 4, 15);
ASSERT_EQ((unsigned char)bytes[0], 3 << 6);
ASSERT_EQ((unsigned char)bytes[1], 3);
ASSERT_EQ(BitStreamGetInt(&bytes, 6, 4), 15u);
slice = Slice(bytes);
ASSERT_EQ(BitStreamGetInt(&slice, 6, 4), 15u);
// Test 64-bit number
bytes = std::string(64/8, '\0');
BitStreamPutInt(&bytes, 0, 64, (uint64_t)(-1));
ASSERT_EQ(BitStreamGetInt(&bytes, 0, 64), (uint64_t)(-1));
slice = Slice(bytes);
ASSERT_EQ(BitStreamGetInt(&slice, 0, 64), (uint64_t)(-1));
}
} // namespace rocksdb } // namespace rocksdb
int main(int argc, char** argv) { int main(int argc, char** argv) {