aboutsummaryrefslogtreecommitdiffstats
path: root/src/bit_io_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/bit_io_unittest.cc')
-rw-r--r--src/bit_io_unittest.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/bit_io_unittest.cc b/src/bit_io_unittest.cc
index 87fc3f1..de5f0a7 100644
--- a/src/bit_io_unittest.cc
+++ b/src/bit_io_unittest.cc
@@ -62,4 +62,26 @@ TEST(BitIOTest, BitWriterAndBitReaderTest) {
ASSERT_FALSE(br.CacheBits(1));
}
+TEST(BitIOTest, BitsRemaining) {
+ const size_t kSize = 5;
+ uint8_t buf[kSize];
+
+ BufferBitReader br(buf, kSize);
+ EXPECT_EQ(br.BitsRemaining(), 40);
+ ASSERT_TRUE(br.CacheBits(1));
+ br.DropBits(1);
+ EXPECT_EQ(br.BitsRemaining(), 39);
+
+ ASSERT_TRUE(br.CacheBits(7));
+ br.DropBits(7);
+ EXPECT_EQ(br.BitsRemaining(), 32);
+
+ ASSERT_TRUE(br.CacheBits(31));
+ br.DropBits(31);
+ EXPECT_EQ(br.BitsRemaining(), 1);
+
+ ASSERT_TRUE(br.CacheBits(1));
+ br.DropBits(1);
+ EXPECT_EQ(br.BitsRemaining(), 0);
+}
} // namespace puffin