aboutsummaryrefslogtreecommitdiffstats
path: root/libtests
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2018-01-14 00:13:18 +0100
committerJay Berkenbilt <ejb@ql.org>2018-01-14 01:49:42 +0100
commitd9c90497089ae5cf00891d6febfa7f486f021833 (patch)
tree37ff785d288aa4433eba89230ab7c877b573bc91 /libtests
parentbf2fb239d7a39255fe122db50dd5d03f9baa25ae (diff)
downloadqpdf-d9c90497089ae5cf00891d6febfa7f486f021833.tar.zst
Add signed support to BitStream and BitWriter
Diffstat (limited to 'libtests')
-rw-r--r--libtests/bits.cc14
-rw-r--r--libtests/qtest/bits/bits.out8
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