expanding range: <= 31 bits now
diff --git a/skeletons/tests/check-PER.c b/skeletons/tests/check-PER.c
index 94f5fe4..5fcb1ae 100644
--- a/skeletons/tests/check-PER.c
+++ b/skeletons/tests/check-PER.c
@@ -14,22 +14,27 @@
z = per_get_few_bits(&pos, 32);
assert(z == -1);
+ assert(pos.nbits == sizeof(buf) * 8);
z = per_get_few_bits(&pos, 0);
assert(z == 0);
assert(pos.nboff == 0);
+ assert(pos.nbits == sizeof(buf) * 8);
z = per_get_few_bits(&pos, 1);
assert(z == 1);
assert(pos.nboff == 1);
+ assert(pos.nbits == sizeof(buf) * 8);
z = per_get_few_bits(&pos, 2);
assert(z == 1);
assert(pos.nboff == 3);
+ assert(pos.nbits == sizeof(buf) * 8);
z = per_get_few_bits(&pos, 2);
assert(z == 2);
assert(pos.nboff == 5);
+ assert(pos.nbits == sizeof(buf) * 8);
z = per_get_few_bits(&pos, 3);
assert(z == 7);
@@ -61,6 +66,20 @@
z = per_get_few_bits(&pos, 24);
assert(z == 14443711);
+ /* Get full 31-bit range */
+ pos.buffer = buf;
+ pos.nboff = 7;
+ pos.nbits = sizeof(buf) * 8;
+ z = per_get_few_bits(&pos, 31);
+ assert(z == 1179384747);
+
+ /* Get a bit shifted range */
+ pos.buffer = buf;
+ pos.nboff = 6;
+ pos.nbits = sizeof(buf) * 8;
+ z = per_get_few_bits(&pos, 31);
+ assert(z == 1663434197);
+
pos.buffer = buf;
pos.nboff = 0;
pos.nbits = sizeof(buf) * 8;