diff options
author | Jay Berkenbilt <ejb@ql.org> | 2018-01-14 00:13:18 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2018-01-14 01:49:42 +0100 |
commit | d9c90497089ae5cf00891d6febfa7f486f021833 (patch) | |
tree | 37ff785d288aa4433eba89230ab7c877b573bc91 /libtests | |
parent | bf2fb239d7a39255fe122db50dd5d03f9baa25ae (diff) | |
download | qpdf-d9c90497089ae5cf00891d6febfa7f486f021833.tar.zst |
Add signed support to BitStream and BitWriter
Diffstat (limited to 'libtests')
-rw-r--r-- | libtests/bits.cc | 14 | ||||
-rw-r--r-- | libtests/qtest/bits/bits.out | 8 |
2 files changed, 22 insertions, 0 deletions
diff --git a/libtests/bits.cc b/libtests/bits.cc index ba1d5483..3b274f93 100644 --- a/libtests/bits.cc +++ b/libtests/bits.cc @@ -124,6 +124,13 @@ test() b.skipToNextByte(); std::cout << b.getBits(8) << std::endl; std::cout << std::endl; + b.reset(); + std::cout << b.getBitsSigned(3) << std::endl; + std::cout << b.getBitsSigned(6) << std::endl; + std::cout << b.getBitsSigned(5) << std::endl; + std::cout << b.getBitsSigned(1) << std::endl; + std::cout << b.getBitsSigned(17) << std::endl; + std::cout << std::endl; // Write tests @@ -159,6 +166,13 @@ test() bw.writeBits(0xABUL, 8); bw.flush(); print_buffer(bp); + bw.writeBitsSigned(-1, 3); // 111 + bw.writeBitsSigned(-12, 6); // 110100 + bw.writeBitsSigned(4, 3); // 100 + bw.writeBitsSigned(-4, 3); // 100 + bw.writeBitsSigned(-1, 1); // 1 + bw.flush(); + print_buffer(bp); delete bp; } diff --git a/libtests/qtest/bits/bits.out b/libtests/qtest/bits/bits.out index 73111536..8483c110 100644 --- a/libtests/qtest/bits/bits.out +++ b/libtests/qtest/bits/bits.out @@ -36,6 +36,12 @@ byte offset = 8, bit offset = 7, bits available = 0 21 101 +-1 +-22 +5 +0 +-39559 + ch = f0, bit_offset = 2 ch = 00, bit_offset = 6 ch = 14, bit_offset = 0 @@ -56,4 +62,6 @@ f5 15 65 79 12 89 75 4b f0 ab +fa 49 + done |